Lecture 3
Recap: CRC Cards and Class Diagrams
1. CRC Cards Overview
o CRC Cards (Class Responsibility Collaborator) are used to
determine the overall system architecture by describing each class
on a card:
Class Name
Responsibilities: Things the class knows and does.
Collaborators: Other classes that interact with this class.
2. Class Diagrams
o Class diagrams show the structure and relationships of classes in a
system, providing a visual representation of objects, their
behaviours, and attributes.
3. Class Relationships
o Multiplicity: Indicates the number of instances in a class
relationship (e.g., "1", "0..*", "n").
o Composition, Aggregation, Association, Inheritance: These
relationships define how classes interact and depend on each other.
Key Software Development Concepts
1. Abstraction
o Abstraction: Using the right level of detail by hiding irrelevant
details to simplify the system.
o Example: A person object may not need a hairColor attribute if it is
irrelevant to the application.
2. Modularity
o Modularity: Structuring a system into interacting components
(modules), allowing easier management and potential reuse of
code.
o Example: Dividing a complex system into simpler, manageable
modules.