When looking for a technique to make use cases more accessible, we were inspired by a technique that addresses a later activity in object-oriented development. This technique is CRC (class-responsibility-collaborator), which uses cards and roleplay to facilitate designing a system as a set of collaborating objects [2, 9, 3]. Each class is represented by an index card, and members of a design team play the roles of classes, verbally simulating the behaviour of the system. The cards themselves are used to record the responsibilities and collaborators of the class. A responsibility is an abstract idea of what the class should know or do, and the notion of responsibility is used as a heuristic to distribute intelligence in the system.
CRC cards were originally written up as a way of learning about design, where the cards helped make the idea of objects more concrete, and the roleplay fostered an awareness of object collaboration. CRC cards are now widely regarded as a sensible design technique in general, and not only something for beginners. Bellin and Suchman Simone refer to CRC as a ``meta-cognitive'' process, where the operational nature of the technique assists thinking about key issues in the design:
Each person on the team literally takes on the role of a class and, using the CRC card as a script, acts out the system. The value of this strategy is that the act of pretending to ``be a class'' and figuring out what you have to do triggers the same responses as brainstorming. Playing with the cards triggers unanticipated insights. Role play does this successfully because it makes team members active participants.
Figure 1: A use case card describing an essential use case for a banking system.