The module is geared toward the development of a strong understanding of object oriented design concepts and principles, both from an industry practice standpoint and a research standpoint. The module begins with a thorough overview of the object model and the concepts of classes and objects. We then move on to a detailed study of the UML notation which is the standard for the modelling of object oriented designs. We study Software architecture, architectural and design patterns as well as frameworks. Students also have the opportunity to review research on special topics in Object Orientation and modelling. Model Driven Software Engineering is visited and students participate in a design project using the UML and pattern catalogues.