TL; DR:我应该如何在UML对象图中表示UML转换(参见下一行)?
event(event_parameters)[guard_condition] / doStuff()
在我的BSc论文项目中,我正在使用UML StateMachines(行为,没有协议SM)。除了State Machine Diagram表示,我还需要Object Diagrams。
然而,到目前为止,我还没有设法准确地表示过渡。我希望能够显示具有触发器(事件),保护(约束)和/或行为的转换。
我搜索了相关的问题(this one接近,但没有提供我正在寻找的确切信息),以及阅读UML超结构的相关部分,但仍然不能非常清楚。
到目前为止,我已经根据下面状态机图中显示的状态S1(以及所有转换)创建了一个对象图。我应该注意到我只添加了事件,因为警卫和行为给了我类似的问题(并且会使图表混乱)。
包含状态S1的状态机图
(不正确)S1的对象图,包括所有转换(我假设至少SignalEvent实例(有些)不正确。)
答案 0 :(得分:1)
状态机显示系统如何对刺激作出反应,而对象图表示系统在某个时间点的特定状态。由于对象图是静态的,因此您无法在其中表示状态机转换。你可以做的是创建两个对象图,并告诉第二个图是将指定的状态转换应用于第一个图的结果。但我认为没有正式的方法可以做到这一点。
答案 1 :(得分:1)
UML2元模型非常复杂。如果你想让它符合UML2,我建议如下:使用一个带有org.eclipse.uml元模型的工具,它能够绘制状态图。一个开源的将是Topcased。可以找到完整列表here(但并非所有列表都支持状态图)。
绘制图表后,将其另存为.uml文件。该文件包含XMI,非常易读。如果使用EMF查看器(安装在Topcased中)打开它会更容易,只需使用“打开方式”。)
如果您不关心UML2合规性并且只想要与上图相似的内容,则此解决方案将导致更复杂的对象图表。
答案 2 :(得分:0)
当前的UML规范(请参阅https://www.omg.org/spec/UML/)具有答案。它具有一个描述状态机抽象语法的图。结合触发器的抽象语法,该规范提供了足够的信息来创建对象图。