情報システムの分析と設計:シーケンス図(最終更新:2015/12/06 16:33:44 JST)
シーケンス図はコミュニケーション図ともに相互作用図と呼ばれ,,オブジェクトの動的な振る舞いを時系列であらわすために用いられる.
この章の内容
シーケンス図はオブジェクトの動的な振る舞いを時間的な経過を追って表現したものである.オブジェクト間のメッセージのやりとりが時系列で表示できるため,シナリオの流れや操作の実装方法を表現するのに役立つ.教科書100ページ図5-1はシーケンス図の一例である.またシーケンス図のおもなデザイン要素は教科書101ページの表5-1を参照のこと.
オブジェクトはクラスの実体を表し,シーケンス図では長方形で表される.長方形内には,オブジェクト名を「オブジェクト名:クラス名」の形式で記述する.アクターを利用することも可能である.シーケンス図の特徴は,オブジェクトがシステム内で生存している期間を明記する点である.この生存期間はヘッドからの垂直方向の破線で表す.このヘッドと破線を合わせたものをライフラインと呼ぶ.表記例は教科書102ページ図5-2を参照のこと.
オブジェクトは,アクティブオブジェクトとパッシブオブジェクトに大別できる.多くのオブジェクトはパッシブオブジェクトで,他のオブジェクトからメッセージを受け取って動作する.アクティブオブジェクトは他のオブジェクトからのメッセージを受診しなくても動作可能なオブジェクトである.図ではアクティブオブジェクトであることを明示するため,オブジェクトの箱の左右を二重線にする(教科書103ページ図5-3参照).
実行オカレンスとも呼ばれる.ライフライン中,オブジェクトが操作を実行していることを示すものが実行指定である.オブジェクトが実際に活動している期間と考えればよい.生存線の破線に多いかぶせるように細い長方形を描く.表記例は教科書103ページ図5-4を参照のこと.
メッセージはオブジェクト間の通信を表す.メッセージはオブジェクトの実行指定から実行指定への矢印で表現し,メッセージ名を矢印の近辺に付記する.またメッセージが操作の呼び出しの場合は,操作名を書くこともできる.なお,メッセージには,同期メッセージ,非同期メッセージ,戻りメッセージ,生成メッセージの4種がある.
同期メッセージは,メッセージに対する受信側の処理の終了を待つ.つまり送信側は受信側の処理が終了するまで,新しいメッセージの送信を行うことはできない.同期メッセージは塗りつぶした三角形の矢印で表す(教科書104ページ図5-5).一方,非同期メッセージは,受信側の処理の終了を待たずに,次のメッセージを送信することができる.通常の矢印で表す(教科書104ページ図5-5).
なお,メッセージのライフラインあるいは実行指定との接点はイベントオカレンスと呼ばれる.
戻りメッセージとは,他のメッセージによって呼び出された操作が終了するタイミングを明記する場合に記述する.通常の矢印を持つ破線で表す(教科書104ページ図5-5).
メッセージの書式は次の通り.なお戻り値は戻りメッセージのみに記述可能(1.xの記述法と異なる).
メッセージ名(引数) 戻り値を割り当てる先の属性=メッセージ名(_):"戻り値" または 戻り値の型=操作名(_):戻り値
オブジェクトが自分自身にメッセージを発行することも可能である.この場合は,教科書104ページ図5-5のように,実行指定を自分自身にもう1つ重ね,その事項指定へ矢印を書く.
オブジェクトの生成は,生成されるオブジェクトにメッセージの矢印を向けることで表現する(教科書105ページ図5-7参照).またより明確にするため,メッセージに<<create>>というステレオタイプを付記することも可能である.逆に,オブジェクトは生存線がなくなった時点で消滅する.メッセージ受信後に生存線が消えていれば,そのメッセージが削除のメッセージとなる.教科書105ページ図5-7のように,消滅マーカを付記したり,<<destroy>>というステレオタイプを付記することも可能である.
結合フラグメントはシーケンス図の中で行われる部分的なメッセージの相互作用に条件があること(条件を満たさないとメッセージが送信されない)や,繰り返しお粉荒れることを表す枠である(教科書106ページ図5-8参照).複合フラグメントとも呼ばれる.結合フラグメントの主なものは教科書107ページの表5-2を参照のこと.
なお図5-8の中で[実行条件]のように記述されているものが,表5-2で「ガード条件」と表現されているものである.メッセージの実行の制御を行うための条件である.