ZEIT2301
Design of Information Systems
Structural Design: CRC Cards
School of Engineering and Information Technology
UNSW@ADFA
Dr Kathryn Merrick
Topic 05: CRC Cards
Overview
To look at ways to construct class and object diagrams
Class-Responsibility-Collaboration Cards
Reference: Text Ch 6.
“Discovering” classes
How do you “discover” the:
classes,
attributes, and
operations
that are relevant for your problem domain?
Four approaches:
1.
2.
3.
4.
Textual analysis
Brainstorming
Pattern review
CRC cards
3
1. Textual Analysis
Perform textual analysis on the Use Case descriptions
Nouns suggest classes
Verbs suggest operations
4
2. Brainstorming
Brainstorm additional candidate classes using common object lists
from a similar business domain.
Look for tangible things (patients, doctors, medical records files, etc)
Look for events that occur in the business domain (appointments,
medical procedures, etc)
Look for interactions (e.g. patient paying a bill). The “bill” could be a
class. But remember that “paying the bill” is a process (typically a
relationship between classes, not a class itself).
5
3. Pattern Review
A pattern is a useful group of collaborating classes that provide a
solution to commonly occurring problems.
e.g. many business transactions involve the same type of objects and
interactions. So re-use rather than re-invent.
Patterns have been developed (and published) for some common
business domains (e.g. accounting)
Some are high-level business patterns, others are low-level
implementation patterns
6
4. CRC cards
Class-Responsibility-Collaboration
CRC cards are used to document the:
responsibilities
collaborations of a class
CRC cards help understand/document the classes to be modelled in
a class diagram
Note: CRC cards are not part of UML
7
Responsibilities & Collaboration
Responsibilities of a class
Knowing: things an instance of a class knows (i.e. the value of its
attributes and its relationships)
Doing: things that instances of a class can do (i.e. execute its
operations)
Collaboration
Most business functions (i.e. use cases) involve several classes
collaborating
An object sends a messages to request a service from
another object eg a Patient object requests the creation of
an Appointment object
8
A CRC Card - Front
9
CRC Card - Back
10
Exercise
Spend a few minutes studying the model
on the next slide.
Look for:
• Attributes
• Operations
• Relations:
• Generalization
• Aggregation
• Association classes
• Note the recursive relationship
• Visibility
• Multiplicities
c
11
Session 2, 2010
Fig 6.2
12