At the end of this course, the students; 1) Know and apply the object-oriented programming techniques. 2) Know the object-oriented and aspect oriented software design principles. 3) Know how to apply software architectural design principles to specific problems . 4) Know and apply software design patterns.
MODE OF DELIVERY
Face to face
PRE-REQUISITES OF THE COURSE
No
RECOMMENDED OPTIONAL PROGRAMME COMPONENT
None
COURSE DEFINITION
Overview of object-oriented analysis and design. Aspect oriented design. Architectural design principles and patterns. Introduction to software design patterns. Coupling and cohesion. Creational, structural, and behavioral patterns. Antipatterns.
COURSE CONTENTS
WEEK
TOPICS
1st Week
Overview of object-oriented analysis and design.
2nd Week
Aspect oriented design.
3rd Week
Aspect oriented design.
4th Week
Architectural design principles and patterns.
5th Week
Architectural design principles and patterns.
6th Week
Introduction to software design patterns.
7th Week
Introduction to software design patterns.
8th Week
Mid-term
9th Week
Coupling and cohesion.
10th Week
Coupling and cohesion.
11th Week
Creational, structural, and behavioral patterns.
12th Week
Creational, structural, and behavioral patterns.
13th Week
Antipatterns.
14th Week
Antipatterns.
RECOMENDED OR REQUIRED READING
1. Object-Oriented Software Engineering: Using UML, Patterns, and Java, 2nd Edition, B. Bruegge and A. H. Dutoit, Prentice Hall, 2003. 2. Aspect-Oriented Analysis and Design: The Theme Approach, S. Clarke and E. Baniassad, Addison-Wesley Professional, 2005 3. Documenting Software Architectures: Views and Beyond, 2/E, Paul Clements et al., Addison Wesley. 4. Design Patterns: Elements of Reusable Object Oriented Software, E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Addison -Wesley Professional, 1995 5. Larman, C., "Applying UML and Patterns: An introduction to Object-Oriented Analysis and Design and Iterative Development", Prentice Hall, (2005).