イベント「A」によってトリガーされる2つの遷移を持つ状態S1がある場合、そのうちの1つはガードとしてx !=0
あり、もう1つはそうではありません。ガードが有効な場合に期待される動作は何ですか ( x ==1
)?
- 予測不可能な
- ガード付きトランジションをとる
- ガードのないトランジションを取る
同じイベントで 2 つの遷移を行うことができないということについて読んだことを覚えていません。
イベント「A」によってトリガーされる2つの遷移を持つ状態S1がある場合、そのうちの1つはガードとしてx !=0
あり、もう1つはそうではありません。ガードが有効な場合に期待される動作は何ですか ( x ==1
)?
同じイベントで 2 つの遷移を行うことができないということについて読んだことを覚えていません。
の場合x != 0
、たとえばx== 1
、 の遷移x == 0
が有効になっておらず、もう一方のガードされていない遷移が有効です。もう一方は解雇されます。
の場合x == 0
、両方の遷移が有効になります。これは、いわゆる「競合遷移」の状況です (UML Spec. 2.4.1 ., p. 575 を参照)。競合の解決は一般的にかなり複雑です。UML 仕様を参照してください。両方の遷移が同じ状態を離れる特定のケースでは、結果は非決定論的です。遷移のいずれかが実行される可能性があります