【チュートリアル】 - 設計編

bn_crb.gif (1287 バイト)

2. モデル・図の作成
2.2 設計レベルの相互作用の検討
jun ここでは「コラボレーション図」を作成し、オブジェクト間の相互作用がクラス図上できちんとトレースできるかどうかを見てみよう。「コラボレーション図」は、「シーケンス図」に比べると、設計を意識したオブジェクト間の接続関係を詳細に表現することができるんだよ。
<< コラボレーション図 >>
◆「コラボレーション図」ってどんな図?
  • コラボレーション図は、オブジェクト間の接続関係に着目して、メッセージやデータの流れを表現したもの
  • ユースケースを実現するのに必要なオブジェクトの集合と、そのやりとりを明確に表現できる。
  • システムの同じ振る舞いを「シーケンス図」で表現することもできる。
◆ 「コラボレーション図」

wd_col

リンク
  • オブジェクト間の相互作用を表し、オブジェクトのアイコン同士をつなぐ線で表す。
メッセージ
  • メッセージはオブジェクト間のやりとりを表す。
  • メッセージ送信の相対的順序を示すメッセージ番号は必須。

 

 

chen コラボレーション図では、オブジェクトを中心にどんなメッセージが流れているのかを見て、個々のオブジェクトの責務を理解することが重要になるのですね。
jun そうだよ。そして、オブジェクト間のつながりはリンクで表すんだよ。リンクがあるということは、メッセージが投げられているということを意味するから、リンクによって結び付けられたオブジェクト間にコミュニケーションの道筋があることが分かるよね。
chen はい、そうですね。では、コラボレーション図では、特にオブジェクト間のつながり方に着目してメッセージやデータの流れを表現すればいいのですね?
jun そのとおり。ただし、コラボレーション図では時系列が分かり難くなるから、実装する際にはメッセージ番号が必要だよ。
chen 分かりました。
jun では、先程のシーケンス図をもとに、新規注文を受け付けて注文フォームが表示されるまでの部分のモデルについてのコラボレーション図を作成してみよう。

 

23_tit_3

 

図2.2.1 Chen君が作成したコラボレーション図:注文商品が別の配送センターで扱われている場合
col

 

chen シーケンス図と同じ情報を示していても、シーケンス図に比べて、オブジェクト間のつながりが分かりやすくなったと思います。
jun そうだね。コラボレーション図では、オブジェクトの相互作用を直接表現するからね。また、メッセージの方向によって、クラス間の関連の可視性の方向性も分かるようになっているんだよ。可視性については「関係の設計」のところで詳しく説明するよ。
chen はい、わかりました。

2_5_14

jun このように、コラボレーション図で識別されたメッセージの送受信は、クラスの操作や属性にいかされてくるんだよ。
chen シーケンス図と同様、クラス図に情報をトレースしたときに、不足している情報がないか、整合性がとれているか、などを考えてモデルを詳細化していくということですね。
jun そうだよ。
 

bn_note_col.gif (1464 バイト)

 

jun では次に、クラスの設計に入ろう。
Prev. Next Home Top