連載第4回-2
UMLの基礎と応用
(株)NTTデータ 技術開発本部 副本部長
山本修一郎
■ユースケースとコラボレーションの関係
ユースケース図とコラボレーション図の関係を考えてみよう。ユースケース図を実現するためにコラボレーション図では必要となるクラス(オブジェクト)とクラス(オブジェクト)間の相互作用を記述することになる。言い換えるとコラボレーション図の作成は、ユースケースの記述をコラボレーション図の要素としてのクラス(オブジェクト)とその間の関係(オブジェクト間のメッセージの送受信関係)に変換することであると考えられる。ユースケースとコラボレーション図の関係を図1に示す。
図1 ユースケースとコラボレーション図の関係
JacobsonのObjectory[5]では、オブジェクトを境界オブジェクト(Boundary Object)、制御オブジェクト(Control Object)、実体オブジェクト(Entity Object)の3種類に分類してステレオタイプと呼んでいる。境界オブジェクトはシステムの外部とのインタフェースを実現するオブジェクトである。制御オブジェクトはユースケースのインスタンスとしてのシナリオの実行を制御するオブジェクトである。実体オブジェクトはデータベースなどの永続的なオブジェクトである。
したがって、ユースケース図とそれを実現するコラボレーション図には次のようにして関係付けることができる。
ユースケース図の構成要素には、アクタ、ユースケース、アクタとユースケースの関係がある。ユースケーステキストを用いてユースケースのシナリオが記述される。アクタはシステム外部を記述しているので、アクタおよびアクタとユースケースの関係に基づいて外部との境界オブジェクトを抽出することができる。ユースケースはシステムの機能を表現しているので、ユースケースのシナリオを実行制御するための少なくとも一つの制御オブジェクトをユースケースから抽出できる。実体オブジェクトはシナリオで格納される情報が何であるか、どこに格納されるかに基づいて抽出することができる。
マルチアプリケーションIC カード[6]にカードアプリケーションをダウンロードするユースケースからコラボレーションで必要になるオブジェクトを抽出した例を図2に示す。このユースケースではカード発行者とサービス提供者が異なっていて、カード発行後にカードアプリケーションをカードにダウンロードする。このためカード発行者とサービス提供者が異なるアクタとして記述されている。アクタから、カード所有者、カード発行者、サービス提供者を境界オブジェクトとして抽出する。また、カード所有者が必要なカードアプリケーションを選択するためのユーザーインタフェースとしてAPダウンロードウィンドウを抽出する。ユースケースに対する制御オブジェクトとしてAPダウンロード管理オブジェクトを抽出する。ダウンロードするアプリケーションを格納するため、カード領域オブジェクトを実体オブジェクトとして抽出する。ユースケース図の構成要素とコラボレーション図のオブジェクトとの関係を示すと図2のようになる。
図2 ユースケースによるコラボレーションオブジェクト分析
次いでこのようにして抽出されたオブジェクトの集合に対して、ユースケーステキストの記述を分析してオブジェクト間の相互関係としてのメッセージフローを抽出する。さらにメッセージ間の順序関係を追跡してメッセージフローによりシナリオが実現できることを確かめる。
以上に述べたユースケースに基づくコラボレーション図の作成手順をまとめると、図3のようになる。
図3 ユースケースに基づくコラボレーション図の作成
コラボレーション図はオブジェクト間の相互関係を記述するので、静的なコンテクストを含んでいる。したがってコラボレーション図を見直すことによってクラス間の相互関係に影響が出ることも考えられる。このような場合には、コラボレーション図の関係を正しく反映するようにクラス図も修正する必要がある[7]。
■コラボレーション図の具体例
マルチアプリケーションICカードにカードアプリケーション(AP)をダウンロードするユースケースに対するシナリオを以下に示す。
[例]APダウンロード
1.AP ダウンロードウィンドウ(ALC )がカード所有者(CH)にダウンロードAPを提示
2.CH がダウンロードAPを選択
3.ALCがAPダウンロード管理(AL)にダウンロード要求
4.ALがサービス提供者(SP)にダウンロード許可証を要求
5.SPがCHへのダウンロード可否を判断
6.SPがカード発行者(CI)に許可証を要求
7.CIがSPへのダウンロード可否を判断
8.CIがSPにダウンロード許可証を送信
9.SPがALにダウンロード許可証を送信
10.ALがCHのカードにAPをダウンロード
11.カード領域管理からALにレシートを送信
12.ALからSPにレシートを送信
13.SPからCIにレシートを送信
このシナリオに対応するコラボレーション図を図4に示す。
図4 APダウンロードのコラボレーション図
■ROSEによるコラボレーション図の作成
ラショナル社のROSE [8]では、ユースケース図に対して、メニュバーで相互作用図を選択すると、コラボレーション図とシーケンス図のいずれかを選択して作成できる。
またコラボレーション図の編集中にブラウズメニュのF5キーを選択するとシーケンス図が自動的に生成できる。一度、シーケンス図を生成すると、ブラウズメニュでコラボレーション図にジャンプできる。逆に、シーケンス図からコラボレーション図にもジャンプできる。
図5にROSEによるコラボレーション図の編集例を示す。
図5 ROSEによるコラボレーション図の例
■まとめ
本稿では相互作用図のうち、コラボレーション図について紹介した。また、ユースケース図とコラボレーション図の関係やシーケンス図との関係についても述べた。次回は、相互作用を記述するもうひとつの図であるシーケンス図について述べる。
参考文献
[1]ファウラ-,スコット著羽生田監訳,UMLモデリングのエッセンス 第2 版,翔泳社,2000.
[2] エリクソン,ペンカー著,杉本他訳,UMLガイドブック,トッパン(原著名UML Toolkit),1998.
[3] 日本語版UML(Unified Modeling Language)ドキュメントver 1.1, http://www.rational.co.jp/uml/
[4] Unified Modeling Language (UML),version 1.4,
http://www.omg.org/technology/documents/formal/uml.htm
[5] Jacobson,I.,Christerson,M.,Jonsson,P.,Overgaard,G.,Object-Oriented
Software Engineering
-A Use Case Driven Approach, Addison-Wesley,1992 .
[6]山本,細田,IC カード情報流通プラットフォーム,電気通信協会,2001.
[7]Martin,R.C.,UML Tutorial:Collaboration Diagrams,http://www.objectmentor.com/publications/umlCollaborationDiagrams.pdf
[8]日本ラショナルソフトウェア,http://www.rational.co.jp/