1

据我了解,您可以在 UML 状态图中进行转换,例如:

  • 事件[守卫]/动作
  • 事件[]/动作
  • 事件

http://www.sparxsystems.com/resources/uml2_tutorial/uml2_statediagram.html

在 UML 中是否也可以/有效地仅使用 Guard 而没有 Event & Action 进行转换?

  • 无事件[守卫]/无动作

谢谢!

4

2 回答 2

4

当然,实际上根据 UML 2.5 元模型,转换与 0..* Event、0..1 Guard 和 0..1 Action 相关联。

所以 No Event, 1 Guard, No Action 是符合的

于 2018-01-10T14:05:24.780 回答
2

在 UML 中这是允许的,例如在 EA 中。所以状态图中的每个转换都可以有一组事件,可以为空,可以有或没有警卫,可以有或没有动作。

您需要小心使用这些工具,因为大多数工具都有一些偏差和限制,或者坚持使用旧的 UML 版本。因此,并非任何工具都允许 UML 定义的所有内容,而某些工具(尤其是 EA)则更为宽松。有时这取决于您想对模型和图表做什么。如果打算将动态图用于模拟,则规则大多要严格得多,并且不允许任何 UML 构造。在其大多数修订版中更符合 UML 标准的工具是 MagicDraw。

于 2018-01-10T14:49:20.843 回答