れごぼく@メガネボーイズ2008 RSSフィード

2008-05-06

[]CRCカードを使った分析の方法について 22:14 CRCカードを使った分析の方法について - れごぼく@メガネボーイズ2008 を含むブックマーク はてなブックマーク - CRCカードを使った分析の方法について - れごぼく@メガネボーイズ2008 CRCカードを使った分析の方法について - れごぼく@メガネボーイズ2008 のブックマークコメント

書籍オブジェクトデザインを読みながら、CRCカードでの分析方法について調べています。Google Groupの方にも、マインドマップから出力した画像ファイルをのっけています。参照してください。

本題のCRCカードとは?

CRCは、

の頭文字を取ったものです。オブジェクト指向分析のポイントであるオブジェクトの責務とコラボレーションを考えるための道具です。


オブジェクト指向分析・設計において、一番難しいのが要求分析から分析の段階で、オブジェクトを発見していく過程ですが、その過程をグループワークでワイワイやる際の道具がCRCカードです。


CRCカードには、表に、シナリオから見出したオブジェクト候補の概要や役割、カードの裏に、オブジェクトの責務(属性や操作にあたるもの)とコラボレーションの相手を書きます。そして、このカードをオブジェクトに見立てて、オブジェクトの責務とコラボレーションをグループワーク形式で検討していくわけです。


オブジェクト指向の分析というのは、かなり抽象化思考を要し、かなり禅問答みたいな話になりやすいので、具体的なカードというものを見ながら、セッションすることで考えやすくできます。


まー、ブレインストーミングに似ていると思います。

紙に書き出すことで、オブジェクトの候補を考えたり、責務を割り当てたり、オブジェクトコラボレーションを考えたり、しやすくしています。

CRCカードを使った分析の前に

しかーし、書籍によると、いきなりCRCカードで分析をする前に、当たり前ですが、「どういうシステムか?(システム定義)」と、「どのように使われるのか?(システム記述)」を考えた方が良いとのことです。


この2点 (特に後者) がちゃんと考えられていると、CRCによる分析をやる際に、オブジェクトの候補や責務などの発見が容易になります。

ETロボコンの場合は、競技部門の戦略検討と、シナリオ記述を重点的にやった方が良い?

まー、オブジェクトデザインはビジネス系の話が前提になっているので、そのまま流用できないです。今回の僕らのプロジェクトの場合、以下のようになるかなと思います。


  • システム定義
    • 考えるべきこと: どういう戦略をとるか?その戦略を実現するためのシステムはどういうものか?
    • 手法: ブレインストーミング。最低限予選突破できるレベル、高順位を狙えるレベル、2つの中間、の3種くらいについて、意見を出し合う。
    • アウトプット: ユースケースの材料になる機能的要求(走行方法が切り替えられるなど)と、非機能的要求(速度など)。

  • システム記述
    • 考えるべきこと:システムにはどういう機能があるか?どのように機能が利用されるか?
    • 手法:要検討。
    • アウトプット: ユースケースユースケース記述(特に、シナリオなどを重視)

オブジェクトを急には考えることは難しいです。ユースケースを見出して、それのシナリオを徹底的に考え、そのシナリオからオブジェクトを導き出していく方が良いでしょう。

さーて、問題はシナリオを書いて、オブジェクトを見出していくとこですが

ここがかなり難しいです。書くのは明日にしよう。