状态图表和多个操作

时间:2013-01-31 13:34:37

标签: statechart

转换可以有两个或更多动作吗?

例如:

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

1 个答案:

答案 0 :(得分:1)

来自Wikipedia

  

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

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

我一直无法在UML规范中找到用于定义此内容的succint措辞,但是维基百科文章(引用良好)的图表和进一步措辞似乎暗示您应该使用;作为分隔符,如你的例子。

然而,直观地说,我希望系统的状态在每次操作后都会发生变化,因此(再次直观地)我建议最小化每次转换使用多个操作。而是考虑添加中间状态。