連載第10-1回
UMLの基礎と応用

(株)NTTデータ 技術開発本部 副本部長
山本修一郎

実装図

 実装図(Implementation Diagram)はシステムの物理的な構成を表すために記述する図式である[1][2][3][4]。実装図ではコンポーネントの構造や実行時の構成要素の配置についても記述する。したがって実装図にはコンポーネントの構造を記述するコンポーネント図と、各コンポーネントを収容するノードの構造を記述する配置図とがある。

コンポーネント図(Component Diagram)

 コンポーネント図では、ソフトウェアを構成するコンポーネント間の関係を記述する。コンポーネントには、コンポーネントの仕様を定義する論理的なコンポーネントと、コンポーネントを実現するソースコードファイルやオブジェクトコードファイル、実行形式ファイル、スクリプトなどの生産物の2種類がある。コンポーネント図の構成要素には、コンポーネント、クラス、インタフェース、依存関係がある。表1にコンポーネント図で用いる記号を示す。

表1 コンポーネント図の構成要素
表1 コンポーネント図の構成要素

(1)コンポーネント

 2個の長方形を左辺上に持つ矩形でコンポーネントを表す。またコンポーネントによって実装されるクラスをコンポーネント図の中で明示的に示すことができる。コンポーネントの中にクラスを埋め込んで記述する場合と、コンポーネントの外部にクラスを記述しておき、コンポーネントからクラスへの依存関係をつける場合がある。

(2)インタフェース

 コンポーネントが提供するサービスをインタフェースで定義する。インタフェースには省略形式と展開形式がある。省略形式の場合、インタフェースを円で表し、インタフェース名だけを記述する。省略形はロリポップ(lollipop)形式とも呼ばれる。インタフェースの展開形式ではコンポーネントが提供するサービスの属性や操作も含めて記述することができる。

 Java では次のようなinterfaceを記述する。

 public interface Message_control{String getMessage ();Void putMessage(String aMessage);}

 たとえば省略形式の場合にはMessageControl というインタフェース名だけを記述する。インタフェースの展開形式ではUML でも、インタフェースで定義されるgetMessage やputMessage などの操作も記述できるので、コードとの対応付けが容易になる。またコンポーネントのインタフェースを明示的に記述することにより、コンポーネントの差し替えや再利用がやりやすくなる。コンポーネント図でインタフェースが定義されていればコード化の段階で何をインタフェースにするかを判断する必要がなくなるので、作業を効率化できるだろう。

(3)依存関係

 コンポーネント間の依存関係を矢印のある点線で表す。依存関係のステレオタイプにはコンポーネントが包含するクラスを示す<reside>>関係とコンポーネントを実現する生産物を示す<<implement>>関係がある。

コンポーネント図の例

 Java Cardを例にして、ICカード上のJavaVM と、その上で動作するCardletの関係をコンポーネント図で記述した例を図1に示した。

図1 コンポーネント図のインタフェース
図1 コンポーネント図のインタフェース

 たとえば、JavaVMはCardletが実装すべき操作としてAPDUコマンド処理、アプレットのインストール処理、アプレットのセレクト時処理、アプレットのデセレクト時処理などを規定しているので、これらをCardletAPIとして記述してみた。JavaCard上のアプリケーションがこれらの操作を実装していないと、JavaVMから起動できないことになる。図1では、省略形と展開形を比較して示した。

 また図2では依存関係を用いてコンポーネント間の親子関係を記述する例を示した。

図2 コンポーネント図によるJavaクラスとファイルの記述例
図2 コンポーネント図によるJavaクラスとファイルの記述例

 このコンポーネント図ではJavaクラスCatalogInfo、Catalog、CatalogPKがコンポーネントCatalogに含まれることを示している。したがってこれらのクラスとコンポーネントとの間にステレオタイプ<<reside>>が付与されている。また、Catalog はCatalogJARというファイルで実装されるので、ステレオタイプ<<faile>>に対してCatalog から<<implement>>関係が付与されている。

配置図(Deployment Diagram)

 配置図では、オブジェクトやコンポーネントの物理的な配置関係を記述する。配置図の構成要素にはノードと接続関係がある。表2に配置図で用いる記号を示す。

表2 配置図の構成要素
表2 配置図の構成要素

(1)ノード

 ハードウェアなどの物理的な資源に対応するノードを立方体で表す。ノードの属性を表すステレオタイプには、<<processor>>や<<device>>などがある。ノードには配置するコンポーネントのインスタンスをノード内部に記述する。また、コンポーネントとノードの依存関係で配置内容を示すこともできる。この依存関係のステレオタイプは<<deploy>>である。

(2)接続関係

 ノード間の物理的な接続関係を実線で表す。接続関係を表すステレオタイプには、<<TCP/IP>>、<<RS232C>>、<<HTTP>>、<<CORBA>>などがある。

NEXT >> 

・連載第1回

・連載第2回

・連載第3回

・連載第4回

・連載第5回

・連載第6回

・連載第7回

・連載第8回

・連載第9回

・連載第10回

・連載第11回

・連載第12回

・連載第13回

・連載第14回

・連載第15回

・連載第16回

・連載第17回