【问题标题】:Can there be more than one active state in a UML state machineUML 状态机中是否可以有多个活动状态
【发布时间】:2016-07-26 10:51:29
【问题描述】:

我了解在复合状态下可以有多个正交区域同时并行运行。 UML 状态机中的任何时候都可以有多个活动状态吗?

【问题讨论】:

    标签: state-machine


    【解决方案1】:

    是的,只要完成运行至完成步骤,就可以有多个活动状态。实际上可以有一整棵活动状态树:

    正如您所提到的,在复合状态的正交区域中可以存在活动状态。复合状态也可以递归嵌套。这意味着如果嵌套状态处于活动状态,则其所有祖先也处于活动状态。因此,正交区域和嵌套复合状态的组合可以导致一整棵活动状态树。

    UML 上层结构规范,v2.4.1 是这样解释的(第 15.3.11 章状态中的第 564 页):

    活动状态配置

    在分层状态机中超过 一种状态可以同时处于活动状态。如果状态机在 包含在复合状态中的简单状态,那么所有 复合状态直接或传递地包含 简单的状态也是活跃的。此外,由于状态机为 这个层次结构中的一个整体和一些复合状态可能是 正交(即包含区域),当前活动的“状态”是 实际上由一组状态树表示 根区域的最顶层状态到最里面的活动状态 子状态。我们将这样的状态树称为状态配置。

    如果你很挑剔,可能会有例外:

    如果状态机终止,当然根本没有活动状态,因此此时不能有多个活动状态。

    注意

    UML 上层结构规范 v2.4.1 是文档,用于检查您是否有此类问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 2019-03-09
      • 2020-08-16
      • 1970-01-01
      相关资源
      最近更新 更多