加入并合并活动图

时间:2018-01-07 10:34:49

标签: uml activity-diagram

统一建模语言活动图中的Join和Merge有什么区别。举个例子来更清楚地理解。

2 个答案:

答案 0 :(得分:7)

加入节点(请参阅reference 1):

  

Join节点是一个控制节点,具有多个传入边和一个   传出边缘,用于同步传入的并发流。   引入加入节点支持活动中的并行性

合并节点(请参阅reference 2):

  

合并节点是一个将多个传入汇集在一起​​的控制节点   备用流以接受单个传出流。没有加入   令牌。合并不应用于同步并发流


例如,如下图所示:

在分叉后使用决策,决定之后的两个流程需要在进入连接之前合并为一个

为什么?:否则,联接将等待两个流程。

所以Activity 2Activity 3是我们的备用流程,只有其中一个会到达。并且他们同步传入。

但是Concurrent_ActivityActivity 1Activity 2之间的决策结果(合并到一个输出中)是同步传入的并发流。加入等待执行并继续。

enter image description here

答案 1 :(得分:3)

详细说明@ Gholamali-Irani的回答:活动图来自Petri nets。简而言之,你必须想象一个从一个初始起始点(胖点)开始的“令牌”。令牌沿着路径行进,直到它在其中一个(圆圈点)终端中消失(或者UML允许在没有外出路径的动作中)。 fork节点会将该单个令牌乘以与其具有传出路径一样多的令牌(UML也有一个隐式派对,用于具有多个未受保护的传出路径的操作)。因此,这些多个令牌独立行进,直到它们如上所述消失或者它们到达具有多个进入路径的连接(或动作)。这里令牌等待直到所有路径都被一个令牌馈送。然后将这些多个令牌合并为一个像往常一样的单个令牌。

使用此规则集,您可以为任何复杂的并发网络建模。