Solution ID: 154301158 Type:Internal 表題: WINDOWS: コンポジションと集約の違いについて 製品: Rose バージョン: 2001A/2002e(7.0/7.5) OS: Windows DEFECT #: N/A PATCH #: N/A 参照事項: 成年月日: 10-Jan-2002 改訂年月日: 質問: クラス図上の操作において、クラス間を単一方向で結ぶことによって、 クラス間の集約関係を設定することができますが、塗りつぶしのある ダイヤモンド(コンポジション)と塗りつぶしのないダイヤモンド(集約) を使い分ける方法を教えて下さい。 回答: コンポジションは集約の一種であり、集約よりも強い関係があります。 例えば、点に対する2つのコンポジションは、点の任意のインスタンス が多角形オブジェクトか円オブジェクトに含まれ、同時にその2つに含 まれることはありません。また、ある多角形オブジェクトを削除すると、 それに関連した点オブジェクトも削除されます。Rose でコンポジション を作成する場合、「値による」保有修飾子を使うことになります。「値に よる」保有修飾子は一方のクラスの各インスタンスに他方のクラスの インスタンスが存在し、そのためのストレージが割り当てられているこ とを表します。 これに対して、集約は単に全体-部分の関係を表します。例えば、スタ イルオブジェクトは多くの多角形オブジェクトや円オブジェクトによって共 有され、ある多角形オブジェクトを削除してもスタイルオブジェクトは削 除されません。 Rose で集約を作成するには、「参照による」保有修飾子を使うことにな ります。「参照による」保有修飾子は、一方のクラスの各インスタンスに 他方のクラスのインスタンスへのポインタ、または参照が含まれている ことを表し、サプライやクラスのストレージがクライアントクラスによって 保守されることはないため、サプライやクラスのインスタンスへの参照が 存在する場合でも、そのクラスを変更または削除することができます。 ご不明な点等ありましたら、ラショナルカスタマサービスへお問い合わせ下さい。