シーケンス図のメッセージ交換

シーケンス図は、プロジェクト内のメッセージ交換を記述します。 シーケンス図にメッセージを配置してゆく作業は、ソフトウェア・システム開発における重要な工程の 1 つです。アニメーション化されたシーケンス図を実行して、実行プログラム内で発生するメッセージを見ることもできます。

シーケンス図は、ロールを割り当てられたオブジェクトの間でやり取りされるメッセージのシナリオを表現します。この機能は、分析および設計シナリオ、実行トレース、テストケース内の予想される振る舞いなど、さまざまな方法で使用できます。

垂直軸は、時間の次元で、システム・オブジェクト間のメッセージの交換を示します。 メッセージは、イベントまたは操作呼び出しの形式で行われるオブジェクト間の相互作用を表します。 これらは、オブジェクト・ライフラインを接続する矢印で描かれます。

以下のシーケンス図は、居住者が入室した後に、その HomeHeatingSystem 内で発生するコラボレーションを示します。 システム・オブジェクトが最初の行に指定されます。ネストされたオブジェクトは、トップレベルのオブジェクトから始まり、階層に従って進むオブジェクト・パスを使用して特定できます。 オブジェクトの配列を使用して、索引によりインスタンスが示されます。

オブジェクトの振る舞いの完成した要件は、各シナリオからのすべてのオブジェクト・ライフラインを投影したものになります。 シーケンス図内の一連のライフラインは、ステートチャートとしてオブジェクトの詳細なライフ・サイクルを形成します。

注: Rational® Rhapsody® Developer for C でアニメーションをアクティブにしてプログラムを実行していると、パッケージに含まれるグローバル・オブジェクトは、その元々の名前を、インスタンス索引を付けないアニメーション・インスタンス名にします。 例えば、グローバル・オブジェクト HomeHeatingSystem のアニメーション・インスタンス名は、HomeHeatingSystem[0] ではなく HomeHeatingSystem になります。

このシナリオでは、次のメッセージが、イベントとしてオブジェクト間で渡されます。

メッセージ 送信側 受信側 説明
updateOcc() <inhabitant> OccSensor 誰かが部屋に入りました。
occupied() <system> Room Room は、タイマーを受け取ります。
updateDtemp() <inhabitant> Room 居住者は、必要な温度を設定します。
heatReq() Room Furnace RoomFurnace に暖房を要求します。
motorReady() <system> Furnace システムは、Furnace のモーターが作動可能状態にあるかを検査します。
Fstarted() Furnace Room Furnace は、Room に作動開始を伝えます。
open() Room Valve Room は暖房の Valve を開けるように伝えます。
stopHeat() Room Furnace 温度が十分に暖かくなると、RoomFurnace に発熱を停止するように伝えます。
close() Room Valve Room は暖房の Valve を閉じるように伝えます。
Fstopped() Furnace Room FurnaceRoom に停止したことを伝えます。

シナリオの各イベントは、パッケージの宣言ファイル内のイベント構造に生成されます。 HomeHeatingSystem の例では、Default という名前の 1 パッケージのみなので、Default.h ファイルにイベント定義が生成されます。


フィードバック