メッセージは送信側と受信側を指定し、 ライフライン間で発生するコミュニケーションの種類を定義します。 例えば、コミュニケーションにより、同期呼び出しメッセージまたは非同期呼び出しメッセージを使用した操作の起動または呼び出し、非同期シグナルを使用したシグナルの生成、および参加者の作成または廃棄が可能です。
以下の表にリストされている 5 種類のメッセージを使用して、相互作用におけるライフライン間のコミュニケーションを示すことができます。
メッセージ | 説明 |
---|---|
生成メッセージ | 生成メッセージは、相互作用内でのインスタンスの作成を表します。 生成メッセージは、キーワード «create» で表されます。 ターゲット・ライフラインは、生成メッセージの発生時点で開始します。 例えば、銀行のシナリオでは、銀行の管理者はサーバーに生成メッセージを送信することにより、顧客の信用調査を開始します。 |
消滅メッセージ | 消滅メッセージは、相互作用内でのインスタンスの消滅を表します。 消滅メッセージは、キーワード «destroy» で表されます。 ターゲット・ライフラインは消滅メッセージの発生時点で終了し、X で表されます。 例えば、銀行の管理者は信用調査を開始した後、顧客のクレジット・プログラムの申込を閉じるかまたは破棄します。 |
同期呼び出しメッセージ | 同期呼び出しは操作に関連付けられており、送信および受信のメッセージを有しています。 メッセージは、ソース・ライフラインからターゲット・ライフラインに送信されます。 ソース・ライフラインは、ターゲット・ライフラインからの応答を受信するまで、他の操作からブロックされます。 例えば、銀行のシナリオでは、銀行の窓口係が承認のため銀行の管理者にクレジット要求を送信した場合、応答を待ってからその顧客へ対応を進める必要があります。 |
非同期呼び出しメッセージ | 非同期呼び出しは操作に関連付けられており、通常、送信メッセージのみ持っていますが、応答メッセージがあることもあります。 同期メッセージとは異なり、ソース・ライフラインは別のメッセージの受信または送信によってブロックされません。 送信ポイントと受信ポイントを個々に移動して、送信イベントと受信イベント間の時間を遅らせることもできます。 この方法は、応答の時間または順序が重要ではない場合に選択できます。 例えば、ある顧客がクレジットを申請した場合、クレジット申請の結果を待つ間に、電話で銀行の情報を受け取ったり、ATM で現金を引き出したりできます。 |
非同期シグナル・メッセージ | 非同期シグナル・メッセージは、シグナルに関連付けられています。 シグナルは、操作が関連付けられていないという点で、メッセージとは異なっています。 シグナルでは、割り込みまたはエラー状態を示すことができます。 シグナルを指定するには、非同期呼び出しメッセージを作成し、そのメッセージの「プロパティー」ビューでタイプを変更します。 例えば、信用調査所は、信用調査機関への接続に失敗したことを示すエラー・シグナル・メッセージを銀行の管理者に送信できます。 |
自己宛先メッセージは、ソース・ライフラインからそれ自身に送信されるメッセージです。 自己宛先メッセージは、再帰呼び出しにも、または同一のオブジェクトに属する別の操作またはシグナルへの呼び出しにもなります。
メッセージの表記ソースのライフラインがターゲットのライフラインに送信するメッセージは、 ターゲットのライフラインが実装する操作またはシグナルを表します。 メッセージに名前を付けて、順番を付けることができます。 線または矢印の外観は、メッセージのプロパティーを反映しています。 以下の表には、シーケンス図においてメッセージを表すグラフィックが示されています。
タイプ (type) | グラフィック | 説明 | 表記 |
---|---|---|---|
非同期 | ![]() |
開いた矢印を持つ線 | このグラフィックは、非同期シグナルまたは非同期呼び出しを表しています。 これによって、ソース・オブジェクトがメッセージを送信し、 すぐに次のステップを続行します。 |
同期 | ![]() |
受信ライフライン方向に向かう、塗りつぶし矢印を持つ線 | このグラフィックは同期呼び出し操作を表しています。 この操作では、ソース側がメッセージを送信し、ターゲット側からのリターン・メッセージを待機してからソース側は続行します。 |
同期リターン | ![]() |
発信ライフライン方向に向かう、塗りつぶし矢印を持つ破線 | このグラフィックは、呼び出しからプロシージャーへのリターン・メッセージを表します。 同期メッセージを作成すると、リターン・メッセージがデフォルトで作成されます。 このデフォルトは、「設定」ウィンドウ内で変更することができます。 |
メッセージは、操作呼び出し、またはシグナルの送信および受信のうち、いずれかを表します。 メッセージが操作を表す場合、操作名によりメッセージが識別されます。 そのメッセージの引数は、ターゲットのソースに渡されます。 リターン・メッセージには、結果の操作呼び出しの引数が含まれています。 メッセージがシグナルを表す場合、そのメッセージの引数はシグナルそのものです。 メッセージが同期呼び出しである場合、 呼び出されたライフラインから呼び出し元ライフラインへのリターン・メッセージが発生した後、呼び出し元ライフラインが続行します。
メッセージ識別名前または操作シグニチャーを使用して、メッセージを識別することができます。 名前は、操作に関連付けられていないメッセージの名前のみを識別します。 操作がメッセージに関連付けられている場合は、操作名によってその名前が置き換えられます。 操作シグニチャーが表示され、その操作の名前を識別します。 設計の段階でダイアグラムにおいてシグニチャーを使用し、その設計をコーディングする開発者に詳細を提供できます。
以下の図に示されるように、メッセージは、そのメッセージが送信される方向を指した矢印を持つ線 (送信メッセージの端からから受信メッセージの端) で示されます。 以下の例では、銀行の顧客がローンを申請する場合の銀行のシナリオを示すシーケンス図でのメッセージの表示方法を示しています。 顧客は、銀行の窓口係にローンの書類を渡しています。 銀行の窓口係は処理のために銀行の管理者にその書類を送信し、 その管理者が処理を終了するまで待機します。 銀行の管理者は信用調査プログラムを開始してデータを入力し、信用調査所が結果を送信するまで待機します。 銀行の管理者は応答を受信し、決定を伝えるメッセージを銀行窓口係に送信します。 銀行窓口係は、そのローンが承認されたかどうかのメッセージを顧客に送信します。 銀行の管理者は信用調査プログラムを閉じ、顧客は取引を完了します。