シーケンス図
概要
メッセージの(送受信)やりとりを時系列にしたがって示す図です。
表記法
要素 | 表記 | 説明 | |
ライフライン | ![]() | メッセージをやりとりする主体です。長方形の下に点線を描きます。 | |
メッセージ | 同期メッセージ | ![]() | 同期化されたメッセージ。このメッセージが終了するまで次のメッセージは送られません。 |
非同期メッセージ | ![]() | 同期化されていないメッセージです。 | |
リターン | ![]() | メッセージの戻りを示します。省略可能です。 | |
実行指定(旧活性区間) | ![]() | 処理の開始から終了を長方形で表します。省略可能です。 | |
ライフラインの消滅 | ![]() | ライフラインの消滅を表します。 | |
結合フラグメント | ![]() | さまざまな作用を付与するフレームです。 | |
相互作用 | ![]() | 他のシーケンス図から参照させたい場合に使います。 | |
相互作用使用 | ![]() | 相互作用を参照させる場合に使います。 |
結合フラグメント
結合フラグメントを使用して、分岐や反復を表せます。


ヘッダー名 | 正式名称 | 書式 | 説明 |
alt | alternatives | alt | 分岐 |
opt | option | opt | 実行の有無 |
loop | loop | loop{(回数) | (開始,終了)} | 反復 |
break | break | break | 中断 |
par | parallel | par | 並列 |
seq | weak sequencing | seq | 緩い順序性 |
strict | strict sequencing | strict | 厳格な順序性 |
critical | critical region | critical | 割り込み禁止 |
ignore | ignore | ignore メッセージ[,メッセージ]… | 無視 |
consider | consider | consider メッセージ[,メッセージ]… | 考慮 |
neg | negative | neg | 無効 |
assert | assertion | assert | 表明 |
解説
オブジェクト同士のメッセージのやり取りを表現するための図です。
時系列にそって表現するため、メッセージの順序が明確になります。
左端を開始とし、右に向かってメッセージが流れるような配置を心がけます。
メソッドの漏れを検出できます。
時系列にそって表現するため、メッセージの順序が明確になります。
左端を開始とし、右に向かってメッセージが流れるような配置を心がけます。
メソッドの漏れを検出できます。
使用例
要素 | 表記 | 説明 |
生成 | ![]() | インスタンスの生成です。 |
メッセージ送受信 | ![]() | ライフラインAからライフラインBにメッセージ1を送信することを表します。 |
再帰メッセージ | ![]() | ライフラインが自分自身にメッセージを送ることを表します。再帰は省略されることが多いです。 |
分岐 | ![]() | 分岐です。ガードとは条件のことです。 |
分岐 | ![]() | 条件を満たす場合のみ実行されます。 |
ループ | ![]() | ループです。 |
ブレイク | ![]() | ループを抜ける条件です。 |
パラレル | ![]() | シーケンス1とシーケンス2は並行に行われます。 |
シーケンス | ![]() | 同じライフラインからのメッセージのみ順序を保証します。 |
ストリクト | ![]() | 全てのメッセージの順序を保証します。 |
クリティカル | ![]() | 排他により他からの割り込みを受け付けないことを表します。 |
詳細
要素 | 表記 | 説明 |
拾得メッセージ | ![]() | メッセージの送り手が不明であることを示します。 |
消失メッセージ | ![]() | メッセージの受け手が不明であることを示します。 |
ゲート | ![]() | 外部からのメッセージと外部へのメッセージを示します。 |
![]() | ||
並置領域(コリージョン) | ![]() | 受信順序は不定であることを示します。 |
要素 | 表記 | 説明 |
拾得メッセージ | ![]() | ライフラインAはメッセージを受信しますが、送信者名は不明です。 |
消失メッセージ | ![]() | ライフラインAはメッセージを送信しますが、受信者名は不明です。 |
ゲート | ![]() | ライフラインAはは外部にメッセージを送信します。 |
並置領域 | ![]() | ライフラインAとメッセージBの受信は順序が不定であることを表します。 |
新旧対応(2.0と1.5)
1.5との相違点です。
項目 | 2.0 | 1.5 | 説明 |
シーケンス番号 | なし | メッセージ先頭に番号:の形式で付与可能(省略可能) | 1.5ではメッセージにシーケンス番号を付与できます。 |
ライフライン | ![]() | ![]() ![]() | 1.5ではメッセージ送受信はオブジェクトが行います。オブジェクトの有効期間をライフラインと言います。 |
実行指定 | 実行指定 | 活性区間 | 1.5では活性区間と言います。 |
結合フラグメント | 有 | 無 | 2.0では結合フラグメントを使用します。 |
生成 | ![]() | ![]() | 2.0では生成メッセージは点線で示します。 |