[UML] コンポーネント図

コンポーネントは
そのコンポーネントが実現する仕様である提供IFと
別のコンポーネントに要求する使用である要求IFで
表現される
システムコンポーネント間の構造上の関係を描くことが目的
コンポーネントベース開発(CBD)に有用

ポイント
◎システム内部をIFで複数のコンポーネントに分割する
→システム内部のモジュール性を高めるられる
→仕様変更の影響範囲が局所化される

◎コンポーネントの表現方法は複数ある
=コンポーネント図の表現方法の分類=
*ブラックボックスビュー
. +型レベル: 区画にリスト(①)
. +型レベル: IFを図示(②)
. +型レベル: 概略図(③)
. +インスタンスレベル: コンポジット構造(④)
*ホワイトボックスビュー
. +型レベル: 区画にリスト(⑤)
. +型レベル: 実現分類子と依存関係(⑥)
. +型レベル: 分類子の入れ子(⑦)
. +インスタンスレベル: 内部コンポーネント(⑧)
. +インスタンスレベル: 委譲パート(⑨)
# ブラックボックスビュー=コンポーネントの振る舞いを実現する分類子や内部コンポーネントを隠蔽する
# ホワイトボックスビュー=コンポーネントの振る舞いを実現する分類子や内部コンポーネントを明記する
# 型レベル=型(分類子)レベルでのコンポーネントを表す
# インスタンスレベル=コンポーネントに幾つかの役割が存在することや 実行時にコンポーネントがどのように合成されるかを示す
①区画にリスト
 コンポーネント内の区画で
 <'<'provided interfaces>>, <'<'required interfaces>>に続けて
 提供IFと要求IFをリストする
②IFを図示
 型として明示されたコンポーネントが提供/要求IFを
 ボール型/ソケット型の記号で記述する
 ※IFの操作(イベント)を記述することも可
③概略図
 コンポーネントのIFやポートを記述せずに
 コンポーネント間の依存関係のみに焦点を当てる
④コンポジット構造
 コンポーネント間の結合をボール・アンド・ソケットで表されるアセンブリコネクタで記述する
⑤区画にリスト
 コンポーネント内の区画で
 <'<'realizations>>に続けて コンポーネントの振る舞いを実現する分類子を記述する
⑥実現分類子と依存関係
 コンポーネントとそのコンポーネントの振る舞いを実現する分類子を依存関係で記述する
⑦分類子の入れ子
 コンポーネントの内部に
 そのコンポーネントの振る舞いを実現する分類子を図示する
⑧内部コンポーネント
 コンポーネントが実行時に包含する より粒度の細かいコンポーネントをインスタンスレベルで記述する
⑨委譲パート
 コンポーネントの振る舞いを実現するインスタンスへの処理の委譲を処理コネクタで記述する


◎ノーテーション
○コンポーネントの表記方法
コンポーネントは長方形で表記する
オプションで縦の区画が付く
抽象化されたコンポーネントは コンポーネントの名前とコンポーネントのステレオタイプやアイコンの入った長方形だけでモデリングできる
コンポーネントのステレオタイプは <'<'component>>で コンポーネントのステレオタイプアイコンは2つの小さい長方形が左側に突き出した長方形となっている
# 以下のいずれもコンポーネントを示す
# -長方形+名前+ステレオタイプテキスト
# -長方形+名前+ステレオタイプアイコン
# -長方形+名前+ステレオタイプテキスト+ステレオタイプアイコン
※かならずコンポーネントステレオタイプテキストかアイコンを含める
 ∵UMLでステレオタイプclassifierのない長方形はクラスエレメントを示す
※コンポーネントステレオタイプテキストは二重のアングルブラケットで囲んで表記する

○コンポーネントのIF(提供/要求)のモデリング
コンポーネントエレメントとして示す
eg
--------------------------
|   <'<'component>>
|     Order
|-------------------------
|<'<'provided interfaces>>
| OrderEntry
| AccountPayable
|<'<'required interfaces>>
| Person
--------------------------
→OrderコンポーネントではOrderEntryとAccountPayableのIFを実装し Personインタフェースを実装する別のコンポーネントも必須であることを示す
コンポーネントエレメントはインタフェースシンボルで示すことも出来る
eg
|              ―――――――――
|    OrderEntry○―| <'<'component>> |
|              |   Order       |―(Parson
|AccountPayable○―|              |
|              ―――――――――
→先端に丸の付いたIFシンボルはコンポーネントの実装済みIFを示す(ロリポップシンボル)
→先端に半円の付いたIFシンボルはコンポーネントの必須IFを示す(ソケットシンボル)
→IFの名前はシンボルの傍に書く

○コンポーネント間の関係のモデリング
ロリポップとソケットの表記に依存矢印を含める
依存矢印は
ソケットを始点にロリポップに指す結ぶ
eg
<'<'cmpnt>>Order System―(CustomerLookup……→CustomerLookup○―<'<'cmpnt>>Customer Repository
# 使う側のコンポーネント…(uses)…>使われる側のコンポーネント

○サブシステム
サブシステム表記エレメントは
コンポーネントステレオタイプテキストの代わりにサブシステムステレオタイプテキストを記述する

○コンポーネントの内部構造の提示
包含するするコンポーネント名区画の中に内部の部品を置いて表記する
ネスティングされたコンポーネント図同士のコラボレーション図となる
内部コンポーネント間でモデリングされた関係は
UMLでアセンブリコネクタと呼ばれるもので示す
アセンブリコネクタは
1つのコンポーネント実装済みIFと別のコンポーネントの必須IFを結びつける


ref:
物事を分けてとらえる回, 20070302
http://www.umlcert.org/column/uml3_02.html
照井 康真, コンポーネント図のいくつかの表現方法, 20070403
http://www.umlcert.org/column/uml3_03.html
Donald Bell, IBM Global Services, IBM, UML 2.0のキホン:コンポーネント図の詳細解説, 20050202
http://www.atmarkit.co.jp/farc/rensai/redge31/redge31.html


tag:
UML コンポーネント図

tag : UML コンポーネント図

2010-05-27 02:04 : engineering : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud