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


| ヘッダー名 | 正式名称 | 書式 | 説明 |
| 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では生成メッセージは点線で示します。 |




























オブジェクト
ライフライン
