我想通过UML2活动图模拟以下活动:
请参见下图(只需忽略名称“LoopNode1”):
我认为我还没有完全理解UML2中令牌,对象流和控制流的概念。如何在Action3之前明确表示Action2已执行?恕我直言,在图中显示,执行的动作顺序不明确,是吗?我想完全按照上面描述的那样实现活动,没有任何并行性!
非常感谢您的帮助!
答案 0 :(得分:1)
您可以使用synchronization bar (join)
来表示依赖关系(请参阅here)。或者,您可以使用序列图而不是活动图 - 在那里自然定义顺序。
答案 1 :(得分:0)
如UML 2.5.1所述...
对象节点保存输入到可执行节点和从可执行节点输出的数据,并跨对象流边缘移动。控制节点通过控制流边缘指定可执行节点的顺序
...我认为您很清楚,您的Action2是在Action3之前执行的,因为包含Action2的分支是唯一指定任何排序/ ControlFlow(ActivityEdge)元素的分支。
说实话,我不确定如何解释以下句子以及它是否对我的论点有影响:
活动本质上是通常所谓的“控制和数据流”模型。这样的计算模型在本质上是并发的,因为活动节点执行的任何排序都由活动边缘显式建模,并且对于未显式排序的任何计算都无需强制排序。