转换可以有两个或更多动作吗?
例如:
event[condition]/action1;action2
stateA -------------------------------------------> stateB
答案 0 :(得分:1)
是
来自Wikipedia:
在UML中,状态转换可以直接连接任何两个状态。这两个可能是复合的状态被指定为过渡的主要来源和主要目标。图7显示了一个简单的转换示例,并解释了该转换中的状态角色。 UML规范规定进行状态转换涉及按以下顺序执行以下操作(参见OMG统一建模语言(OMG UML),基础结构版本2.2中的第15.3.14节):
- 评估与转换相关联的保护条件,并仅在保护评估为TRUE时执行以下步骤。
- 退出源状态配置。
- 执行与转换相关联的操作。
- 输入目标状态配置。
我一直无法在UML规范中找到用于定义此内容的succint措辞,但是维基百科文章(引用良好)的图表和进一步措辞似乎暗示您应该使用;
作为分隔符,如你的例子。
然而,直观地说,我希望系统的状态在每次操作后都会发生变化,因此(再次直观地)我建议最小化每次转换使用多个操作。而是考虑添加中间状态。