0

过渡可以有两个或更多动作吗?

例如:

       event[condition]/action1;action2
stateA -------------------------------------------> stateB
4

1 回答 1

1

是的。

来自维基百科

在 UML 中,状态转换可以直接连接任意两个状态。这两种状态可能是复合的,被指定为过渡的主要来源和主要目标。图 7 显示了一个简单的转换示例并解释了该转换中的状态角色。UML 规范规定进行状态转换涉及按以下顺序执行以下操作(请参阅 OMG 统一建模语言(OMG UML),基础设施版本 2.2 中的第 15.3.14 节):

  • 评估与转换关联的保护条件,并仅在保护评估为 TRUE 时执行以下步骤。
  • 退出源状态配置。
  • 执行与转换相关的操作。
  • 输入目标状态配置。

我一直无法在 UML 规范中找到简洁的措辞来定​​义这一点,但是维基百科文章(被广泛引用)上的图表和进一步的措辞似乎暗示您应该将;其用作分隔符,就像在您的示例中一样。

然而,直觉上我希望系统的状态在每个动作被执行后都会改变,所以(再次直觉地)我建议尽量减少每次转换使用多个动作。而是考虑添加中间状态。

于 2013-01-31T13:55:05.230 回答