【问题标题】:How to merge decision/fork nodes in UML如何在 UML 中合并决策/分叉节点
【发布时间】:2011-04-18 16:54:02
【问题描述】:

我有以下用于购物车用例的 UML 活动图。它有几个决策和分叉节点,但没有相应的加入/合并节点。请给我看看:

  • 如何通过引入合并/连接节点来更正图表。
  • 如何修改图表以便客户可以重复该过程(将更多产品添加到购物车)。

谢谢。

【问题讨论】:

    标签: uml activity-diagram


    【解决方案1】:

    您应该研究令牌概念。它在Petri网中被引入,也被用于UML活动图中。

    决策节点只产生一个标记,即它们只遵循一个传出路径。要合并这样的路径,其中只有被遵循,您可以使用 合并节点。它看起来就像一个反向决策节点,并且能够只消耗一个令牌。具有多个传入边缘的钻石。

    如果您使用并行化节点来启动并发执行路径,您将有多个令牌离开并行化节点。要合并这些路径,您可以使用同步节点,它看起来像一个反向并行化节点,并且每个传入边必须消耗一个令牌。

                              
    (来源:amg at www.lcc.uma.es

    【讨论】:

      【解决方案2】:

      您在任何地方都有初始活动元素吗?使它更容易阅读。对于您的问题,应该使用合并,而不是让多个连接器进入同一活动。例如,“Acknowledge Msg”上面应该有一个合并,其他分支可以流入。

      至于如何使其可重复,您可能需要一个“添加到购物车”操作,并且在“结帐”操作之前,有一个带有“购物完成”(进入结帐操作)的警卫的决策和“继续购物”(返回到“输入产品编号”)。

      【讨论】:

      • “确认消息”上方是合并(条形)还是连接(菱形)?来自 ErrMsg 1 和 ErrMsg 2 的流是交替的,而不是并行的。合并将在进行之前等待两者 - 这永远不会发生。不过,自从我查看活动图语义以来已经有一段时间了,所以你可能是对的......
      • 道歉 - 我的术语弄错了。钻石被称为合并节点,所以你是正确的。
      猜你喜欢
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-29
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      相关资源
      最近更新 更多