3

我想通过 UML2 活动图对以下活动进行建模:

  1. 执行动作 1。此操作产生两个输出参数:Object1 和 Object2。
  2. 执行动作 2。此操作需要 Object2 作为输入参数。它不需要 Object1 作为输入参数。
  3. 执行动作 3。此操作需要 Object1 和 Object2(Action1 的输出参数)作为输入参数。

见下图(忽略名称“LoopNode1”):

UML2 活动图

我想我还没有完全理解 UML2 中的标记、对象流和控制流的概念。如何明确 Action2 在 Action3 之前执行?恕我直言,在显示的图表中,执行操作的顺序不清楚,是吗?我想完全按照上面描述的方式实现活动,没有任何并行性!

非常感谢您的帮助!

4

2 回答 2

1

您可以使用synchronization bar (join)来指示依赖关系(请参见此处)。或者,您可以使用序列图而不是活动图 - 在那里自然地定义了顺序。

于 2012-12-18T16:32:23.933 回答
0

正如 UML 2.5.1 所述...

对象节点保存从可执行节点输入和输出的数据,并在对象流边缘移动。控制节点通过控制流边缘指定可执行节点的顺序

...我认为很明显,您的 Action2 在 Action3 之前执行,因为包含 Action2 的分支是唯一指定任何排序/控制流(ActivityEdge)元素的分支。

老实说,我不太确定如何解释以下句子,以及它是否对我的争论有一些影响:

活动本质上就是通常所说的“控制和数据流”模型。这样的计算模型本质上是并发的,因为任何活动节点执行的排序都是由活动边显式建模的,并且对于没有显式排序的任何计算都不需要排序。

于 2020-08-03T16:11:00.167 回答