1

在 UML(让我们采用规范 2.4.1)中,当考虑正交复合状态时,入口点和出口点属于(封闭)复合状态或入口/出口点所在的区域。那么它是什么?

我无法在规范中明确找到这一点,但这就是规范中关于主题的内容(取自上层结构规范的第 15.3.8 段):“入口点伪状态是状态机或复合状态的入口点。在状态机的每个区域或复合状态最多只有一个转换到同一区域内的顶点。”

由此我推断入口点属于它们所应用的区域。如果是这样,我如何为封闭状态建模进入/退出动作?我是否必须在我使用的每个入口点上重复“全州范围的入口操作”?在使用许多区域时,这似乎很麻烦且多余。或者我是否必须创建一个“更大”的状态,它有自己的进入/退出点(或“进入/...”和“退出/...”行),它又包含包含区域的复合状态? 这似乎相当复杂。有人可以通过视觉示例为我澄清这一点吗?

4

1 回答 1

1

如果你想对进入正交区域之前执行的动作进行建模,是的:你需要创建一个封闭状态(参见 2.4.1 上层结构中的图 15.35“带区域的正交状态”)。

从第 15.3.11 条开始:

复合状态要么包含一个区域,要么分解为两个或多个正交区域。每个区域都有一组互斥的不相交的子顶点和一组转换。一个给定的状态只能以这两种方式之一进行分解。

另一方面,如果您只需要进入/退出伪状态,则可以避免这种额外的复杂性。请参阅第 15.3.11 节中关于复合状态、其描述语义变化点(默认输入规则)的段落。

于 2013-12-18T04:57:50.467 回答