Uml 2.5活动图中令牌的用途

时间:2018-09-04 05:27:19

标签: uml activity-diagram

UML specs 2.5说:

  

一个ActivityNode对另一个ActivityNode的影响由   在活动节点之间的活动边缘上 令牌

但是上面的定义是模糊的;特别是因为令牌没有在活动中明确建模

阅读规范的15.2.3.3 Activity Edges部分后,我认为它们的目的是:

  

使图能够描述   它可能会等待其他令牌   或拒绝流   而不是立即进入下一个节点

是真的吗?也是令牌的唯一目的吗?如果是真的,为什么我们不使用带有条件的decision nodeend flow节点而不是tokenguard来显示在该条件下的拒绝流?还是将信息分组到更大的对象节点中,该节点携带所有必需的数据,而不是使用 weight

1 个答案:

答案 0 :(得分:2)

活动图和状态机均源自Petri nets。提供完整的说明会打击这个答案,所以我尝试将其归结为一个答案。

令牌可以说是一些信息。它是原子的,无法拆分。而是从上下文中定义的事件的“大爆炸”创建的(通常以大黑点显示)。它沿着InformationFlow连接器行进(最终被必须等待的守卫阻挡)到达节点。节点具有1到许多InformationFlow连接器。当节点的所有传入InformationFlow连接器都到达令牌时,该节点将变为活动状态。节点最终确定时,它将沿其所有传出的InformationFlow连接器发送单个令牌(至少UML操作会这样做,这称为隐式分叉)。有一些特殊的节点(例如fork和merge),它们的行为有所不同(请参见规格)。最终,令牌会掉入一个水槽(通常是一个内部带有胖点的圆圈),在那里它们会随其消失而消失。

因此,从一个起始节点出现的单个令牌(此处将不解释多个起始点的细节/问题),该令牌在网络中传播,最终创建了所有流通的令牌,直到(通常)所有令牌都流向了下沉。在此期间,网络被认为是活动的。

tl; dr 不,您的假设不正确。