SEDS 519

Software Design Patterns

The principles of Object-Oriented concepts, such as abstraction, abstract data types, encapsulation, inheritance, polymorphism, aggregation are explained along with the key points of Object-Oriented analysis and design. Unified Modeling Language (UML) is utilized to express the artifacts of Object-Oriented analysis and design. Creational, structural, and behavioral Object-Oriented design patterns are examined and used to solve real-world problems. Resultant Object-Oriented designs are implemented in Java.

Week Topics
1 Introduction to Object-Oriented Analysis and Design
2 Inheritance and Polymorphism with Abstract Classes and Interfaces
3 Object-Oriented Programming Principles
4 Architectural Design Pattern – Model View Controller
5 Observer Design Pattern
6 Creational Design Patterns
7 Structural Design Patterns
8 Behavioral Design Patterns
9 Introduction to Patterns of Enterprise Application Architecture
10 Object-Relational Design Patterns
11 Introduction to Enterprise Integration Patterns
12 Messaging Design Patterns
13 Introduction to Domain-Driven Design
14 Microservice Design Patterns