首页 > 解决方案 > UML活动图如何实例化动作

问题描述

让我们考虑一个非常简单的情况,当第二个输入令牌(例如对象令牌)到达时,动作仍在运行。当然,我们假设没有分配流属性。我的问题是,在这种情况下,第二个令牌会等到当前正在运行的动作完成,还是会创建一个新的动作瞬间,从而运行两个动作瞬间?(我在 OMG 规范中读过一些东西,这似乎是第二种情况,但是还有一些其他书籍将执行描述为第一种,所以我对此感到困惑。)

标签: umlactionactivity-diagram

解决方案


在控制令牌的情况下,情况是明确定义的。当操作被激活时,所有提供的令牌都被接受。因此,当它运行时,默认情况下它不接受任何进一步的控制令牌。但是有一个名为 isLocallyReentrant 的属性,如果这是真的,那么动作是并发运行的。

在对象标记的情况下,UML 语义不太具体,并保持许多明确的点开放。SysML 在此处添加了一些重要的细节。在 UML 中有一个引脚和对象节点的 isControlType 属性,如果设置为 true,则表示与控制标记相同的行为。否则,标准中有一些陈述可以解释为好像行为是可以直观预期的,即第二个反对令牌是在之后处理的。


推荐阅读