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.