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)

  1. Read the following in Software Engineering:
    • Chapter 7: Design and implementation (45–60 minutes)
      • Object-oriented design using the UML
  2. Attend the class meeting (60 minutes)
    • Complete the handout (after class if necessary)

Resources

Videos