UML 状态图中只有守卫的状态转换
State transition with only a guard in UML state diagrams
据我了解,您可以在 UML 状态图中进行转换,例如:
- 事件[守护]/动作
- 事件[]/动作
- 事件
http://www.sparxsystems.com/resources/uml2_tutorial/uml2_statediagram.html
在 UML 中是否也 possible/valid 仅使用 Guard 进行转换而没有事件和操作?
- 无事件[守卫]/无行动
谢谢!
当然,事实上根据 UML 2.5 元模型,转换关联到 0..* Event、0..1 Guard 和 0..1 Action。
所以没有事件、1 名警卫、没有符合要求的行动
在 UML 中这是允许的,例如在 EA 中。所以状态图中的每个转换都可以有一组事件,可以为空,可以有守卫也可以没有,可以有动作也可以没有。
您需要小心使用这些工具,因为大多数工具都有一些偏差和限制,或者坚持使用旧的 UML 版本。因此,并非任何工具都允许 UML 定义的所有内容,而某些工具(尤其是 EA)要宽松得多。有时这取决于您要对模型和图表做什么。如果动态图用于模拟,则规则通常要严格得多,并且不允许任何 UML 构造。在其大部分修订中更符合 UML 标准的工具是 MagicDraw。
据我了解,您可以在 UML 状态图中进行转换,例如:
- 事件[守护]/动作
- 事件[]/动作
- 事件
http://www.sparxsystems.com/resources/uml2_tutorial/uml2_statediagram.html
在 UML 中是否也 possible/valid 仅使用 Guard 进行转换而没有事件和操作?
- 无事件[守卫]/无行动
谢谢!
当然,事实上根据 UML 2.5 元模型,转换关联到 0..* Event、0..1 Guard 和 0..1 Action。
所以没有事件、1 名警卫、没有符合要求的行动
在 UML 中这是允许的,例如在 EA 中。所以状态图中的每个转换都可以有一组事件,可以为空,可以有守卫也可以没有,可以有动作也可以没有。
您需要小心使用这些工具,因为大多数工具都有一些偏差和限制,或者坚持使用旧的 UML 版本。因此,并非任何工具都允许 UML 定义的所有内容,而某些工具(尤其是 EA)要宽松得多。有时这取决于您要对模型和图表做什么。如果动态图用于模拟,则规则通常要严格得多,并且不允许任何 UML 构造。在其大部分修订中更符合 UML 标准的工具是 MagicDraw。