UML - 実装図(コンポーネント図 / 配置図)
■ページ目次
実装図
コンポーネント図
表記法
依存関係
パッケージ
表記法
パッケージの利用
循環参照
配置図
表記法
Top
■実装図
実装図には "コンポーネント図" と "配置図" の 2 種類があります。これらの図を通常はプロジェクトのはやい時期に作り、設計段階で使用されます。
実装図は、依存関係の検討やサブシステム分割、アーキテクチャーの定義などに有効です。
なお、"パッケージ図" は、UML2.0 で実装図に追加になりました。
Top
■図の位置づけ
図の位置づけは、つぎの表のようになります。
工程
要求定義
分析
設計
アーキテクチャー分析
ユースケース分析
アーキテクチャー設計
ユースケース設計
成果物
ユースケース・モデル(ユースケース図)、
用語集、
機能外要求
ドメイン・モデル、
分析クラス・メカニズム対応表
相互作用図(コラボレーション図)、
VOPC(ユースケースのクラス図)
パターン、
レイヤー、
設計クラス・メカニズム対応表
相互作用図(シーケンス図)、
クラス図
Top
■コンポーネント図
コンポーネント図は、コンポーネント間の依存関係を把握するための図です。
コンポーネント図で扱うコンポーネントは、プログラムのソースコードや、実行形式のファイル、画像ファイルなどのファイルの単位のことです。これは、システムを構成する再利用可能な部品です。
コンポーネントはサブシステムの実装と考えることもできます。
依存関係は、あるモデル要素が関係先のモデル要素の影響を受けていることを表します。
■表記法
コンポーネントは、四角形の左側に小さな四角を2つ重ねて表記します。
コンポーネント間を、依存関係をあらわす破線の矢印でつなぎます。
Top
■依存関係
依存関係は、片方の仕様変更がもう片方に影響を与える可能性を示します。
依存する側から依存される側に向かって矢印のついた破線を引くことで表現することができます。
この例は、"UserList.class" から "User.class" に向かって破線の矢印が引かれています。矢印記号がついている側が依存元になります。
これは以下のような依存関係を表現しています。
"UserList.class" は "User.class" に依存する。
"User.class" がなければ "UserList.class" は動作できない。
"User.class" を変更すると "UserList.class" も変更せざるをえない。
Top
■パッケージ
パッケージを使って複数のモデル要素をグループ化できます。
パッケージ化は、機能分割のために行なうのではありません。論理的に関連するものをグループにまとめるためであり、パッケージ間の依存関係を最低限に抑え変更の影響を少なくするためです。
■表記法
パッケージは、左上側に小さな四角形を持つ大きな四角形で表記されます。以下のようなさまざまな表記が可能です。
パッケージの内容を大きな四角形の中に記述する場合はパッケージ名を小さな四角形の中に記述します。
パッケージの内容の表示を省略する場合は、パッケージ名を大きな四角形の中に書いでもかまいません。
■パッケージの利用
パッケージは名前空間を定義することになるので、名前の衝突を避けることができます。
パッケージの内容をべつの図に書くことで細部を隠すことができます。
サブシステム分割を行なうために使えます。サブシステムは、仕様部と実現部を持っパッケージの一種です。
UML のすべてのモデル要素は、パッケージによりグループ化できます。またパッケージ内のモデル要素は他のパッケージから参照できます。
UML のパッケージは、Java のパッケージと違い、クラスのみをグループ化するのではなく、ことなる種類のモデル要素を含んでいてもかまいません。
異なるパッケージ内にあるモデル要素にアクセスする場合は、モデル要素名だけではなくパッケージ名も含めてモデル要素を指定する必要があります。おなじパッケージ内にあるモデル要素にアクセスする場合は、パッケージ名は省略できます。
パッケージはネストできますので、パッケージ名が複数つく場合があります。また、モデル要素名はパッケージ内でユニークであることが必要です。
書式は "パッケージ名::モデル要素名" となります。
com::maruno::sample::Taiyaki
Top
■循環参照
パッケージの依存関係を双方向につけることは通常しません。
上図のようになった場合、下図のようにパッケージ 1 のクラス B を別パッケージとして、循環参照をなくします。
Top
■配置図
配置図は、システムのハードウェア構成におけるノードの関係を図式化したものです。分散システム内の構成や関係を図解する場合に有用です。
ノードは通常ハードウェアを示し、デバイスやプロセッサなどを示すこともあります。
■表記法
ノードは立方体で表記します。ノード間の接続線が実線の場合は、物理的な接続を、破線の場合は論理的な接続を意味します。
配置図とコンポーネント図を重ねることも可能です。重ねることで、システム構成の全体像が把握しやすくなります。
Top