0
如果我有一个状态S1和2个转换都由事件'A'触发,但其中一个具有警卫x !=0
而另一个没有。当警卫有效时(x ==1
),预期的行为是什么?具有相同触发/事件但不同警卫的多个转换的状态机
- 与后卫不可预知的
- 过渡采取
- 过渡无保护采取
我不记得阅读不能够有2个转换到同一个事件。
如果我有一个状态S1和2个转换都由事件'A'触发,但其中一个具有警卫x !=0
而另一个没有。当警卫有效时(x ==1
),预期的行为是什么?具有相同触发/事件但不同警卫的多个转换的状态机
我不记得阅读不能够有2个转换到同一个事件。
if x != 0
,例如, x== 1
,那么与x == 0
转换没有启用,另一个,无人防守的是。另一个被解雇。
if x == 0
,则两个转换都被启用。这是所谓的“冲突转变”的情况(参见UML Spec. 2.4.1,第575页)。冲突解决通常相当复杂,参见UML规范。在你的具体情况下,如果两个转换都离开相同的状态,结果是非确定性的:可能会发生其中一个转换
我刚刚意识到我的警戒解释是错误的,但答案的第二部分解释了它。你应该得到双重检查。 – Juan 2013-03-23 16:50:54