我读了很多关于它的内容,但仍然不确定状态执行的顺序(在复合状态中)以及深度和浅层历史究竟是如何工作的?有人可以帮助我吗?我有一个例子,我不知道如何解决,这里是:
我将不胜感激任何帮助!
问题一:
...不确定..深刻和浅薄的历史究竟是如何运作的?
答案1:
请注意:
浅历史由一个包含“H”的小圆圈表示。它适用于直接包围它的州区域。
浅历史伪状态表示其包含状态的最新活动子状态(但不是该子状态的子状态)。...
来源:http ://www.uml-diagrams.org/state-machine-diagrams.html#shallow-history-pseudostate
问题2:
...我不确定我是否应该总是从初始点开始,这是所有复合材料之外的?
答案 2:
是的。您从根状态(在本例中为 A)的初始伪状态开始。
例子:
对于给定的状态图和事件链,您将获得以下结果(使用 Rhapsody 模拟):
默认转换为 A 后
x = 3
x = x * 2 = 6
默认转换到 A::B 后
x = 6
e1之后
x = x + 1 = 7
默认转换为 A::C::G 后
x = x + 1 = 8
e3 之后
x = x - 2 = 6
x = x / 2 = 3
e4之后
x = x + 1 = 4
e6之后
x = x - 2 = 2
x = x - 1 = 1
x = x - 1 = 0
x = (x * 4) + 2 = 2
e7之后
x = x + 1 = 3
x = x + 1 = 4
e4 被丢弃
e7之后
x 的值(退出 Y):x = x / 2 = 1
x 的值(条目 A):x = x * 2 = 2
x 的值(条目 A::C 见上面的注释):x = x + 1 = 3
x 的值(条目 A::C::G):x = x + 1 = 4
新状态:A::C::G