MSc-IT Study Material
January 2011 Edition

Computer Science Department, University of Cape Town
| MIT Notes Home | Edition Home |

Class-Responsibility-Collaborator cards

Class-responsibility-collaborator cards (CRC cards) are not a part of the UML specification, but they are a useful tool for organising classes during analysis and design.

A CRC card is a physical card representing a single class. Each card lists the class's name, attributes and methods (its responsibilities), and class associations (collaborations). The collection of these CRC cards is the CRC model.

Using CRC cards is a straightforward addition to object-oriented analysis and design:

  1. Identify the classes.

  2. List responsibilities.

  3. List collaborators.

CRC cards can be used during analysis and design while classes are being discovered in order to keep track of them.

CRC cards have various benefits, which you might notice makes them very amenable to iterative and incremental process models, especially agile ones:

Class responsibilities are the class's attributes and methods. Clearly, they represent the class's state and behaviour. Collaborators represent the associations the class has with other classes.

CRC cards are useful when the development of classes need to be divided between software engineers, as the cards can be physically handed over to them. A useful time to do this is when classes are being reviewed, for, say, determining whether they are appropriate in a design.