シーケンス図において、メッセージとは相互作用の参加要素どうしの特定の種類のコミュニケーションを定義するモデル要素です。メッセージは、対話内で、ある参加要素 (ライフラインによって表される) から別の参加要素に情報を伝達します。
メッセージは、送信側と受信側を指定し、実行のオカレンスがライフラインの間でディスパッチするコミュニケーションの種類を定義します。例えば、コミュニケーションでは、synchCall または asynchCall によって操作を起動 (呼び出) し、asynchSignal によってシグナルを発信し、参加要素を生成または破棄できます。
シーケンス図で使用するメッセージには 3 種類あります。
メッセージは、操作の呼び出しまたはシグナルの送受信のいずれかを表します。メッセージが操作を表す場合、メッセージの引数は、 送信側のライフライン上の CallAction の引数および受信側のライフライン上の CallEvent の引数です。メッセージがシグナルを表す場合、メッセージの引数は、送信側のライフライン上の SendAction の引数および受信側のライフライン上の SignalEvent で使用可能な引数です。メッセージが同期呼び出しである場合、一般に、呼び出し先のライフラインから呼び出し側のライフライン宛てのリターン・メッセージが発行された後で、呼び出し側のライフラインの処理が可能になります。
次に示すように、メッセージは、相互作用フレーム内でメッセージが送信される方向 (メッセージ送信側からメッセージ受信側へ) を指す矢印の付いた線として表されます。
ソースのライフラインからターゲットのライフラインに発信されるメッセージは、ターゲットのライフラインが実装する操作を表します。メッセージには、名前を付けたり順序を指定したりできます。線と矢印の外観は、メッセージのプロパティーを反映しています。
図形 | 説明 | 表現 |
---|---|---|
![]() |
受信側のライフラインに向かう、塗りつぶした矢印の付いた線 | 同期呼び出し操作。システムは制御のフローが完了するまで待ってから、外側のフローの処理を続行します。 |
![]() |
白抜きくさび型矢印の付いた線 | 非同期シグナルまたは非同期呼び出し。ソース・オブジェクトはメッセージを発信すると、ただちに次のステップの処理を続行します。 |
![]() |
発信側のライフラインに向かう、塗りつぶした矢印の付いた破線 | 呼び出しからプロシージャーへのリターン・メッセージ。同期メッセージを作成する場合、デフォルトでリターン・メッセージが生成されます。「設定」ウィンドウでこのデフォルトを変更できます。 |
メッセージは、名前または操作シグニチャーによって識別します。
タイプ | 例 | 説明 |
---|---|---|
名前 | ¥Get the Password¥ | 名前には、メッセージの名前のみを指定します。メッセージは操作ではなく責務によって識別されるため、図内では多くの場合、分析フェーズで作成された単純名が使用されます。メッセージ名が操作に関連付けられていないことを示すために、名前を円記号 (¥¥) で囲む規則となっています。操作がメッセージに関連付けられている場合、名前が操作名に置き換えられます。 |
シグニチャー | getPassword | 操作がメッセージに割り当てられている場合、操作の名前を識別する操作シグニチャーを表示できます。設計フェーズで作成されたシグニチャーは開発者が設計をコード化する際に必要な詳細情報を持っているため、図では多くの場合シグニチャーが使用されます。 |
非同期メッセージは、メッセージの送信点および受信点を個別に移動できる唯一のメッセージ・タイプです。ライフライン間で非同期メッセージのポイントを移動して、送信イベントと受信イベント間の時間遅延を操作できます。この結果をスキュー・メッセージといいます。
次に示すように、送信および受信のライフライン間で複数の相互作用が発生するスキュー・メッセージは白抜きくさび型矢印の付いた線として表示されます。
この送信イベントはブロックされません。送信側のライフライン上の点と受信側のライフライン上の点の間で相互作用が発生しても構いません。