前回は、UMLを用いてアーキテクチャをモデリングするテーマとして、「配置図でモデリングするテーマ」であるシステム間連携を取り上げました。今回は、「コンポーネント図でモデリングするテーマ」について具体的に説明します。

コンポーネント図を用いてUMLによるモデリングを行うテーマは、「コンポーネントの依存関係」となります。

コンポーネントの依存関係

一定規模以上のシステムを開発する場合は、以下の4点を実現するためにシステムを複数のコンポーネント(またはサブシステム)に分割することが一般的です。

●コンポーネントごとに開発チームを作って並行作業をしやすくする
●障害発生時の影響範囲を局所化して被害を最小化する
●障害発生時や保守時の調査範囲を限定できるようにして調査期間・復旧期間を短縮する
●障害発生時や保守時に変更箇所の影響範囲やシステム停止の影響範囲を局所化する

これらのメリットを享受するには、コンポーネント間の依存関係が疎になるように、コンポーネントを分割してインタフェースを設計する必要があります。

以下の図は配達予約システムのコンポーネント図であり、コンポーネントのインタフェースと依存関係を定義しています。

コンポーネントの依存関係を示したコンポーネント図

この図からもわかるように、コンポーネントの内部にさらにコンポーネントを定義することができます(「配達予約システム」に「配達予約コンポーネント」を定義するといった具合にです)。この方法を用いることで、システムをサブシステムに分割し、さらにサブシステムをコンポーネントに分割するといったことを表現します。

また、コンポーネント間のインタフェースは、図中の「配達予約機能インタフェース」に示しているように、「提供インタフェース」と「要求インタフェース」を定義します。提供インタフェースとはコンポーネントが実装しているインタフェースのことであり、また、要求インタフェースとはコンポーネントが呼び出す他のコンポーネントのインタフェースのことです。

『出典:システム開発ジャーナル Vol.5(2008年7月発刊)
本稿は原稿執筆時点での内容に基づいているため、現在の状況とは 異なる場合があります。ご了承ください。