集約、コンポジション

■チェック用語

・集約(aggregation)
      集約体(aggregate)つまり全体とその部分(part)との間に存在する
      「全体ー部分」の関係を表します。
      全体が部分を所有する(has)ため「has-a」関係とも呼ばれます。

      白抜きのひし形を使って示されます。
      ひし形が付いているほうのクラスが、全体を表すクラスです。
      また、黒く塗りつぶされたひし形は、「コンポジション」を表します。

・コンポジション(composition)
      コンポジット集約(composite aggregation)とも呼ばれます。
      コンポジット(composite)つまり全体とその部分(part)との間に
      存在する「全体ー部分」の関係を表します。
      全体が部分を含む(contains)ため「contains-a」関係とも呼ばれます。

      コンポジションは、集約の一種ですが、集約のより強いものです。
      部分が特定の全体にだけ属し、全体が生成あるいは破棄されるときに、
      全体が部分の生成や破棄をおこないます。

      黒く塗りつぶされたひし形を使って示されます。

■クラスとオブジェクトの補足
一般的な概念のことを「クラス」(class)と呼び、一般的な関係のことを
「関連」(association)と呼びます。
それに対して、具体的な概念のことを「オブジェクト」(object)と呼び、
具体的な関係のことを「リンク」(link)と呼びます。

クラスは、オブジェクトの型とオブジェクトの特徴を定義します。
オブジェクトは、クラスのインスタンス(実例)です。

関連は、リンクの型とリンクの特徴を定義します。
リンクは関連のインスタンスです。

クラスとそのインスタンス(オブジェクト)の間や、関連とそのインスタンス
(リンク)の間で使われる表記法と命名規則は、「型ーインスタンス二分法」
(Type-instance dichotomy)と呼ばれ、UML全体を通じて使われます。

それぞれのオブジェクトには「ライフサイクル」(lifecycle)があり、その
ライフサイクルの中で、オブジェクトは何かを知っており、何かを行うことが
でき、他のオブジェクトと通信できます。
オブジェクトが知っていることと、オブジェクトが行うことのできることを、
合わせて「特性」(feature)と呼び、「属性」と「操作」に分類できます。

オブジェクトが知っていることを、「属性」(attribute)と呼び、基本的に
データを表します。
クラスは属性を定義し、オブジェクトは、その属性に対する値を持ちます。

オブジェクトが行うことのできることを、「操作」(operation)と呼び、
基本的に何らかの処理を表します。
ある操作についてオブジェクトが具体的に処理を行う方法のことを操作の
「メソッド」(method)または「実装」(implementation)と呼びます。
操作とメソッドは、クラスの振る舞いを表すため、「振る舞い特性」
(behavioral feature)と呼ばれています。

送信側オブジェクトから受信側オブジェクトへの通信を使って、情報を
伝達したり、処理を要求します。
この要求の送信と受信は「イベント」(event)と呼ばれています。

UMLでの「文書」とは、モデル(model)のことです。
モデルとは、システムを何らかの方法で表現したもののことで、図や
それらを補足するテキスト文書すべてをさします。

参考
「入門UML」シナン・シー アルヒア (著) (2003/12) オライリージャパン 

[ Index ] [ Home ]