在UML状态图中具有多个事件的一个转换

Mac*_*akM 3 diagram uml transitions state-diagram

我们在学校学习行为状态图的转换具有语法:

事件列表[保护条件] /动作列表

但我在Internet上找不到任何使用多个事件转换的例子.真的有可能吗?如果是,它的表现如何?是否意味着当其中一个事件发生时(当然条件得到满足)实现了交易?

Jim*_* L. 5

是的,转换可以由列表中的许多事件之一触发.您可以使用这样的构造来避免状态之间的多条线,从而形成更整洁的图表.

这是2.5规范说的:

14.2.3.9.2启用转换

当且仅当以下情况时启用转换:

  • [...]

  • 至少有一个Transition的触发器具有一个Event,它与被调度的Event事件的Event类型相匹配.

这些逻辑OR'ed转换在文本上指定为转换上的逗号分隔列表,如第14.2.4.9节中所述:

[<trigger> [‘,’ <trigger>]* [‘[‘ <guard>’]’] [‘/’ <behavior-expression>]]
Run Code Online (Sandbox Code Playgroud)