- Class-responsibility-collaboration card
-
Class Responsibility Collaboration (CRC) cards are a brainstorming tool used in the design of object-oriented software. They were proposed by Ward Cunningham and Kent Beck. [1] They are typically used when first determining which classes are needed and how they will interact.
CRC cards are usually created from index cards on which are written:
- The class name
- Its Super and Sub classes (if applicable)
- The responsibilities of the class.
- The names of other classes with which the class will collaborate to fulfill its responsibilities.
- Author
Using a small card keeps the complexity of the design at a minimum. It focuses the designer on the essentials of the class and prevents her/him from getting into its details and inner workings at a time when such detail is probably counter-productive. It also forces the designer to refrain from giving the class too many responsibilities. Because the cards are portable, they can easily be laid out on a table and re-arranged while discussing a design with other people.
A common method to determine what cards should be created is to read a specification for the program being designed and consider if each noun should be a class and if each verb should be a responsibility of the noun or class to which it belongs. Naturally, the existence of a noun or verb does not require a class or responsibility in the program, but it is considered a good starting point.
Contents
Example
Class name Super class Subclasses
Classes that are derived from this oneResponsibilities
Description of methodsCollaborations
Relationship to other classesSee also
- Object-oriented design
- Meta-modeling
- Unified Modeling Language
References
- ^ Beck, Kent; Cunningham, Ward (October 1989), "A laboratory for teaching object oriented thinking", ACM SIGPLAN Notices (New York, NY, USA: ACM) 24 (10): 1–6, doi:10.1145/74878.74879, ISBN 0-89791-333-7
External links
- A Laboratory For Teaching Object-Oriented Thinking paper by Kent Beck and Ward Cunningham
- A CRC Description of HotDraw
- A concise introduction at extremeprogramming.org
- Using CRC Cards
Categories:
Wikimedia Foundation. 2010.