Responsibility-Driven Design

Tasks in RDD

Component, Responsibility, Collaborator (CRC) Cards

Why CRC Cards?

Components and Behavior

Interaction Diagrams

Coupling and Cohesion

Parnas' Principles: Interface and Implementation

The developer of a software component must provide the intended user with all the information needed to make effective use of the services provided by the component, and should provide no other information

The developer of a software component must be provided with all the information necessary to carry out the given responsibilities assigned to the component, and should be provided with no other information