Collaboration (Fig. 99)

Collaboration (Fig. 99)

仕様書ver 図No ページ数 セクションNo ページ数
03-08-02 Fig99 P155 --- ---
翻訳版 図9.6 P364 Sec 9.3.3 P367

属性一覧

なし

関連一覧

collaborationRole
ConnectableElement[*] 接続可能な要素(ConnectableElement)への参照。コラボレーションに参加するインスタンスのRole。これは、他の分類子に所有されている場合もある。

制約一覧

なし

セマンティクス

機能の達成
複数のRoleを担うConnectableElement同士が、どのように協調してある目的/機能を実現するかを表すのが主目的である。
詳細は省略
主目的を表現するために必要なもの以外はすべて省略する。
同時に参加
あるConnectableElementは、複数のコラボレーションに同時に参加することが可能であるが、コラボレーションは、ConnectableElementが備える機能のうち、コラボレーション自身が達成したい目的に必要なものだけに注目して、それをそのConnectableElementの役割とする。
インスタンスとして
Roleを担うConnectableElementはインスタンスとして、目的達成のためにその他の要素と相互作用する。
Role間の関係
RoleとRoleの間の関係はコネクタとして表す。
コミュニケーション経路
コネクタはRole間に必要なコミュニケーション経路を示す。
Roleが備えるべきもの
Roleを果たすインスタンスは、その役割を型付けしている分類子によって、備えていなければならないプロパティを規定されている。
Roleとしての機能
Roleとして要求される機能と、Roleを担う要素として参加するConnectableElementが元来持っている機能は必ずしも一致するわけではない。Roleとしての機能を満たしていさえすれば、ConnectableElementはより多くの機能を持っていても構わない。
Roleとインタフェース
Role機能は、しばしばインタフェースとして型付けされる。
コラボレーションの特化
コラボレーションは、他のコラボレーションを特化しても良い。その場合、役割を拡張することはOKだが、変更はNGである。つまり、元の役割(特化された側/より一般的なコラボレーションが定義するRole)の型に適合してさえいれば、特化したコラボレーションはそれらを拡張することが許される。
コラボレーションを使う
コラボレーションはコラボレーション使用(was CollaborationOccurence)によって、操作や分類子につけることができる。
直接インスタンスできない
コラボレーションは、自身が定義した協同(Role間の関係によって機能を実現すること)の中で各役割を演ずるインスタンスを通じてインスタンス化される。
詳細は要らない
コラボレーションは、詳細については記述せず,全体としての協調動作を表現することから、デザインパターンを説明する手段として特に有効である。

記法一覧

  • 破線のだ円アイコン
  • だ円の中には、名前区画、内部構造区画を持たせることができる。


Roleの詳細
Roleの詳細を示すために、Roleをだ円の外側に通常の分類子の矩形として書き、だ円の中には区画を設けずコラボレーション名だけを中心に書く。矩形の名前区画にはロールタイプ名を記し、ロール名はコラボレーションと矩形をつなぐ関連の実線の近くに書く。