首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UML多实例状态机可视化

UML多实例状态机可视化
EN

Stack Overflow用户
提问于 2016-10-05 15:32:57
回答 1查看 284关注 0票数 2

我想知道您是否可以帮助我澄清关于多实例状态机的两个方面。

第一个问题

考虑一个包含一个状态A的示例状态机https://developer.qcloudimg.com/http-save/yehe-900000/3671552ed6b178b6e3776a1cd0777549.png

在左边,创建状态机的一个新实例。转换停止终止实例。状态机SM1的多个实例可以并行运行,例如5个实例。

现在,我想要的是一个转换,它将终止在给定时间运行的所有状态机SM1实例。例如,我们创建了五个状态机A,然后转换stopALL将同时终止所有这些机器。

UML规范是否允许这样的行为?如果是,是否有明确表示这种行为的图形符号?我在UML规范文档中找不到答案。

第二个问题

考虑具有状态A和一个转换https://developer.qcloudimg.com/http-save/yehe-900000/960e64e2dce1f2105be05997a5a4edaf.png的多实例状态机startStop:

转换的行为如下:一旦触发,转换就会创建SM2的一个新实例,并终止现有的实例。

这种行为是否被规范所允许?是否有明确的图形方式来表达这样的行为?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-05 18:35:13

没有特殊的UML方法,但是标准的UML工具是绝对足够的。您需要广播终止信号(在状态机关系图上,您可以通过应该终止其他实例的转换上的行为来表示它)。然后,您只需要建模,在终止接收时,状态机将进入最终状态。

终止所有示例

请注意,斜杠(/)后的行为是在状态转换上调用的行为,即当状态机将状态更改为最终状态时,将调用行为sendStopAllSignal,这反过来应该在类图(可能有相应的活动图)上进行描述,类似地,您需要在类图中包含receiveStopAllSignal行为。

终止开始时存在的

这是类似的情况--您需要在其他地方同时建模sendStopSignal和receiveStopSignal。

但是,请注意,这种命名约定(sendAbcSignal用于发送/广播信号Abc的行为,receiveAbcSignal用于行为作为对Abc信号接收的反应)是相当常见的、有用的和不言自明的(也就是说,除非需要一些额外的逻辑,否则您可能不会为这些行为建模单独的动作图)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39878198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档