首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UML:活动图控制流程

UML:活动图控制流程
EN

Stack Overflow用户
提问于 2015-12-12 08:21:50
回答 3查看 674关注 0票数 3

我在互联网上发现了以下活动图表:

我不明白为什么从接收订单行动有两个控制流(到发货订单和票据客户)。它们是平行的吗?那为什么没有叉子。如何理解这张图表?请解释一下。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-12 19:02:21

它是完全有效的UML 2。第一个操作不需要标记,所以它可以立即启动。当第一个操作完成时,它为另外两个操作提供令牌,并且它们可以启动。在提供所有所需的令牌之前,最后一个操作不能开始。当完成最后一个操作时,包含的活动也会被完成。

叉子只复制代币。加入--只合并令牌。因此,分叉和连接往往是不必要的。

请看康拉德·博克在“对象技术杂志”上发表的关于活动图的优秀系列文章

票数 0
EN

Stack Overflow用户

发布于 2015-12-12 08:48:28

这只是一个坏的例子。

从上下文来看,应该有一个叉表示Ship orderBill customer应该并行进行。

然后,在Send confirmation之前应该有一个联接,以指示这两个流应该在执行Send confirmation之前已经完成。

票数 1
EN

Stack Overflow用户

发布于 2020-03-12 10:09:49

我没有检查这是否是最近对UML规范的修订,但是当前的2.5版 (第15.2.3.2章)声明(重点放在我自己上):

由于ActivityNode可能是多个ActivityEdges的源,所以可以向多个目标提供相同的令牌。但是,同一令牌一次只能在一个目标上被接受(除非被复制,否则它不是相同的令牌,请参见第15.3款中的ForkNodes和第15.5款中的ExecutableNodes )。如果一个令牌同时提供给多个ActivityNodes,那么最多只能被其中一个接受,但是活动流语义并不能完全决定哪一个令牌。这意味着不确定发生的活动模型可能会受到时间问题和种族条件的影响。建模者有责任在构造活动模型时避免这样的条件,如果不想要的话。

从这个角度来看,我认为@Jim L.的答案可能会被否决。我认为,至少在目前的UML版本中,所讨论的图表并没有反映建模者的意图。现在,叉子似乎不仅是干净的方式,而且是唯一正确的方法。

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

https://stackoverflow.com/questions/34237794

复制
相关文章

相似问题

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