UML2活动图:对象流和控制流

时间:2012-12-18 16:19:06

标签: uml

我想通过UML2活动图模拟以下活动:

  1. 执行Action1。此操作生成两个输出参数:Object1 和Object2。
  2. 执行Action2。此操作需要Object2作为输入参数。它不要求将Object1作为输入参数。
  3. 执行Action3。此操作需要Object1和Object2(Action1的输出参数)作为输入参数。
  4. 请参见下图(只需忽略名称“LoopNode1”):

    UML2 Activity Diagram

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

    非常感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如UML 2.5.1所述...

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

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

说实话,我不确定如何解释以下句子以及它是否对我的论点有影响:

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