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間の関係によって機能を実現すること)の中で各役割を演ずるインスタンスを通じてインスタンス化される。
- 詳細は要らない
- コラボレーションは、詳細については記述せず,全体としての協調動作を表現することから、デザインパターンを説明する手段として特に有効である。