logo

UML アソシエーション vs 集約 vs 構成

UML 図では、関係を使用して複数のものをリンクします。それは、構造的、行動的、またはグループ化された物事の間のつながりです。以下に挙げる標準的な UML 関係を示します。

  • 協会
  • 依存
  • 一般化
  • 実現

協会

関連関係は、システム内で異なるオブジェクトがリンクされている構造的な関係です。これは、アクティビティを表すオブジェクト間の二項関係を示します。これは、教師などのオブジェクト間の関係を示しており、複数の教師に関連付けることができます。

これは、クラス間の線と、それに続く方向を示す矢印によって表され、矢印が両側にある場合、それは双方向関連付けと呼ばれます。関連を示す線に装飾を追加することで、関連の多重度を指定できます。

例:

npmクリアキャッシュ

1) 1 人の教師に複数の生徒がいます。

UML アソシエーション vs 集約 vs 構成

2) 一人の生徒が多くの教師と付き合うことができます。

UML アソシエーション vs 集約 vs 構成

構成と集約は、関連付けの 2 つのサブセットです。どちらの場合も、あるクラスのオブジェクトは別のクラスのオブジェクトによって所有されます。唯一の違いは、合成では子は親から独立して存在しないのに対し、集約では子は親に依存しない、つまりスタンドアロンであることです。集約は関連付けの特殊な形式であり、合成は集約の特殊な形式です。

UML アソシエーション vs 集約 vs 構成

集計

集約は関連性のサブセットであり、さまざまなものの集合です。関係があることを表します。これは関連付けよりも具体的です。関係の一部全体または一部を表します。これはバイナリの関連付けです。つまり、2 つのクラスのみが関係します。それは、子供が親から独立している一種の関係です。

例えば:

ここでは車とホイールの例を考えます。車は車輪がなければ動くことができません。ただし、ホイールは自転車、スクーター、自転車、その他の乗り物で独立して使用できます。ホイール オブジェクトは車オブジェクトがなくても存在でき、これは集約関係であることがわかります。

UML アソシエーション vs 集約 vs 構成

構成

構成は集合体の一部であり、全体と部分の関係を表します。これは、コンポジット (親) とそのパーツ (子) の間の依存関係を示しています。これは、コンポジットが破棄されると、そのパーツも削除されることを意味します。類似したオブジェクトの間に存在します。

以下の例からわかるように、構成関連関係は、パーソン クラスと脳クラス、心臓クラス、および脚クラスを接続します。人間が破壊されれば脳も心臓も足も捨てられる。

クラウド コンピューティング アプリケーション
UML アソシエーション vs 集約 vs 構成

関連性 vs 集約 vs 構成

協会 集計 構成
関連関係は矢印を使用して表されます。 集約関係は、一方の端に空のひし形が付いた直線で表されます。 組成関係は、一端に黒いひし形が付いた直線で表されます。
UML では、2 つ以上のクラスの間に存在できます。 それは協会関係の一部です。 これは集約関係の一部です。
これには、クラス間の 1 対 1、1 対多、多対 1、および多対多の関連付けが組み込まれています。 それはある種の弱い関係を示します。 それは強いタイプの関係を示します。
さらに 1 つ以上のオブジェクトを関連付けることができます。 集約関係では、関連するオブジェクトはシステムのスコープ内で独立して存在します。 構成関係では、関連付けられたオブジェクトがシステムの範囲内で独立して存在することはできません。
この場合、オブジェクトは相互にリンクされます。 この場合、リンクされたオブジェクトは互いに独立しています。 ここでは、リンクされたオブジェクトは相互に依存しています。
1 つの要素が削除された場合、関連する他の要素に影響が及ぶ場合とそうでない場合があります。 集約関係内の 1 つの要素を削除しても、関連する他の要素には影響しません。 関連する要素の 1 つが削除されると、他の要素にも影響します。
例: 講師は複数の生徒と関連付けることができ、または 1 人の生徒が複数の教師と関連付けることもできます。 例: 車が適切に機能するにはホイールが必要ですが、同じホイールが必要ない場合もあります。他のホイールでも機能する場合があります。 例: ファイルがフォルダーに配置され、そのフォルダーが削除された場合。フォルダーを削除すると、そのフォルダー内にあるファイルも削除されます。