UML アソシエーション vs. 集約 vs. 構成例【例】
UML 図における関係は、さまざまなもの間の接続を表すために使用されます。 関係とは、統一モデリング言語における構造的、動作的、またはグループ化などの間の接続です。
UMLにおける標準的な関係の種類は次のとおりです。
- 協会
- 依存関係
- 一般化
- 実現
これらの他に、UML では集計と構成関係の使用が許可されています。
UML協会
これは、オブジェクトがシステム内の別のオブジェクトに接続または関連付けられることを表す構造的な関係です。UML 関連関係には、次の制約を適用できます。
- {暗黙} – 暗黙の制約は、関係が明示的ではないことを指定します。 それはコンセプトに基づいています。
- {順序付けられました} – 順序付き制約は、関連付けの一端にあるオブジェクトのセットが特定の方法であることを指定します。
- {変更可能} – 変更可能な制約は、システム内のさまざまなオブジェクト間の接続を要件に応じて追加、削除、および変更できることを指定します。
- {追加のみ} – アソシエーションの反対側にあるオブジェクトから新しい接続を追加できることを指定します。
- {凍った} – XNUMX つのオブジェクト間にリンクが挿入される場合、指定されたリンクまたは接続でフリーズされた制約がアクティブである間はリンクを変更できないことを指定します。
UML Association プロパティを持つクラスを作成することもできます。 これはアソシエーション クラスと呼ばれます。
再帰的連想
再帰的関連付けは、次の関連付け関係のサブタイプです。 UML。 再帰的関連付けでは、同じクラスのインスタンスを相互に関連付けることができます。 クラスのインスタンスはオブジェクトとも言われます。
再帰的関連付けは、同じクラスのオブジェクト内にリンクまたは接続が存在できることを示します。
例::
クラスフルーツの例を考えてみましょう。
フルーツ クラスには、マンゴーとリンゴなどの XNUMX つのインスタンスがあります。 再帰的関連性は、マンゴーとリンゴは果物などの同じクラスのインスタンスであるため、それらの間にリンクが存在する可能性があると述べています。
指示された協会
名前が示すように、有向関連付けは、関連付けクラス内のフローの方向に関連します。
有向関連付けでは、フローは有向です。 あるクラスから別のクラスへの関連付けは一方向にのみ流れます。
これは、矢印付きの実線を使用して示されます。
UML 関連付けの例:
サーバーとクライアントの間には有向関連付け関係があると言えます。
サーバーはクライアントのリクエストを処理できます。 このフローは一方向であり、サーバーからクライアントのみに流れます。 したがって、システムのサーバーとクライアント内に有向関連付け関係が存在する可能性があります。
UML構成
それは標準ではありません UML の関係, しかし、それは今でもさまざまなアプリケーションで使用されています。
複合集計は、次のような特徴を持つ集計関係のサブタイプです。
- これはオブジェクト間の双方向の関連付けです。
- それは全体と部分の関係です。
- コンポジットを削除すると、それに関連付けられている他のすべてのパーツが削除されます。
複合集約は、集約 (全体) の端に塗りつぶされた黒いひし形で装飾された二項関係として記述されます。
フォルダーには多数のファイルを含めることができますが、各ファイルにはフォルダーの親が XNUMX つだけあります。 フォルダーを削除すると、含まれているすべてのファイルも削除されます。
コンポジット集約では、オブジェクトは一度に XNUMX つのコンポジットのみの一部となることができます。
UML 構成例:
たとえば、ウィンドウ システムでは、フレームは 1 つのウィンドウにのみ属します。複合集約では、システム全体がその部分の配置を担当するため、複合システムがその部分の作成と破棄を管理する必要があります。
UML 集約
集約は、UML における関連付け関係のサブタイプです。 集約と構成 どちらも UML における関連付け関係のタイプです。 集約関係は、簡単な言葉で説明すると、「あるクラスのオブジェクトが別のクラスのオブジェクトを所有またはアクセスできる」というものです。
集約関係では、ソース オブジェクトが破棄されても、依存オブジェクトは関係の範囲内に残ります。
UML 集計の例:
車と車輪の例を考えてみましょう。
車が正しく機能するには車輪が必要ですが、車には車輪が常に必要というわけではありません。 バイク、自転車、その他の乗り物にも使用できますが、特定の車には使用できません。 ここで、車オブジェクトがなくても、車輪オブジェクトは意味がある。 このようなタイプの関係は、UML 集約関係と呼ばれます。
協会 vs. 集約 vs. 構成
協会 | アグリゲーション | 構成 |
---|---|---|
関連関係は矢印を使用して示されます。 | 集約関係は、一方の端に空の矢印が付いた直線を使用して示されます。 | 構成関係は、いずれかの端に黒矢印が付いた直線を使用して示されます。 |
UML では XNUMX つ以上のクラス間に関連付けが存在できます。 | 集約は関連付け関係の一部です。 | 構成は関連付け関係の一部です。 |
関連クラス間には、XNUMX 対 XNUMX、XNUMX 対多、多対 XNUMX、および多対多の関連が存在する可能性があります。 | 集約は弱いタイプの関連付けとみなされます。 | 構成は強力なタイプの関連性として考えられます。 |
関連関係では、XNUMX つ以上のオブジェクトを相互に関連付けることができます。 | 集約関係では、相互に関連付けられたオブジェクトは相互に関係なくシステムのスコープ内に留まることができます。 | 合成関係では、相互に関連付けられているオブジェクトが相互に存在せずにスコープ内に残ることはできません。 |
オブジェクトは相互にリンクされています。 | リンクされたオブジェクトは他のオブジェクトに依存しません。 | オブジェクトは相互に大きく依存しています。 |
UML アソシエーションでは、XNUMX つの要素を削除すると、関連する別の要素に影響が及ぶ場合とそうでない場合があります。 | UML 集約では、XNUMX つの要素を削除しても、関連する別の要素には影響しません。 | UML 構成では、XNUMX つの要素を削除すると、関連する別の要素に影響します。 |
例: 教師は複数の生徒と関連付けられます。 Or 教師は生徒に指示を与えます。 |
例: 車にはホイールが必要ですが、常に同じホイールが必要なわけではありません。 車は別の車輪でも十分に機能します。 |
例: フォルダー内にファイルが配置されます。 フォルダーを削除すると、そのフォルダーに関連付けられているファイルも削除されます。 |
製品概要
- 関係とは物事間のつながりです。
- 関連性、依存性、汎化、実現は様々 UML によって提供される関係.
- 標準の関係とは別に、UML 内では構成と集計が使用されます。
- 集約と合成は、どちらも UML における関連付け関係のタイプです。
- UML 構成は双方向の関係であり、二項関係とも呼ばれます。
ベスト UML ツールに関する記事をご覧ください:- ここをクリック