Uml 2.5 活动图中令牌的用途



UML specs 2.5说:

一个 ActivityNode

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

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

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

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

是真的吗?这也是代币的唯一目的吗?如果这是真的,为什么我们不使用带有条件和end flow节点的decision node来显示该条件下的拒绝流,而不是tokenguards?或者将信息分组到更大的对象节点中,该节点携带所有必要的数据而不是使用权重

活动图和状态机都源自Petri网。给出一个完整的描述会打击这个答案,所以我试图把它归结起来。

可以说,令牌是一些信息。它是原子的,不能分裂。相反,它是从上下文中定义的事件(通常由大黑点显示(的"大爆炸"中创建的。它沿着InformationFlow连接器(最终被必须等待的警卫阻止(传播到节点。节点具有 1 到多个InformationFlow连接器。当节点的所有传入InformationFlow连接器上都有令牌到达时,节点将变为活动状态。当节点完成时,它会沿着其所有传出InformationFlow连接器发送单个令牌(至少 UML 操作这样做,这称为隐式分叉(。有一些特殊的节点,如 fork 和 merge,它们的行为有点不同(参见规范(。最后,代币可以落在水槽中(通常是一个里面有一个胖点的圆圈(,在那里它们在出现时就会消失。

因此,从起始节点出现的单个令牌(此处不打算解释多个起点的细节/问题(开始,该令牌在网络中传播,最终创建其他所有循环的令牌,直到(通常(所有令牌都进入接收器。在此期间,网络被称为活跃的。

tl;博士 不,你的假设是不正确的。

相关内容

最新更新