0

在此处输入图像描述

如果我理解这 3 个状态机的含义,请向我解释。

1、StateA 调用 Enter 动作(此时什么都没有)然后设置定时器。当定时器触发 Acion1 被执行,然后 StateA Exit 动作(也没有)被执行,然后整个循环重复。所以 StateA 进入动作,设置定时器等。这与 Action1 进行了一种轮询

2、StateB进入动作被调用,定时器建立并在10ms后触发并执行Action2。定时器不会被更新,所以是对状态的一种延迟动作

3、StateC Enter action,设置Timer,触发后调用Action3,然后StateC Exit action,最后执行StateD Enter action。

如果正确,请确认或更正。

4

2 回答 2

1

1:您的描述是正确的,但有一个例外:退出操作是在执行Action1之前执行的,至少,这就是我解释 UML 2.5 规范的方式。第 14.2.3.4.6 节说:

如果复合状态定义了退出行为,它会在传出外部转换的任何效果行为之前执行 (...)。

我认为您可以放心地假设非复合状态也是如此,但 UML 2.5 规范在这方面应该更加明确。

2:我认为这不是一个正确的 UML 符号,所以我不能确认或否认你的描述。

3:这个状态机图没有说明初始状态是StateC还是StateD。如果是StateC,那么你的描述是正确的,只是StateC的退出动作是在Action3之前执行的。为了明确起见,该图应该有一个初始伪状态(实心圆圈),其中包含从初始伪状态到 StateC 的转换。

于 2015-11-09T23:53:25.280 回答
0

通常状态是用圆角矩形绘制的。

1) 沿过渡的符号是<trigger>/<effect>。的语义After(10)留下了一些解释空间。因此,当<trigger>火灾发生时,它将执行<effect>并返回相同的状态。

2)我不知道这个符号。您可以像这样指定进入/执行/退出操作 在此处输入图像描述

3) 和 1 一样,但是进入了一个新的状态。

于 2015-11-06T16:07:41.373 回答