シーケンス図での結合フラグメント

シーケンス図での結合フラグメントは、長方形で表示される論理グループで、メッセージのフローに影響する条件付き構成を含んでいます。 結合フラグメントは相互作用オペランドを含んでおり、相互作用操作子で定義されます。

結合フラグメントのタイプは、相互作用操作子によって決定されます。 結合フラグメントを使用すると、コンパクトかつ簡潔に、 複数の制御構造および論理構造を記述することができます。 相互作用操作子は結合フラグメントの振る舞いを定義する、論理または条件ステートメントのタイプを識別します。

以下の図にあるように、結合フラグメントは、ライフラインをカバーし、 相互作用オペランドを含む、フレームで表されます。 結合フラグメントに含まれている相互作用オペランドは、 各オペランド間を水平方向に結ぶ破線によって、分離されています。

相互作用フレームは結合フラグメントに含まれる相互作用操作子、オペランド、およびガード条件を表示します。

相互作用操作子

相互作用操作子は、 結合フラグメントのセマンティクスを定義し、 結合フラグメント内での相互作用オペランドの使用方法を決定します。 演算子は、オペランドに適用する論理条件のタイプを定義します。 例えば、代替 (alt) 相互作用操作子を持つ結合フラグメントは、if-then-else ステートメントと同様の働きをします。 前の図では、ループおよび代替 (alt) 相互作用操作子が、2 つの結合フラグメントを定義しています。

相互作用オペランド

シーケンス図における相互作用オペランドは、 ガード条件が満たされた場合に実行される相互作用フラグメントとメッセージをグループ化するコンテナーです。 ガード条件がない場合、そのブロックは常に実行されます。

相互作用オペランドは、それぞれが相互作用のフラグメントであり、 結合フラグメント内のライフラインをカバーしています。 相互作用オペランドには、相互作用制約を含むガード条件が含まれます。 相互作用オペランドは、ガード条件が true とテストされる場合にのみ実行されます。

相互作用操作子のタイプによって、結合フラグメントに 1 つまたは複数の相互作用オペランドを入れることができます。それぞれのオペランドごとに、ガード条件が存在する必要があります。

相互作用オペランドを作成すると、展開された状態で表示されます。 相互作用オペランドを縮小表示して、 オペランド、関連するメッセージ、 および相互作用フラグメントを非表示にしたり、 相互作用フレーム内の結合フラグメントのサイズを 最小化したりすることができます。

前の図では、代替 (alt) 結合フラグメントに 2 つの相互作用オペランドが含まれます。 1 つはガード条件が x>5 の相互作用オペランドで、もう 1 つはガード条件が x<=5 の相互作用オペランドです。 x=6 の場合、x<=5 ガード条件および対応するオペランドとメッセージが実行されます。 x>5 ガード条件および対応するオペランドとそれに含まれるメッセージは実行されません。

ガード条件

シーケンス図では、ガード条件に、ブール条件式である相互作用制約が含まれるか、または、ループの場合には、ループが実行される最小回数および最大回数を指定する式、およびオプションでインクリメンタル値が含まれます。

ガード条件は、結合フラグメントにある相互作用オペランド内で大括弧で設定される、 意味条件または意味制限です。 結合フラグメントを作成すると、ガード条件が自動的に作成されます。 既存のガード条件が存在しない相互作用オペランド内に、 ガード条件を手動で作成することもできます。

ガード条件は、相互作用の開始段階で登場し、 相互作用オペランドを実行するかどうかを決定するために必要な、 すべての情報を含んでいます。 ガード条件が true とテストされると、相互作用フラグメントが実行されます。

以下の図にあるように、 相互作用オペランドは、結合フラグメント内に長方形で表示されます。 その長方形には、ガード条件が true の場合に実行されるメッセージを含めることができます。右側のコードは、代替 (alt) 結合フラグメントの疑似コードがどのようなものかを示しています。
この相互作用フレームは、2 つの ライフラインと、そのライフラインと交差する 2 つの結合フラグメントを表しています。 最初の loop 結合フラグメントは、1 つの相互作用オペランドとガード条件を持っています。 2 番目の alt 結合フラグメントは、2 つの相互作用オペランド (それぞれガード条件を持つ) を持っています。
// このセクションは結合フラグメントです


//if else は相互作用操作子を表します
//if-else は代替 (alt) 結合フラグメントです
if ( value is greater than 5)
// () 内の条件はガード条件です
// {} 内のコードは相互作用オペランドです
// これは、ガード条件が true の場合に実行されます
	{ A send a message to B;
	B sends a return message to A;
	}
else if(x is less than or equal to 5)		
{
	B sends a message to A;
}
関連タスク
シーケンス図での結合フラグメントの作成
シーケンス図での相互作用オペランドの管理
遷移へのガード条件の追加
シーケンス図での結合フラグメントの管理
関連資料
シーケンス図の相互作用操作子

フィードバック