クラス責任コラボレーション( CRC )カードは、オブジェクト指向ソフトウェアの設計で使用されるブレーンストーミングツールです。元々はWard CunninghamとKent Beckによって教育ツールとして提案されました[1]が、熟練した設計者の間でも人気があり[2]、エクストリーム プログラミングの実践者によって推奨されています[3]。著者のMartin Fowler は、CRC カードは大量の描画と消去を避けることができるため、複数の代替インタラクションを迅速に考案できる賢明な手段である可能性があると書いています。CRC カード セッションの後には、識別されたインタラクションをキャプチャするための シーケンス図を作成することができます。
CRC カードは、システムおよびソフトウェア開発の設計フェーズでユースケースの説明をクラス図に移行するために頻繁に使用され、より広い概要でスムーズな移行を可能にし、開発者が結合度が低く凝集度が高いソリューションを実装できるようにします。
CRCカードは通常、インデックスカードから作成されます。ブレインストーミングセッションのメンバーは、設計の関連するクラス/オブジェクトごとに1枚のCRCカードを作成します。カードは3つの領域に分割されます。[1] [2]
- カードの上部にはクラス名
- 左側にはクラスの責任
- 右側は、クラスが責任を果たすために相互作用する協力者(他のクラス)です。
小さなカードを使用すると、設計の複雑さが最小限に抑えられ、クラスの責任が軽減され、設計者は実装の詳細を調べることなくクラスの本質に集中できます。カードは持ち運び可能なので、テーブルの上に簡単に広げて、設計について議論しながら並べ替えることができます。
CRC カードの作成
CRC カードの作成は通常、主要なアクターとアクションを特定するシナリオの作成から始まります。シナリオでは、名詞はクラスに、動詞は責任になり、協力者はカードが対話する他のカードになります。
参照
参考文献
- ^ ab Beck, Kent; Cunningham, Ward (1986). 「オブジェクト指向思考を教える実験室」SIGPLAN Notices . 24 (10): 1–6. doi :10.1145/74878.74879.
- ^ ab Martin Fowler、UML Distilled、第 4 章
- ^ extremeprogramming.org の簡潔な紹介
外部リンク
- オブジェクト指向思考を教える実験室 ケント・ベックとウォード・カニンガムによる論文
- HotDraw の CRC の説明
- extremeprogramming.org での簡潔な紹介
- シンプルなオンラインCRCエディター
