【チュートリアル】 - 分析編

bn_obj.gif (696 バイト)
3. モデル・図の作成
3.3 シーケンス図(sequence diagram)
jun ユースケース図やシナリオをもとにして、「シーケンス図」と「クラス図」を作成することができるんだよ。ここでは先に「シーケンス図」の作成を行うが、実際は、次の章で説明する「クラス図」と並行して作成していくことが多いんだ。
chen そうなんですか、分かりました。
jun この章では、シナリオから、オブジェクト同士の相互作用について見ていこう。相互作用というのは、システムがある振る舞いをするにあたって登場するオブジェクト同士のやりとりのことなんだよ。それを表現する図として、「シーケンス図」と「コラボレーション図」という2種類の図があるんだが、ここでは「シーケンス図」を作成するよ。
chen 「シーケンス図」と「コラボレーション図」は、何が違うのですか?
jun どちらの図も、もとになる情報は同じなんだが、その情報の特定の側面を表すんだ。「シーケンス図」はオブジェクトの間でやりとりされるメッセージの明示的な順序を表現しやすい図なんだよ。メッセージ送信をシナリオと対応させながら具体的なやりとりを示すのに便利だから、分析段階でよく使用されるんだ。「コラボレーション図」は、シーケンス図に比べると、オブジェクト間の接続関係が詳細に表現されるんだよ。だから、コラボレーション図は設計段階でよく使用されるんだ。今回のシステムについても、コラボレーション図は設計段階で考えることにしよう。
 

ill_28.jpg (14438 バイト)

 

<< シーケンス図 >>
◆「シーケンス図」ってどんな図?
     
  • シーケンス図は、オブジェクトの相互作用を時系列に沿って並べて表現したもの。
  • ユースケースを実現するのに必要なオブジェクトの集合と、そのやりとりを明確に表現できる。
  • メッセージを時間順にひとつずつ記述できるため、シナリオと対応させて具体的な内容を示すのに便利。
  • システムの同じ振る舞いを「コラボレーション図」で表現することもできる。
◆「シーケンス図」

wd_04.gif (3151 バイト)

メッセージ
  • メッセージはオブジェクト間のやりとりを表す。
  • オブジェクトの相互作用は、クライアントオブジェクトを表すライフラインから、サプライアオブジェクトを表すライフラインへ向かう水平の矢印で表す。
  • 順序は縦軸上の位置によって示されるため、メッセージ番号は記述しなくてもよい。
活性区間 (activation)
  • あるオブジェクトがフローの中で制御対象になっている相対的な時間を表すことができる。
ライフライン(生存線)
  • オブジェクトが生存する期間を表す。

 

chen では、シーケンス図の作成の仕方としては、シナリオをもとに、オブジェクト同士のやりとりを順番に書いていけばいいのでしょうか?
jun そうだよ。メッセージをやりとりするアクターやオブジェクトを上に並べて、それぞれのライフラインに対して上から順番にメッセージを書いていくんだよ。アクターやオブジェクトを並べる順序は特に決まっていないが、処理の流れで登場してくる順序で並べていけば、メッセージの方向が揃いやすくなって、見やすくなるね。オブジェクトにはオブジェクト名とクラス名を記述することができるが、初期のシーケンス図では、シナリオから拾うことができるオブジェクト名だけを指定すればいいよ。
chen メッセージの方向を表す矢印の向きは決まっているのですか?
jun 決まってないよ。矢印は双方向に引くことができるし、自分自身のオブジェクト内での操作については「コ」の字に折り返すような矢印を引くこともできるよ。
chen 分かりました。
 
Prev. Next Home Top