UML コンポーネント図について
統一モデリング言語(UML)におけるコンポーネント図は、ソフトウェアシステムや
モジュールなどの構造を概観するための図です。この図は、システムを構成するコンポーネント(部品)と、それらが提供するインターフェース、そしてコンポーネント間の依存関係を視覚的に表現します。
概要
コンポーネント図は、ファイル、ヘッダ、
ライブラリ、
モジュール、実行可能ファイル、パッケージといった物理的な構成要素をモデル化するのに用いられます。この図を用いることで、システム全体の構造を設計し、記述することが可能です。
特に大規模なプロジェクトでは、システム全体を俯瞰的に捉え、複雑さを管理する上で非常に役立ちます。
UML 1.xでは、大規模なシステム開発に対応しきれないという反省点から、UML 2.0以降ではコンポーネント図が大幅に改訂され、より詳細な表現が可能になりました。本稿では、原則としてUML 2.0に準拠した内容を説明します。
構成要素
コンポーネント図は、以下の主要な要素から構成されます。
コンポーネント
コンポーネントは、システムの独立した部分を表します。UML 2.0では、単純な矩形(長方形)で表現されます。UML 1.xでは、長方形から2つの小さな長方形が左側に突き出した形状で表現されていましたが、2.0では、この図形をステレオタイプ`<
>`の代替として矩形の右上に描画することも可能です。
ポート
ポートは、コンポーネントが他のコンポーネントとどのように相互作用するかを示す接点です。ポートは、サブコンポーネントから提供されているインターフェースへの委譲を表現するために使われ、コンポーネントの一辺から突き出した四角形で表現されます。
インターフェース
インターフェースは、コンポーネントが提供または必要とするサービスを定義します。UMLでは、コンポーネントはクラスのサブタイプと見なされ、インターフェースはクラス図と同様に、四角形の区画内に列挙できます。
- - 提供インターフェース: コンポーネントが提供するインターフェースは、ステレオタイプ`<>`の下に記述されます。ロリポップ(白抜きの丸)で表現し、関連するコンポーネントに線でつなぐこともできます。
- - 必要インターフェース: コンポーネントが必要とするインターフェースは、ステレオタイプ`<>`の下に記述されます。ソケット(半円)で表現し、コンポーネントと線でつなぎます。ソケットはUML 2.0から導入されました。
- - インターフェースは、クラス図と同様の形式で記述し、依存の矢印を引いて表現することも可能です。
関係
関係は、コンポーネント間の論理的な連結の種類を表します。コンポーネント図では、以下の関係を表現できます。
依存
コンポーネント間の依存関係は、あるコンポーネントが別のコンポーネントに依存していることを示します。依存関係のステレオタイプには、包含関係を表す`<>`と、実現する生産物を示す`<>`があります。
必須インターフェースへの依存関係は、破線ではなく実線で表現し、末端は矢印ではなくロリポップを覆う半円で表現します。
委譲は、親コンポーネントと子コンポーネント間の関係を表します。親コンポーネントのどのインターフェースが子コンポーネントのどのインターフェースに委譲しているか、また親コンポーネントのどの必須インターフェースが子コンポーネントのどの必須インターフェースとなっているかを記述できます。
委譲は、親コンポーネントのインターフェースから子コンポーネントのインターフェースへの矢印、および子コンポーネントの必須インターフェースから親コンポーネントの必須インターフェースへの矢印で表現されます。
関連項目
外部リンク