【问题标题】:UML2 Activity Diagram: Object Flow and Control FlowUML2 活动图:对象流和控制流
【发布时间】:2012-12-05 21:44:53
【问题描述】:

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

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

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

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

非常感谢您的帮助!

【问题讨论】:

    标签: uml activity-diagram


    【解决方案1】:

    正如 UML 2.5.1 所述...

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 用同步条/加入,对象流丢失。所以你的答案意味着表达both对象流顺序的唯一方法是使用序列图?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 2012-10-18
      相关资源
      最近更新 更多