CRC Cards | Glossary

Definition:

CRC Cards was originally proposed by Ward Cunningham and Kent Beck as a teaching tool, brainstorming tool used in the design of object-oriented software. CRC card is Class-Responsibility-Collaboration card, popular among expert designers and recommended by extreme programming supporters.

CRC cards are index cards, which are used by team members to write relevant class/object of their design which are partioned in threes areas. Class Name on top of the card, with Responsibilities of the class in the left and on right list of other collaborators (classes) with which class interacts to fulfil its responsibilities.

Advantage of CRC cards are, it keeps the complexity of the design at a minimum on a small card where designers focuses on essentials of the class, preventing them to getting them into details and implementation. These cards are portable and can be easily laid out on a table and re-arranged  while discussing a design. You create a CRC card by writing out a scenario which identifies the actors and actions which the actors do. Nouns should turn into the classes of the card, verbs typically turn into the responsibilities of the card, and collaborators are the other cards  with which the card will be interacting.

Further Reading:

Book: The CRC card book by David Bellin
https://en.wikipedia.org/wiki/Class-responsibility-collaboration_card
http://agilemodeling.com/artifacts/crcModel.htm

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.