4 相互作用図 後半 FM13001 青野大樹
4-4 コラボレーション図 コラボレーション図・・・相互作用の参加者を中心にメッセージのやり取りを表現するもの
4-4 コラボレーション図 UML1.x メッセージラベル オブジェクト 1:Message1() オブジェクト1 オブジェクト3 4-4 コラボレーション図 UML1.x メッセージラベル オブジェクト 1:Message1() オブジェクト1 オブジェクト3 2:Message2() 3:Message3() アクター1 リンク メッセージ オブジェクト2 シーケンス番号
4-4 コラボレーション図 UML2.x メッセージラベル ライフライン 1:Message1() ライフライン1 ライフライン3 4-4 コラボレーション図 UML2.x メッセージラベル ライフライン 1:Message1() ライフライン1 ライフライン3 2:Message2() 3:Message3() アクター1 メッセージ ライフライン2 シーケンス番号
4-4 コラボレーション図 UML1.xのコラボレーション図でのオブジェクトは次のように表示できる オブジェクト名 オブジェクト名のみ 4-4 コラボレーション図 UML1.xのコラボレーション図でのオブジェクトは次のように表示できる 田中さん 田中さん:会員 :会員 オブジェクト名 と クラス名 オブジェクト名のみ クラス名のみ
4-4 コラボレーション図 リンク 2つのオブジェクト間にリンクがあるということは、そのオブジェクト間に何らかのデータのやり取りや関係があることを表現している 会員リスト 会員
4-4 コラボレーション図 メッセージ 同期メッセージで、操作の呼び出しで実現する 非同期メッセージで、階層化していないメッセージ呼び出し 4-4 コラボレーション図 メッセージ 同期メッセージで、操作の呼び出しで実現する 非同期メッセージで、階層化していないメッセージ呼び出し 同期メッセージのリターン
先行子 ガード条件 シーケンス式 返却値 : = メッセージ名 (引数並び) 4-4 コラボレーション図 メッセージラベル シーケンス番号が整数の場合はメッセージ送信の順番を表し、アルファベットの場合は並行処理を表現する 先行子 ガード条件 シーケンス式 返却値 : = メッセージ名 (引数並び) シーケンス番号 繰り返し式 :
4-4 コラボレーション図 例 Webウィンドウ 商品リスト お客さん 商品 4:表示() 5:選択() 1:商品情報:=表示() 4-4 コラボレーション図 例 4:表示() 5:選択() 1:商品情報:=表示() 2:商品情報:=商品情報取得() Webウィンドウ 商品リスト お客さん 6:選択() 3:商品情報:=商品情報取得() 商品
4-4 コラボレーション図 マルチオブジェクトとは複数のオブジェクトで構成される集合体である 1:会員情報取得() 会員 店員 会員
1*[i=1..n]:会員情報:=会員情報取得(会員ID) 4-4 コラボレーション図 メッセージを繰り返しオブジェクトに対して送信したいときは、シーケンス式に以下の形式で繰り返しを記述する 1*[i=1..n]: 1*[i=1..n]:会員情報:=会員情報取得(会員ID) 会員 店員 会員
4-5 コラボレーション図∽(アドバンス)∽ 並行処理(∽アドバンス) 複数のメッセージが同時に送信されていることを示す Webウィンドウ 4-5 コラボレーション図∽(アドバンス)∽ 並行処理(∽アドバンス) 複数のメッセージが同時に送信されていることを示す 同時並行処理 1:表示() 2a:表示() Webウィンドウ 商品リスト 3a*[i=1..n]:表示() 2b:表示() 3b*[i=1..n]:表示() 商品 商品 イメージ イメージリスト イメージ
4-5 コラボレーション図∽(アドバンス)∽ 先行子(∽アドバンス) 4-5 コラボレーション図∽(アドバンス)∽ 先行子(∽アドバンス) 先行子に書かれた1つ以上のシーケンス番号のメッセージ送信がすべて行われるまで、メッセージ送信が可能にならない シーケンス番号1,シーケンス番号2,…/
4-5 コラボレーション図∽(アドバンス)∽ 商品 Webウィンドウ 商品リスト 商品 イメージ イメージリスト イメージ ボタン 4-5 コラボレーション図∽(アドバンス)∽ 2a:表示() 3a*[i=1..n]:表示() 1:表示() 商品 Webウィンドウ 商品リスト 商品 2b:表示() 2a,2b /2:表示() 3b*[i=1..n]:表示() イメージ イメージリスト イメージ ボタン 2a,2bメッセージ送信後
4-5 コラボレーション図∽(アドバンス)∽ アクティブオブジェクト(∽アドバンス) 4-5 コラボレーション図∽(アドバンス)∽ アクティブオブジェクト(∽アドバンス) アクティブオブジェクトは制御する流れを1つ所有し、制御活動を開始して、相互作用の流れを制御するオブジェクトである アクティブオブジェクトは別のオブジェクトの制御化では稼働しない 一度生成されると他のアクティブオブジェクトと独立して稼働する
4-5 コラボレーション図∽(アドバンス)∽ 社員1 課長 社員2 顧客 社員3 2a:会議室の用意 2b:書類のコピー 2c:関係者の招集 4-5 コラボレーション図∽(アドバンス)∽ 社員1 2a:会議室の用意 2b:書類のコピー 課長 社員2 1:トラブル報告 2c:関係者の招集 顧客 社員3
4-5 コラボレーション図∽(アドバンス)∽ 仕様レベルコラボレーション図(∽アドバンス) 4-5 コラボレーション図∽(アドバンス)∽ 仕様レベルコラボレーション図(∽アドバンス) 仕様レベルコラボレーション図ではオブジェクト同士の協調関係の中で、定義された役割(ロール)を表現する /役割(ロール)名: クラス名
4-5 コラボレーション図∽(アドバンス)∽ 販売活動の協調関係 買い手という役割の会社 /売り手:会社 /買い手:会社 商品 販売会社* 4-5 コラボレーション図∽(アドバンス)∽ 販売活動の協調関係 販売会社* /売り手:会社 購入会社* *販売品 購入品* /買い手:会社 商品 買い手という役割の会社
オブジェクト名 /役割(ロール)名: クラス名 4-5 コラボレーション図∽(アドバンス)∽ 役割(ロール)名を入れたインスタンスレベルのコラボレーション図 オブジェクト名 /役割(ロール)名: クラス名 A会社/売り手:会社 2:販売会社名取得() 1:購入() B会社/買い手:会社 商品
4-5 コラボレーション図∽(アドバンス)∽ 相互作用参加者の比較 インスタンスレベルのオブジェクト(UML1.x) 4-5 コラボレーション図∽(アドバンス)∽ 相互作用参加者の比較 インスタンスレベルのオブジェクト(UML1.x) 仕様レベルのオブジェクト(UML1.x) ライフライン(UML2.x) オブジェクト名:クラス名 /役割(ロール)名:クラス名 役割(ロール)名:クラス名
Chapter4 まとめ オブジェクト指向のシステムは“登場人・物”同士でメッセージのやり取りをすることにより、プログラムが進行していく。そのやり取りをUMLでは相互作用図で表現する 相互作用図にはシーケンス図とコラボレーション図がある シーケンス図は時系列に沿ってメッセージのやり取りをする
Chapter4 まとめ コラボレーション図はオブジェクトを中心にメッセージの流れを表現する UML2.xのシーケンス図ではオブジェクトの代わりにライフラインで表現する