シーケンス図における相互作用操作子は、
結合フラグメントのセマンティクスを定義し、
結合フラグメント内での相互作用オペランドの使用方法を決定します。
次の表に、非常によく使用される相互作用操作子をリストします。
| 相互作用操作子 |
説明 |
| 代替 (alt) |
代替 (alt) 相互作用操作子は、if-then-else ステートメントと等価であるロジックを表します。
提供された代替選択肢のいずれかのみが、その相互作用を経由する任意のパスで実行されます。
ただし、他のオペランドと同様に、代替構造体内の選択されたオペランドは、
ガード条件が true と評価された場合にのみ実行されます。
ガードがない場合は、オペランドは選択されると常に実行されます。
代替結合フラグメントの else 節は、その他のオプションが選択されない場合に実行されます。 |
| オプション (opt) |
オプション (opt) 相互作用操作子は、if ステートメントと等価であるロジックを表します。
実行するには、ガード条件を満たす必要があります。ガード条件が失敗すると、その振る舞いは無視されます。
オプション結合フラグメントのグラフィック表記は、1 つの選択肢のみを提供する代替のように表されます。 |
| Loop |
ループ (loop) 相互作用操作子は、相互作用フラグメントが繰り返し実行されるよう指示します。
そのフラグメントが実行される回数は、演算子の minint パラメーターおよび maxint パラメーターによって決まります。
loop 演算子の構文は、loop (minint, maxint) のようになります。maxint には無限大 (*) にすることもできます。
最小反復回数を経過すると、ブール式が各パスでテストされます。
ブール式が false とテストされると、そのループは終了します。 |
| 並列 (par) |
並列相互作用操作は、相互作用フラグメントが並列で同時に実行されることを示します。 |
| クリティカル領域 (critical) |
クリティカル領域操作子は、フラグメントには、そのフラグメントを実行するスレッドが常に 1 つしかないことを示します。
フラグメントが終了しなければ、別のスレッドを実行することはできません。
例えば、操作 d() がクリティカル領域内にある場合に呼び出されると、
d() が終了するまで、他の操作を呼び出すことはできません。 |
| 負 (neg) |
負の相互作用操作子は、発生が認められていない無効の相互作用を示します。 |
| 中断 |
中断相互作用操作子は、他のプログラミング言語の中断メカニズムと同じです。
ガード条件が true の場合、現在の相互作用の実行が中止されて、中断相互作用オペランド内の節が実行されます。 |
| 強シーケンス (strict) |
strict 相互作用操作子は、相互作用フラグメントの実行順序を明示的に定義します。
strict 操作子は、ネストされた相互作用または追加相互作用を実行する前に、
相互作用を強制的に終了します。 |
| 弱シーケンス (seq) |
弱シーケンス相互作用操作子は、相互作用の配置に基づいて、フラグメント内の相互作用に順序を追加します。
順序付けは、UML 2.0 の仕様に基づきます。弱シーケンスでは、
部分的な並列実行を行うことができますが、
同じライフライン上のイベントの順序は、別の相互作用から制御されます。 |
| 無効 |
無効相互作用操作子は、相互作用フラグメントが応答する必要がないメッセージを示します。
通常、無効操作子は、有効操作子とペアで使用されます。 |
| 有効 |
有効相互作用操作子は、相互作用フラグメントが応答する必要があるメッセージを示します。
通常、有効操作子は、無効操作子とペアで使用されます。 |
| 表明 |
表明相互作用操作子は、相互作用オペランドが相互作用フラグメント内の次のシーケンスであることを示します。 |