CRCカード

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

CRCカードとは、オブジェクト指向ソフトウェア設計で使われるブレインストーミングツールである。CRC とは "Class-Responsibility-Collaborator"(クラス-責務-コラボレータ)の略。ウォード・カニンガムの考案である。通常、設計の最初期にどのようなクラスが必要で、それらがどのように相互に連携するかを決定するのに使う。

CRCカードにはインデックスカードが使われる(米国では76mm×127mmサイズが一般的)。それに以下のような項目を記述していく:

  1. クラス名
  2. パッケージ名(もしあれば)
  3. そのクラスの責務(すべきこと)
  4. そのクラスが自身の責務を果たすために連携しなければならない他のクラスの名前を列挙する。

一枚のカードには1つのクラスに関する以上の事項が書かれる。このとき小さなカードを使うことで設計の複雑さを最小にする(あまり詳細を書き込まない)。これは設計者らが各クラスの詳細に入り込むのを防いでクラス群の本質に集中するようにさせ、生産性を上げるためである。また、1つのクラスにあまりに多くの責務(機能)を盛り込むのを防ぐ。カードは持ち運び可能なので、テーブルの上に広げて複数人で話し合うのにも適している。

作成すべきカード(クラス)を決定する一般的な手法は、プログラムの仕様書を読み、そこに登場する名詞がクラスになるか、また、動詞が責務になるかサブクラスになるかを検討するというものである。もちろん、全ての名詞や動詞がクラスやその責務になるわけではないが、出発点としては適切である。

関連項目[編集]

外部リンク[編集]