 |
使えるUML 第3回 |
2007.4.3 掲載
コンポーネント図のいくつかの表現方法
「物事を分けてとらえる」をテーマにお送りしております。今回は、UML2.xが特に得意としている「仕様と実現方法を分ける」と「論理と物理を分ける」のうち、「仕様と実現方法を分ける」の後編です。複雑なビジネス領域や、高度な要求を実現するシステムの問題を解決するためには、問題をいくつかの視点から分解することが必要になります。
◇仕様と実現方法を分ける(後編)
前回、「仕様と実現方法を分ける」として、インターフェースとそれを実現するコンポーネントを分け、システム内部の部品化や共通化を行うことと、コンポーネント図により視覚的に把握することを説明しました。ここでは、このコンポーネント図についてもう少し詳しく見ていきましょう。
【ポイント】
・コンポーネント図には、コンポーネントを表現する際、いくつかの表現方法があります。
ひとことでコンポーネント図と言っても、UML2.xのコンポーネント図は、コンポーネントをいくつかの表し方で記述することができます。何を表現したいか、誰に見せたいかなどの目的に応じて選択し、使い分けましょう。コンポーネント図の表現方法は大きく以下のように分類されます。
| |
ブラックボックスビュー |
ホワイトボックスビュー |
| 型レベル |
(1) 区画にリスト
(2) インターフェースを図示
(3) 概略図
|
(5) 区画にリスト
(6) 実現分類子と依存関係
(7) 分類子の入れ子
|
| インスタンスレベル |
(4) コンポジット構造 |
(8) 内部コンポーネント
(9) 委譲パート
|
表1 コンポーネント図の表現方法の分類
表で示されている表現の分類観点は次のようなものです。
- ブラックボックスビュー
コンポーネントの振る舞いを実現する分類子や内部コンポーネントを隠蔽します。
- ホワイトボックスビュー
コンポーネントの振る舞いを実現する分類子や内部コンポーネントを明記します。
- 型レベル
型(分類子)レベルでのコンポーネントを表します。
- インスタンスレベル
コンポーネントにいくつかの役割が存在することや、実行時にコンポーネントがどのように合成されるかを示します。
表の中で分類された表現方法をひとつひとつ見ていきます。
- 区画にリスト
コンポーネント内の区画で、《provided interfaces》、《required interfaces》に続けて、提供インターフェースと要求インターフェースをリストします。
- インターフェースを図示
型として示されたコンポーネントが提供または要求するインターフェースを、ボール型とソケット型の記号で記述します。
 図1 インターフェースを図示
また、前回の図2のように、インターフェースの操作(イベント)を記述することもできます。
- 概略図
コンポーネントのインターフェースやポートを記述せずに、コンポーネント間の依存関係のみに焦点を当てます。
- コンポジット構造
前回の図1のように、コンポーネント間の結合をボール・アンド・ソケットで表されるアセンブリコネクタによって記述します。
- 区画にリスト
コンポーネント内の区画で、《realizations》に続けて、コンポーネントの振る舞いを実現する分類子を記述します。
- 実現分類子と依存関係
コンポーネントとそのコンポーネントの振る舞いを実現する分類子を依存関係で記述します。
- 分類子の入れ子
コンポーネントの内部に、そのコンポーネントの振る舞いを実現する分類子を図示します。
図2 分類子の入れ子
- 内部コンポーネント
コンポーネントが実行時に包含する、より粒度の細かいコンポーネントをインスタンスレベルで記述します。
- 委譲パート
コンポーネントの振る舞いを実現するインスタンスへの処理の委譲を、委譲コネクタにて記述します。
◇まとめ
コンポーネント図は、記述する視点によって表現方法が異なります。ここでは、すべての表現方法についての例を示すことはできませんでしたが、UML2.xの仕様書にはすべての例が記載されているので、参考にしてください。
また、コンポーネントベース開発(CBD)に関する詳細につきましては、弊社テクノロジックアートで提供しておりますトレーニングコースや、コンサルティングサービスをご活用いただけます。
■筆者紹介 照井 康真/Koma Terui 株式会社テクノロジックアート テクニカルデプト UMLモデリングチーム リーダー
|