複合構造図は、UML 2.0に追加された新しい成果物の1つです。複合構造図は、クラス、インタフェース、パッケージ、およびそれらの関係を含むUML構造図であり、ソフトウェアシステムの全体または一部の論理的な表示を提供します。構造化分類子またはコラボレーションの内部構造(部品とコネクタを含む)を表示します。
複合構造図はクラス図と同様の役割を果たしますが、複数のクラスの内部構造を説明し、それらの間の相互作用を示すことで、さらに詳細に調べることができます。内部のクラスや部分をグラフィカルに表現したり、クラス間およびクラス内の関連付けを表示したりできます。
より早く、より簡単にUMLを学ぶ
あなたはより早く、より簡単にそしてより早くUMLを学ぶための無料のUMLツールを探していますか?Visual Paradigm Community Editionは、すべてのUML図タイプをサポートするUMLソフトウェアです。それは国際的な賞を受賞したUMLモデラーですが、それでも使いやすく直感的で完全に無料です。
複合構造図の目的
- 複合構造図を使用すると、ユーザーはオブジェクトを「のぞき見」して、そのオブジェクトが構成されている内容を正確に確認できます。
- 入れ子になったクラスの関係を含む、クラスの内部アクションは詳細になります。
- オブジェクトは他の分類されたオブジェクトの構成として定義されるように示されています。
ひと目でわかる複合構造図
- 複合構造図はクラスの内部部分を示します。
- 部品の名前は次のとおりです。partName:partType [多重度]
- 集約クラスはクラスの一部ですが、パートは必ずしもクラスではなく、パートとは含まれているクラスを構成するために使用される要素です。
クラス図からの複合構造図の導出
オンラインストア
オンラインストア用のシステムをモデル化しているとします。顧客は、顧客が彼らに特別オファーと割引発送を提供する会員プログラムに参加するかもしれないと私達に言ったので、私達は顧客と標準オプションを提供するために顧客オブジェクトを拡張しました。
クラス図を使ってオンラインストアをモデル化しましょう
Itemクラスは、Orderクラスによって集約される可能性があります。このクラスは、それ自体がStoreManagerクラスによって構成されているCustomerクラスによって構成されています。他のオブジェクトの中に入るオブジェクトはたくさんあります。
すべてがStoreManager内に収まっているように見えるので、複合構造図を作成して、その構造を実際に確認できます。
上記の例では、次のようになります。
- システム全体ではなく、独自の観点からのStoreManager。
- クラス図の2つの構成矢印で示されているように、StoreManagerには2種類のオブジェクト(CustomerとItem)が直接含まれています**。**
- ここでの複合構造図は、Customerのサブタイプを含めることをより明確に示しています。
- ストアでは両方ともCustomerオブジェクトと見なされるため、これら両方のパーツのタイプはCustomerです。
- また、ItemとOrderの関係を示すコネクタもあります。
- OrderはStoreManagerクラス内に直接は含まれていませんが、それが集約するオブジェクト内にネストされた部分との関係を示すことができます。
クラス図と複合構造図
質問:下の2つの図は同じ意味を表していますか。
答え:クラス図では、DescriptionとPricingの間の参照はあいまいです。厳密に言えば、それらはまったく同じではありません。
- クラス図は、DescriptionがPricingオブジェクトへの参照を持つことを示しています
- しかし、2つのオブジェクト間の参照が明示的にアイテム内に含まれているかどうかは明示されていません。
複合構造図を使用する場合、関連関係の包含の意味は明白です。
- DescriptionオブジェクトとPricingオブジェクトの間の参照は、Itemによって構成されているオブジェクトに含まれています。
- オブジェクトのアクティビティの特定の実装は明確にモデル化できます。
外付け部品への参照
複合構造図が集約の記述にどのように優れているかの例を見てきましたが、モデルには、モデル化しているクラスの外側のオブジェクトへの参照も含める必要があります。
しかし、以下の例のように複合構造図を使って外部オブジェクトを参照することはどうでしょうか。
- 外部オブジェクトへの参照は、破線の長方形の部分として表示されます。
- 参照オブジェクトはクラスの外部にありますが、参照自体はモデル化されたクラス内にあり、その実装を示す上で重要なステップです。
複合構造図の基本コンセプト
UML 2.0仕様で識別されている主要な複合構造エンティティは、構造化分類子、部品、ポート、コネクタ、およびコラボレーションです。
コラボレーション
コラボレーションは、コラボレーションする部分(役割)の構造を表します。コラボレーションは、コラボレーション使用を通じて操作または分類子に関連付けられます。コラボレーションの特定の目的を達成するために必要な役割と接続のみを定義したい場合は、コラボレーションを使用します。
たとえば、コラボレーションの目的は、分類子の役割やコンポーネントを定義することです。主要な役割を分離することで、コラボレーションは構造を単純化し、モデル内の動作を明確にします。
例
この例では、ホイールとエンジンはコラボレーションの一部であり、FrontAxleとRearAxleはコネクタです。車は部品と部品間の接続を示す複合構造です。
部品
パーツは、包含構造化分類子が所有する1つ以上のインスタンスのセットを表すダイアグラム要素です。パートは、分類子におけるインスタンスの役割を説明します。分類子の構造コンパートメント、および複合構造図、クラス図、オブジェクト図、コンポーネント図、配置図、パッケージ図などのいくつかのUML図にパーツを作成できます。
港
ポートは、分類子インスタンスとその環境の間、または分類子の動作とその内部部分の間の相互作用点を定義します。
インタフェース
複合構造図は、提供されているインターフェースと必要なインターフェースのボール - ソケット表記をサポートしています。インタフェースは、必要に応じてダイアグラムに表示または非表示にできます。
コネクタ
モデル内の関係を表す線。分類子の内部構造をモデル化するときに、コネクタを使用して、部品またはポートの複数のインスタンス間のリンクを示すことができます。コネクターは、同じ構造化分類子内の役割にバインドされているオブジェクトまたはインスタンス間の関係を定義し、それらの役割間の通信を識別します。製品は自動的に作成するコネクタの種類を指定します。
複合構造図の例 - コンピュータシステム
次のコンポーネントのリストを含むコンピュータシステムの複合構造図を作成しましょう。
- 電源ユニット(PSU)
- ハードディスクドライブ(HDD)
- DVD-RW
- 光学式ドライブ(DVD-RW)
- メモリモジュール(MM)
当面は、メインボードがサウンドカードとディスプレイアダプタを内蔵したタイプであると仮定します。
今すぐ複合構造図を描く
これまでに、複合構造図とは何か、そして複合構造図の描き方を学びました。あなた自身の複合構造図を描く時が来ました。無料のUMLソフトウェアであるVisual Paradigm Community Editionを入手し、無料の複合構造図ツールを使用して独自の複合構造図を作成してください。それは使いやすく直感的です。
コメント