Object-Oriented Design
Questions about whether design is necessary or affordable are quite beside the point: design is inevitable. The alternative to good design is bad design, not no design at all. ~ Douglas Martin
Learning Objectives
- Define the SOLID principles of object-oriented design
- Label violations of the SOLID principles
- Develop an object-oriented design for a system
- Illustrate the operational context of a system using a context model
- Illustrate the top-level functions of a system using a use case diagram
- Recommend an appropriate software architecture for a software system
- Model an object-oriented design using a class diagram
- Model interactions among objects using a sequence diagram
- Model event-driven behavior using a state machine diagram
How to Complete this Lesson
Complete the following learning activities: (1.75–2 hours total)
- Read the following in Software Engineering:
- Chapter 7: Design and implementation
(45–60 minutes)
- Object-oriented design using the UML
- Chapter 7: Design and implementation
(45–60 minutes)
- Attend the class meeting
(60 minutes)
- Complete the handout (after class if necessary)
Resources
Videos
- S.O.L.I.D. Principles of Object-Oriented Design (10 minutes)
- Uncle Bob SOLID principles (84 minutes)
- Open Closed Principle (6 minutes)
- Interface Segregation Principle (5 minutes)
- Dependency Inversion Principle (7 minutes)
- Principle of Least Knowledge (8 minutes)