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: (3.5–4 hours total)

  1. Read the following in Software Engineering:
    • Chapter 7: Design and implementation (45–60 minutes)
      • Object-oriented design using the UML
  2. Watch S.O.L.I.D. Principles of Object-Oriented Design (10 minutes)
  3. Watch Uncle Bob SOLID principles (84 minutes)
  4. Watch Open Closed Principle (6 minutes)
  5. Watch Interface Segregation Principle (5 minutes)
  6. Watch Dependency Inversion Principle (7 minutes)
  7. Watch Principle of Least Knowledge (8 minutes)
  8. Complete the handout (15–30 minutes)
  9. Participate in the synchronous session during the class meeting time (optional)
  10. Complete the quiz (5–8 minutes)
  11. Meet with your team to discuss the specification for the project sprint, specifically the high-level overview of what your team intends to accomplish for the sprint (30 minutes)

Due

As a reminder, the following is due this lesson: