UMLコンポジット構造図は、強力な構造図であり、内部アーキテクチャ構造化分類子、たとえばクラス、コンポーネント、またはシステムの内部構造を探索するために使用される。これは、エンティティが相互に接続された部品と、そのポート.

この図は、システムコンポーネントのブラックボックスおよびホワイトボックスの視点を定義し、明確な境界を確保し、コンポーネントの再利用を可能にするために不可欠である。
コア構造と文脈
この図は、分類子(境界ボックス)の文脈内に描かれる。これは、分析対象の全体的なシステムまたはコンポーネントを定義する。
A. 分類子の役割(境界)
- 表記法:大きな長方形のボックス。
- 目的:内部構造が定義されている全体のクラス、コンポーネント、またはシステムを表す。図内の他のすべての要素はこの境界内に含まれる。
内部ビューの基本要素
内部構造は、3つの主要な要素、すなわち部品、ポート、接続子によって定義される。
B. 部品
部品は、全体のコンポジット構造内での分類子(クラスやコンポーネントなど)のインスタンスが果たす役割を表す。本質的に、部品は内部の構成要素である。
- 表記法:境界内にある長方形のボックスで、名前と型がラベル付けされている。
- 構文:
partName: PartType(例:dataCache: CachingModule). - 重要な区別: パートはオブジェクトそのものではなく、役割 包含する分類子の文脈においてそのオブジェクトが果たす役割である。パート自体が複合構造であることもでき、深いネストを可能にする。
C. ポート
ポートは、複合構造(境界)とその環境との間、または内部のパート同士の間の明確な相互作用ポイントである。ポートは、コンポーネントが使用または提供するインターフェースを形式化する。
- 表記法:境界の辺または内部パートの辺に接続された小さな正方形。
- ポートの種類:
- パブリックポート: 外側の境界に接続されている;環境に露出している。
- カプセル化ポート: 内部パートに接続されている;そのパートを他の内部パートまたはシステム境界にのみ接続する。
- 目的: ポートは、必要なインターフェースと提供されるインターフェースを明示的に定義し、内部構造を隠蔽(ブラックボックスビュー)しつつ、契約上の相互作用ポイントを定義できる。
D. コネクタ
コネクタは、2つの要素間(2つのポート、2つのパート、またはポートとパートの間)の通信リンクまたは情報/信号の流れをモデル化する。
- 表記法: 2つの関連要素を結ぶ線。
- 目的: 通信リンクの実装を表し、データやメッセージが内部でどのように転送されるかを示す。
インターフェースのモデリング:提供されるものと必要なもの
インターフェースはポートの契約上の義務を定義し、アーキテクチャの明確さにとって不可欠である。
A. 提供されるインターフェース(ラッピングノートーション)
- 表記法: ポートに接続された円(または「ラッピング」)
- 目的: 分類子(またはパート)が環境または内部コンポーネントに提供するサービスや操作を示す。
B. 必要なインターフェース(ソケット表記)
- 表記法: ポートに接続された半円(または「ソケット」)
- 目的:分類子(または部品)が正しく機能するために、環境や他の内部コンポーネントから必要とするサービスや操作を示す。
アセンブリ接続子: 接続線は通常、必須インターフェース(ソケット) 1つの部品の提供インターフェース(ロリポップ) もう1つの部品の、システムの機能を果たすために内部コンポーネントがどのように接続されているかを示す。
協働のモデリング:役割と協働
複合構造図は、動的な協働—特定の役割と接続の集合であり、タスクを実行するために協働する。
A. 協働の使用
- 表記法:協働する役割の名前を含む破線の楕円。
- 目的: 大きなコンポーネント内で使用されている協働パターンのインスタンス(例:特定の観察者パターンの実装)を表す。
ステップバイステップのモデリング例:スマートホームコントローラ
以下のホームオートメーションシステム コンポーネントの内部構造をモデリングしよう。
- 分類子の境界: 外側のボックスを
ホームオートメーションシステム. - 外部ポート: ラベルが
apiPortの境界に追加する。提供インターフェース (ロリポップ) 用にICommandReceiver(外部世界から送信可能なもの) と 必須インターフェース (ソケット) 用にIExternalWeatherService(システムが必要とするもの). - 内部部品:
スケジューラ: TaskScheduler(時刻イベントを処理する).デバイスマネージャ: DeviceCoordinator(ハードウェアと通信する).
- 内部接続:
- 次のものを接続する:
apiPortをデバイスマネージャパートにコネクタを使用して接続する。 - 次のものを接続する:
スケジューラパートの出力ポートをデバイスマネージャパートの入力ポートに接続し、スケジューラがデバイスマネージャにいつ動作するかを通知していることを示す。
- 次のものを接続する:
- ネスト構造 (オプション): 次のものを示す:
デバイスマネージャ自身がzigbeeAdapterとwifiAdapter.
この図は、そのことが明確に示されています。ホームオートメーションシステムは、2つの主要な内部部品で構成されており、特定のAPIを使用し、機能するために外部の天気サービスを必要とします。
概要
このUML複合構造図は、クラスやコンポーネントのブラックボックスビューを越えて、そのホワイトボックスアーキテクチャを明らかにします。 以下の要素を使用することで、部品役割を定義し、ポート相互作用のポイントを定義し、接続子内部通信を定義することで、アーキテクトや開発者が複雑で再利用可能で明確にカプセル化されたコンポーネントを正確に理解し、設計できるようにします。
UMLおよびAI可視化に関する詳細は、当社のUMLリソースハブ.












