UML行为状态图:正交状态的入口和出口点所有权含义

UML行为状态图:正交状态的入口和出口点所有权含义,uml,entry-point,specifications,orthogonal,state-diagram,Uml,Entry Point,Specifications,Orthogonal,State Diagram,在UML中(让我们看看规范2.4.1),当考虑正交组合状态时,入口点和出口点要么属于(封闭的)组合状态,要么属于入口/出口点所在的区域。那是哪一个呢 我无法在规范中明确找到这一点,但这是规范对主题的说明(摘自上层建筑规范第15.3.8段):“入口点伪状态是状态机或复合状态的入口点。在状态机或复合状态的每个区域中,它最多有一个到同一区域内顶点的转换。” 由此,我推断入口点属于它们所应用的区域。如果是这样,我如何为封闭状态建模进入/退出操作?我是否必须在我使用的每个入口点上重复“全州范围的进入操作”

在UML中(让我们看看规范2.4.1),当考虑正交组合状态时,入口点和出口点要么属于(封闭的)组合状态,要么属于入口/出口点所在的区域。那是哪一个呢

我无法在规范中明确找到这一点,但这是规范对主题的说明(摘自上层建筑规范第15.3.8段):“入口点伪状态是状态机或复合状态的入口点。在状态机或复合状态的每个区域中,它最多有一个到同一区域内顶点的转换。”


由此,我推断入口点属于它们所应用的区域。如果是这样,我如何为封闭状态建模进入/退出操作?我是否必须在我使用的每个入口点上重复“全州范围的进入操作”?这在使用多个区域时似乎既繁琐又冗余。或者我必须创建一个有自己入口的“更大”状态/出口点(或“入口/…”和“出口/…”行),它又包围了包含区域的复合状态?这似乎相当复杂。有人能用一个直观的例子为我澄清一下吗?

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

根据第15.3.11条:

复合状态包含一个区域或分解为两个区域 一个或多个正交区域。每个区域都有一组相互关联的 排他不相交的子结构和一组转换。给定的状态 只能以这两种方式之一进行分解


另一方面,如果您只需要进入/退出伪状态,则可以避免这种额外的复杂性在第15.3.11条中,

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

根据第15.3.11条:

复合状态包含一个区域或分解为两个区域 一个或多个正交区域。每个区域都有一组相互关联的 排他不相交的子结构和一组转换。给定的状态 只能以这两种方式之一进行分解


另一方面,如果您只需要进入/退出伪状态,则可以避免这种额外的复杂性在第15.3.11条中。

感谢您花时间回答。我还看到了图15.35,它让我走上了正确的轨道,我只是不确定。这源于第15.3.11条中的另一句话,它说:“向封闭状态的过渡代表每个区域向初始伪状态的过渡。“这让我感到困惑,因为这似乎意味着无论何时进入封闭状态,都直接进入子状态的所有区域。我一直在寻找一种在两者之间建模行为的方法:在进入封闭状态之后,但在进入任何区域之前。还是不能完全确定:)谢谢你花时间回答。我还看到了图15.35,它让我走上了正确的轨道,我只是不确定。这源于15.3.11中的另一句话:“到封闭状态的转换代表每个区域到初始伪状态的转换。”这让我感到困惑,因为这似乎意味着,无论何时进入封闭状态,都直接进入子状态的所有区域。我一直在寻找一种在两者之间建模行为的方法:在进入封闭状态之后,但在进入任何区域之前。仍然不能完全确定:)