UML specs 2.5
说:
对另一个 ActivityNode 的影响由 活动节点之间的活动边缘上的令牌。
但上面的定义是模糊的;特别是因为令牌没有在活动中显式建模。
在阅读了规范15.2.3.3 Activity Edges
部分后,我认为它们的目的是:
能够描述图表 它可能会等待其他令牌 或垃圾流 而不是立即进入下一个节点
是真的吗?这也是代币的唯一目的吗?如果这是真的,为什么我们不使用带有条件和end flow
节点的decision node
来显示该条件下的拒绝流,而不是token
和guard
s?或者将信息分组到更大的对象节点中,该节点携带所有必要的数据而不是使用权重?
活动图和状态机都源自Petri网。给出一个完整的描述会打击这个答案,所以我试图把它归结起来。
可以说,令牌是一些信息。它是原子的,不能分裂。相反,它是从上下文中定义的事件(通常由大黑点显示(的"大爆炸"中创建的。它沿着InformationFlow
连接器(最终被必须等待的警卫阻止(传播到节点。节点具有 1 到多个InformationFlow
连接器。当节点的所有传入InformationFlow
连接器上都有令牌到达时,节点将变为活动状态。当节点完成时,它会沿着其所有传出InformationFlow
连接器发送单个令牌(至少 UML 操作这样做,这称为隐式分叉(。有一些特殊的节点,如 fork 和 merge,它们的行为有点不同(参见规范(。最后,代币可以落在水槽中(通常是一个里面有一个胖点的圆圈(,在那里它们在出现时就会消失。
因此,从起始节点出现的单个令牌(此处不打算解释多个起点的细节/问题(开始,该令牌在网络中传播,最终创建其他所有循环的令牌,直到(通常(所有令牌都进入接收器。在此期间,网络被称为活跃的。
tl;博士 不,你的假设是不正确的。