コンポジット構造図では、ポートは分類子インスタンスとその環境、または分類子の振る舞いとその内部パートの間の相互作用ポイントを定義します。
外部環境と内部パートのすべての相互作用がポートを介して渡される必要があるため、 ポートを使用して、オブジェクトの内部パートをその環境から分離することができます。コネクターは、ポートを分類子のプロパティーにリンクし、複数のインスタンス間のコミュニケーションを呼び出します。分類子に複数のポートを定義し、相互作用が発生するポートに応じて、異なる相互作用を示すことができます。
次の図が示すとおり、ポートは、ポートの名前とともに小さな正方形でダイアグラム・フレームに表示されます。
コンポジット構造図の枠およびコンポジット構造図の内部パートにポートを追加することができます。上の例で、委譲コネクターは外部構造格納機構の Port:Car ポートを e:Engine という内部パートにリンクします。アセンブリー・コネクターは、front:Wheel[2] および rear:Wheel[2] の 2 つの内部パートを Port:Engine という内部ポートにリンクします。
ポートは両方向に相互作用できます。ユーザーは、提供された必須インターフェースを追加して、分類子とその環境間で発生する可能性のある相互作用のタイプを指定することができます。
次の図が示すとおり、ポートは分類子とその環境との相互作用ポイントで、 提供された必須インターフェースをいくつでも、分類子が外の世界に持つことができる論理相互作用にグループ化することができます。
上の例で、Car 分類子には 2 つのポートあります。外部ポート Engine:PowerGenerator には、Car クラスが車を操作するのに必要な Gasoline という必要なインターフェースがあります。内部ポート DriverSeatbelt:Seatbelt には、Car クラスが車を操作するためにドライバーに提供する SafetyDevice という提供されたインターフェースがあります。
ポートの isService プロパティーを使用して、コンポジット構造図のポートの位置を変更することができます。 isService プロパティーが true に設定されると、 ポートがコンポジット構造図の枠に表示され、そのポートがその環境に必要であることが示されます。このプロパティーが false に設定されると、ポートは構造格納機構内で移動し、 ポートが分類子の内部実装にのみ使用され、その環境には必要でないことが示されます。 isService プロパティーが false に設定されると、分類子の使用に影響を及ぼすことなく、ポートを削除したり、変更したりすることができます。