3

我想知道我是否正确理解了 ShallowHistory 语法。

这是正确的使用方法吗?

在此处输入图像描述

在 UML 规范中。据说它可以用来代替初始的伪状态。我猜在这种情况下,将无法重置 State1 的内存,而在这种情况下,从 State0 的转换总是从 State1.1 开始。我对吗?

4

1 回答 1

1

你的解释似乎是正确的。从上层建筑:

进入复合状态后,区分以下几种情况:

• 默认条目:在图形上,这由在复合状态的外边缘终止的传入转换指示。在这种情况下,将应用默认输入规则(请参阅语义变化点(默认输入规则))。

语义变化点(默认输入规则)

如果转换终止于封闭状态并且封闭区域没有初始伪状态,则对这种情况的解释是语义变化点。在某些解释中,这被认为是一个格式错误的模型。也就是说,在这些情况下,初始伪状态是强制性的。另一种解释允许这种情况,这意味着,当进行这种转换时,状态机保持在复合状态,而不进入任何区域或其子状态。

最后:

浅历史条目:如果转换在浅历史伪状态上终止,则活动子状态将成为此条目之前的最近活动子状态,除非最近活动子状态是最终状态,或者这是进入此状态的第一个条目。在后两种情况下,进入默认的历史状态。这是源自历史伪状态的转换目标的子状态。(如果没有指定这样的转换,则情况定义不明确,并且未定义其处理。)如果由历史确定的活动子状态是复合状态,则它继续使用其默认条目。

请注意,从最后一段来看,您似乎应该始终从H伪状态转换,至少到initial伪状态指向的相同状态,否则您可能有一个定义不明确的机器。

我没有找到它说你可以使用 H* 而不是初始伪状态的地方。你在哪里看到这个?

于 2013-02-05T14:17:32.467 回答