【问题标题】:SysML/UML Simulating a nested State Machine Diagram in an Activity DiagramSysML/UML 在活动图中模拟嵌套状态机图
【发布时间】:2020-10-19 12:49:27
【问题描述】:

我对 SysML 和 UML 以及这些图表的模拟仍然是新手。我正在使用 Cameo Systems Modeler 19.0。

上下文:我的问题涉及嵌套状态机图的活动图的连续模拟。在活动图中,我有一个调用状态机图的调用行为操作。在这个呼叫行为动作之后,还有其他动作要执行。当我模拟活动图时,模拟切换到调用的状态机图没有任何问题。此状态机图的仿真也完全正常。

现在我的问题是:当我通过选择状态、路径及其触发器来完成状态机图的模拟以到达最终状态节点时,它会终止状态机图的模拟(如预期的那样)。 但模拟不会在育儿活动图中继续执行。

我做错了吗?你不应该能够模拟像这样嵌套的这些图表吗?我是否期待 Cameo Systems Modeler 的某些功能,而该程​​序无法做到?

感谢您的帮助!如果我的描述不够充分,我很乐意提供一个 .mdzip 作为最小示例!

【问题讨论】:

    标签: uml simulation state-machine activity-diagram sysml


    【解决方案1】:

    在 UML 和 SysML 状态机中,达到终止伪状态意味着状态机定义的行为终止的范围(当它位于状态机图中的顶部范围时)。这在不同的工具中得到不同的处理。一些工具(默认或始终)使用状态机作为模拟的主控器,当最顶层的状态机进入终止伪状态时,模拟将停止,即使它是由活动触发的。

    状态机还有另一种结束伪状态,称为退出点。退出点触发离开当前范围。而且由于您不想停止模拟,因此您可以使用它。出口点由一个带十字的空心圆圈表示。

    思考:很多工具都偏离了 UML 和 SysML 中定义的内容,尤其是在模拟动态行为时。因此,Cameo 中可能有一些特殊的选项可能需要一些考虑。某些工具的一种解决方案是您创建一个主状态机,它会触发您的主活动。

    【讨论】:

    • “达到终止伪状态意味着整个系统被终止”:不,只有封闭状态/区域,在当前情况下,状态机似乎完成了调用 调用行为动作并且只有它,所以如果它之后有边缘,活动可以继续
    • 好的,谢谢您的回答!问题是,如果我用退出点替换最终状态,模型将不会模拟,因为退出点显然不受支持:错误消息是:错误:执行中不支持退出点伪状态。在 Cameo 中是否可以通过其他方式获得我想要的结果?
    • @e_frog 终止点是正确的选择。您确定所有状态机都已结束吗?您是否有子/机器/状态/区域等,并且至少有一个没有结束解释?否则这是您工具的错误/限制
    • @bruno 我将其报告为问题。如果有什么事情发生并且我记得这篇文章,我一定会就此事进行更新!到目前为止谢谢!
    • @bruno 它确实是一个错误。我发布了一个问题,支持团队发现了它。
    【解决方案2】:

    这绝对是一个错误。我发布了一个问题,支持团队发现了它。

    更新:已修复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多