본문 바로가기
JLPT

UML シーケンス図のフラグメントを使用した制御フローの記述

by 엘리후 2021. 7. 5.

UML シーケンス図のフラグメントを使用した制御フローの記述

2016/11/15

注意

この記事は、Visual Studio 2015 に適用されます。 最新の Visual Studio ドキュメントをお探しの場合は、左上にあるバージョン セレクターを使用してください。 Visual Studio 2019 へのアップグレードをお勧めします。 ここからダウンロードしてください。

UML シーケンス図では、 結合フラグメント を使用して、ループ、分岐、およびその他のオルタナティブを表示できます。

結合フラグメントは、1 つまたは複数の 相互作用オペランドで構成されます。そのそれぞれには、1 つまたは複数のメッセージ、相互作用使用、または結合フラグメントが含まれます。

注意

このトピックでは、シーケンス図におけるフラグメントについて説明します。 UML シーケンス図を読み取る方法の詳細については、「 Uml シーケンス図: リファレンス」を参照してください。 UML アクティビティ図を描画する方法の詳細については、「 UML Sequence Diagrams: Guidelines」を参照してください。

image_not_found

図に示されている要素は、次のとおりです。

結合フラグメント。 結合フラグメントにはいくつかの種類があります。 この例に示されているのは、メッセージのオルタナティブ シーケンスを発生させられることを示すオルタナティブ結合フラグメントです。

相互作用オペランド。 すべての結合フラグメントには、メッセージ、相互作用使用、およびより小さな結合フラグメントを含むことができる 1 つ以上の相互作用オペランドが含まれています。 この例のオルタナティブ結合フラグメントには、メッセージの 2 つのオルタナティブ シーケンスを示す 2 つの相互作用操作があります。

各相互作用オペランド。その内部をクリックすることで別個に選択できます。 この例では、上部の相互作用オペランドが選択されているので、境界が表示されています。 通常は、相互作用オペランド間の区切り線のみが表示されます。

注意

上部の相互作用オペランドを選択する場合、結合フラグメントの最上部に近い場所をクリックしないでください。

ガード。 それぞれの相互作用オペランドにガードを設定できます。 ガードは、相互作用オペランド内のメッセージが実行される条件を記述します。

結合フラグメントの作成

作成できるフラグメントの一覧については、「 結合フラグメントの種類」を参照してください。

結合フラグメントを作成するには

1 つのメッセージを選択するか、またはすべて同じ生存線または実行発生で開始されるメッセージのシーケンスを選択します。

注意

複数のメッセージを選択する場合、メッセージは中断のないシーケンスを構成している必要があります。

いずれかのメッセージを右クリックし、 [ブロックの挿入] をポイントします。次に、必要な種類の結合フラグメント (たとえば、 オルタナティブ結合フラグメント) をクリックします。

新しい結合フラグメントが表示されます。 見出しは、選択した結合フラグメントの種類 (たとえば、 Alt) を示します。

結合フラグメントの内部には、選択したメッセージを含んだフラグメントがあります。

一部の種類の結合フラグメントには、さらに多くの相互作用オペランドを追加できます。

結合フラグメント内でメッセージを再配置した後は、ショートカット メニューの [レイアウトの再配置] を選択して、結合フラグメント フレームのサイズを変更します。

新しい相互作用オペランドを結合フラグメントに追加するには

相互作用オペランド (2) 内で、含まれているフラグメントの外側の、結合フラグメントの見出しの下の空白スペースを右クリックします。

[追加] をポイントします。

[相互作用オペランドを前置] または [相互作用オペランドを後置] をクリックします。

メッセージ ツールを使用するか、または既存のメッセージをコピーして貼り付けることによって、新しい相互作用オペランド内にメッセージを追加できます。

相互作用オペランドの Guard プロパティを設定して、相互作用オペランド内のメッセージを実行する条件を記述できます。 たとえば、 Loop 結合フラグメント内では、ガードを使用して、ループが続行される条件を指定できます。 Alt 結合フラグメントでは、それぞれの相互作用オペランドに対して別個の条件を指定できます。

相互作用オペランドのガードを設定するには

相互作用オペランド (2) 内で、含まれているフラグメントの外側の空白スペースを右クリックします。

相互作用オペランドとガード条件の周囲に選択境界線が表示されます。

[プロパティ] ウィンドウの見出しに [相互作用オペランド] と表示されます。

ガード条件を入力します。

条件がフラグメント (4) の最上部付近に表示されます。

一部の種類の結合フラグメントに対してプロパティを設定できます。

結合フラグメントのプロパティを設定または表示するには

結合フラグメントのタイトルを右クリックし、 [プロパティ] をクリックします。

注意

結合フラグメントの種類が異なると、プロパティも異なります。

結合フラグメントの種類

制御フローを記述するフラグメント

単純なシーケンス図は、1 つの一般的なシーケンスのみを表示します。 次の種類の結合フラグメントを使用すると、さまざまな状況で発生する可能性があるバリエーションを記述できます。

テーブル 1

フラグメントの種類 説明
Opt 省略可能です。 場合によっては発生するシーケンスを囲みます。 ガード内に、このシーケンスが発生する条件を指定できます。
Alt メッセージのオルタナティブ シーケンスを含んだフラグメントの一覧が入ります。 どのような場合でも発生するシーケンスは 1 つのみです。

各フラグメントにガードを設定して、シーケンスが実行される条件を示すことができます。 ガード else は、他に true のガードがない場合に実行する必要があるフラグメントを示します。 すべてのガードが false で、かつ elseがない場合、いずれのフラグメントも実行されません。
Loop フラグメントは複数回繰り返して実行されます。 ガード内に、繰り返しが発生する条件を示すことができます。

ループ結合フラグメントには、フラグメントを実行する最小回数と最大回数を示す MinMaxのプロパティが用意されています。 既定では、制限はありません。
Break このフラグメントを実行した場合、シーケンスの残りの部分は破棄されます。 ガードを使用して、中断が発生する条件を示すことができます。
基準 パラレル。 フラグメントのイベントをインタリーブできます。
致命的 パラレル フラグメントまたはシーケンス フラグメント内で使用します。 このフラグメント内のメッセージを他のメッセージとインタリーブしないことを示します。
Seq 複数のオペランド フラグメントがあります。 同じ生存線を使用する各メッセージは、フラグメントの順に発生する必要があります。 同じ生存線を使用しない場合、異なるフラグメントのメッセージをパラレルにインタリーブできます。
Strict 複数のオペランド フラグメントがあります。 フラグメントは、指定された順に発生する必要があります。

シーケンスの解釈方法に関するフラグメント

シーケンス図は、発生する一連のメッセージを既定で示します。 実行中のシステムでは、図への表示を選択していない他のメッセージが発生することがあります。

次のフラグメントの種類を使用して、この解釈を変更できます。

テーブル 2

フラグメントの種類 説明
このフラグメントで記述するメッセージのリストを指定します。 他のメッセージが実行中のシステムで発生することがありますが、この記述の目的にとっては重要ではありません。

Messages プロパティにリストを入力します。
無視 このフラグメントで記述しないメッセージの一覧。 これらのメッセージが実行中のシステムで発生することがありますが、この記述の目的にとっては重要ではありません。

Messages プロパティにリストを入力します。
Assert オペランド フラグメントは、有効なシーケンスのみを指定します。 通常は、Consider フラグメントまたは Ignore フラグメント内で使用します。
Neg このフラグメントに示されたシーケンスが発生しないことを示します。 通常は、Consider フラグメントまたは Ignore フラグメント内で使用します。

参照

Uml シーケンス図: ガイドライン uml シーケンス図: リファレンス uml モデルとダイアグラムの編集

댓글