Back to Full Curriculum
SE201Semester 33 (2-0-2)Major

Object-Oriented Analysis & Design

Introduction to the Software Development Life Cycle (SDLC) and the Unified Process. The role of Analysis vs. Design. Unified Modeling Language (UML) 2.0. Functional Modeling: Use Case Diagrams and Scenarios. Structura...

Syllabus

01

Unit 1: Modeling with UML

Introduction to the Software Development Life Cycle (SDLC) and the Unified Process. The role of Analysis vs. Design. Unified Modeling Language (UML) 2.0. Functional Modeling: Use Case Diagrams and Scenarios. Structural Modeling: Class Diagrams, Object Diagrams, and Component Diagrams. Behavioral Modeling: Sequence Diagrams, Activity Diagrams, and State Machine Diagrams.

02

Unit 2: Design Principles and GRASP

Fundamental design concepts: Abstraction, Encapsulation, Modularity, Hierarchy. Metrics for Design Quality: Coupling and Cohesion. General Responsibility Assignment Software Patterns (GRASP): Creator, Information Expert, Low Coupling, High Cohesion, and Controller patterns.

03

Unit 3: Architectural Principles and SOLID

The SOLID Principles of Object-Oriented Design: Single Responsibility Principle (SRP), Open/Closed Principle (OCP), Liskov Substitution Principle (LSP), Interface Segregation Principle (ISP), and Dependency Inversion Principle (DIP). Law of Demeter. Dependency Injection and Inversion of Control (IoC).

04

Unit 4: GoF Design Patterns (Creational and Structural)

Introduction to Design Patterns. Creational Patterns: Singleton (Thread-safe implementation), Factory Method, Abstract Factory, and Builder. Structural Patterns: Adapter (Class vs. Object adapters), Composite (Tree structures), Decorator (Dynamic responsibilities), Facade, and Proxy.

05

Unit 5: GoF Design Patterns (Behavioral) and Refactoring

Behavioral Patterns: Observer (Publish-Subscribe), Strategy (Algorithm encapsulation), Command, Iterator, and State Pattern. Introduction to Code Smells and Refactoring techniques. Anti-patterns. Mapping Design to Code.