HOME / PREVIOUS / NEXT


このページは後でもうちょっと書き足します。

Sequence図

Sequence図とは
時間的な流れに沿って、オブジェクトやクラス間のメッセージのやり取り(メ ソッドコールやオブジェクト生成など)を記述した、振る舞い図。
Keywords
Lifeline
Frame
Message
Interaction Operator
Duration

シーケンス図の変更

まずは下の例を見てみる。

UML1.XのSequence図を見たことがある人なら、かなりの変更がされていることに 気づくだろう。一番大きな変更は、フレームが導入されたことにある。
たとえば、 この図では中央に"alt"の名前がついたフレームが入っている。この中に、 Interaction Constraintとして[x>0][else]という条件文が入っていることから わかるように、このフレームは、プログラミング言語で言えば"if"にあたる。
こ のように、かなり細かくメッセージのやり取りを記述できるようになったことが わかる。"alt"などはInteraction Operatorと呼ぶが、これについてはあとでそ の種類について詳しく述べる。

Lifeline

Sequence図の基本は、Lifelineとmessageである。まずLifelineについて説明 する。

Lifelineの上部の四角形を"head"と呼ぶ。ここには、シーケンスを記述するオブジェ クトの名前やクラスの名前を書く。

<オブジェクトの名前> : <このオブジェクトのクラス >

ただし、オブジェクトの名前を書きたくない場合もあるので、その場合は次のよ うにオブジェクトの名前を飛ばして書いてよい。

: <クラスの名前>

破線は、このオブジェクトの存在期間である。オブジェクトが途中で消滅した場 合は、次のように、消滅した場所に「×」を書いて破線を終了させる。

また、オブジェクトが最初から存在せず、途中で生成(create)される場合もある。 そういった場合は、存在し始めた時点にLifelineのheadを置く。

Message

Messageとは、Lifeline間のコミュニケーションのことである。たとえば、 Operation(メソッドなど)を起動するメッセージや、オブジェクトを生成・破壊するメッ セージ、シグナルを引き起こすメッセージなどがある。

最初の例には、Messageの種類を何通りか挙げた。整理すると以下のようになる。

同期(Synchronous)メッセージ 同期を取るメッセージで、あるメッセージが別のメッセージを追い越すとい うことはない。
非同期(Asynchronous)メッセージ 同期を取らないメッセージで、あるメッセージが先に出された別のメッセー ジを追い越すことがある。
応答(reply)メッセージ 同期メッセージや非同期メッセージに対する応答を返す。
最初の例にはすべて書いているが、自明の場合は省略されることも多い。
Lost メッセージ 送信者側は存在しているが、受信イベントが起こることなく途中で消失したメッセー ジ。
Found メッセージ 受信者側は存在しているが、送信イベントについて描かれていないメッセー ジ。

Execution Occurrence

ExecutionOccurrenceとは、そのオブジェクトで実行が行われている期間を指す。 次の図で矢印で指したような四角形で表すが、省略されることも多い。

FrameとInteraction Operator

UML2.0では、基本的にSequence図はフレームで囲んで表すことになった。一般的 には"sd"("sd"とは"Sequence Diagram"の略)を用いて、これがSequence図である ことを示し、"sd"のあとにこのSequence図の名前を描く。

名前を用いることで何がいいかというと、Sequence図から別のSequence図を参照 できるようになったことである。
たとえば、次の例では、Sequence図MはSequence図Nを参照(ref:referenceの略) している。これで、Nは別にMでなくても様々なSequence図から使いまわせるよう になった。

また、最初に挙げた図では、"alt"(alternativeの略)を用いている。このような、 フレームの役割を決める接頭辞の種類を次の表で説明する(この接頭辞をInteraction Operatorと呼ぶ)。

Interaction Operator 元の言葉 意味
alt alternative この言葉がついたフレームは、振る舞いの選択をさせるフレームになる。ガー ド条件として書かれた式を評価し、たかだか1つのオペランドが実行される。
opt option この言葉がついたフレームは、唯一のオペランドを実行するか何もしないか を選択させるフレームになる。
break break
par parallel このフレームの中に書かれたいくつかのオペランドが平行に実行されること を意味する。
seq weak sequencing
strict strict sequencing
neg negative 正しくないと定義された否定的なトレースを表す。この言葉がついていないフレーム は、自動的に肯定的なトレースだと考えられる。
critical critical region 他のイベントに邪魔されてはいけない領域。
ignore ignore 重要でないMessageで、実行時には無視される領域。
consider consider ignoreとは逆に、検討しなければならない領域。
assert assertion
loop loop このフレームの中について、ガード条件の回数のとおりにループ処理を行う 領域。ガード条件には、ループする回数の上限と下限を書ける。


HOME / PREVIOUS / NEXT