クラス責任コラボレーション(CRC)カードは、オブジェクト指向ソフトウェアの設計で使用されるブレインストーミングツールです。元々はワード・カニンガムとケント・ベックによって教育ツールとして提案されましたが[ 1 ]、熟練した設計者の間でも人気があり[ 2 ] 、エクストリームプログラミングの実践者からも推奨されています[ 3 ] 。著者マーティン・ファウラーは、CRCカードは描画と消去の手間を大幅に省くため、複数の代替的な相互作用を迅速に考案できる賢明な手段になり得ると述べています。CRCカードセッションの後には、特定された相互作用を捉えるためのシーケンス図を作成することができます。
CRCカードは、システムおよびソフトウェア開発の設計段階で、ユースケース記述をクラス図に変換するために頻繁に使用されます。これにより、よりスムーズな移行と全体像の把握が可能になり、開発者は結合度が低く凝集度が高いソリューションを実装できるようになります。
CRC カードは通常、インデックス カードから作成されます。ブレインストーミング セッションの参加者は、設計に関連するクラス/ オブジェクトごとに 1 枚の CRC カードを作成します。カードは 3 つの領域に分割されます。[ 1 ] [ 2 ]
小型カードを使用することで、設計の複雑さを最小限に抑え、授業における各自の責任を軽減し、設計者が実装の詳細にこだわることなく、授業の本質に集中できるようになります。カードは持ち運びが容易なので、テーブルの上に簡単に並べたり、設計について議論しながら並べ替えたりすることができます。
CRCカードの作成は通常、主要な登場人物と行動を特定するシナリオを作成することから始まります。シナリオから、名詞はクラスに、動詞は責任に、そして協力者はカードが相互作用する他のカードになります。