[first slide]

Introduction to Object Oriented Programming

Timothy A. Budd

Chapter 2

Responsibilty Driven Design

Outline

  1. Why Start with design ?
  2. Programming in the Small and Programming in the Large
  3. Basis for Design
  4. Responsibility Driven Design
    1. Directed Evolution
    2. An Example, the IIKH
    3. Your Job
    4. Abilities of the IIKH
    5. Characterization by Behavior
    6. Working Through Scenarios
    7. Software Components
    8. CRC Cards
    9. The first component, The Greeter
    10. The Recipe Database Component
      1. The who/what cycle
      2. Postponing Decisions
    11. Responsibilities of a Recipe
    12. The Planner Component
    13. The Date Component
    14. The Meal Component
    15. The Six Components
    16. Interaction Diagrams
    17. Characteristics of Components
      1. Behavior and State
      2. Instances and Classes
      3. Coupling and Cohesion
      4. Interface and Implementation
    18. Two views of a Software System
      1. Parnas' Principles
      2. Public and Private View
    19. Next Step - Formalize the Interface
      1. A Rose by any other Name
    20. Documentation
      1. User Manual
      2. Quality
      3. System Design Documentation
    21. Preparing for Change
  5. Next Step - Select Representations for Subsystems
  6. Step - Implement and Test Subsystems
  7. Step - Integration and Testing
  8. Maintainence and Evolution
  9. Common Design Flaws

Other Material

Intro OOP, Chapter 2, Slide 1