2013-03-23 74 views
0

如果我有一个状态S1和2个转换都由事件'A'触发,但其中一个具有警卫x !=0而另一个没有。当警卫有效时(x ==1),预期的行为是什么?具有相同触发/事件但不同警卫的多个转换的状态机

  1. 与后卫不可预知的
  2. 过渡采取
  3. 过渡无保护采取

我不记得阅读不能够有2个转换到同一个事件。

回答

3

if x != 0,例如, x== 1,那么与x == 0转换没有启用,另一个,无人防守的是。另一个被解雇。

if x == 0,则两个转换都被启用。这是所谓的“冲突转变”的情况(参见UML Spec. 2.4.1,第575页)。冲突解决通常相当复杂,参见UML规范。在你的具体情况下,如果两个转换都离开相同的状态,结果是非确定性的:可能会发生其中一个转换

+0

我刚刚意识到我的警戒解释是错误的,但答案的第二部分解释了它。你应该得到双重检查。 – Juan 2013-03-23 16:50:54

相关问题