【问题标题】:Difference between alt and opt fragment in sequence diagram?序列图中alt和opt片段的区别?
【发布时间】:2014-03-23 06:09:20
【问题描述】:

我想详细了解一下序列图中alt和opt片段的区别,它们看起来很相似,我无法区分它们。有人知道这件事吗?

【问题讨论】:

标签: uml sequence-diagram


【解决方案1】:

alt 用于描述工作流的替代方案。只会执行其中一个选项。

opt 用于描述工作流程中的可选步骤。

例如,对于在线商店购买序列图,您可以使用opt 来描述用户如何根据需要添加礼品包装。 alt 可用于描述两种付款方式:使用信用卡或电汇。

UML specification 中的含义在第 17.12.15 节中描述。 optalt 是两种不同的运算符类型,以下是规范对它们的描述:

alt:

InteractionOperatorKind alt 指定 CombinedFragment 代表一种行为选择。在 将选择大多数操作数。所选操作数必须具有显式或隐式保护 在交互中此时计算为 true 的表达式。如果操作数隐含一个隐含的真守卫 没有警卫。

opt:

InteractionOperatorKind 选项指定 CombinedFragment 代表一种行为选择,其中 (唯一的)操作数发生或什么也没有发生。一个选项在语义上等同于一个备选方案 CombinedFragment,其中一个操作数为非空内容,第二个操作数为空。

【讨论】:

  • 这是正确答案。我想强调(因为这里有其他答案说不同) opt 只有一个操作数,所以要么发生什么事,要么什么也不发生,而 alt 定义了多种替代行为。来自 UML 规范:“interactionOperator alt 指定 CombinedFragment 代表一种行为选择。最多选择一个操作数。”与“interactionOperator opt 指定 CombinedFragment 表示选择(唯一)操作数发生或不发生任何行为的行为。” -- 注意鞋底
  • 在两个投票最多的回复之间,缺少一些东西。根据您的说法, opt 是“可选的”,而另一个只是“如果”。 “可选”这个词具有意义,就像做出选择一样。用户可以做出选择,程序不能,但它可以做一些类似的事情,比如根据参数做某事。但是程序也可以做一些看起来一点也不像选择的事情,比如在出错的情况下打印一条消息(其他一切都一样)。请有人澄清这是一个“如果”,仅此而已,或者它是否具有意义。
  • 序列图描述了一组交互序列。图表中的opt 片段意味着图表描述了两种可能的交互序列——一个具有opt 片段中的交互,另一个没有此交互。描述的条件可能从某些确定性计算 (2+2==4) 到用户选择 (red pill selected) 到随机事件 (atom decays)。意图是什么取决于图表作者。
【解决方案2】:

Alt 是替代流程(SWITCH 或 if. IF 有两个路径) Opt 是 IF 有一个流程。如果你使用Opt,代码将被执行或不执行!

【讨论】:

    【解决方案3】:

    alt - if else
    opr - 单一条件

    【讨论】:

      【解决方案4】:

      Alt(替代)确实类似于“if”,但两者都不仅限于2个选项,两者实际上都可以根据需要有许多“else”,许多选项。例如: //if (a=b) then a++; else if (a>b) then a--;否则 b++。在任何情况下,如果 Alt 是正在调用的代码的一部分,则 Alt 将执行。

      而 Opt(可选)不一定会被执行,即使它包含在正在调用的序列或代码的中间。通常,要执行 Opt 序列,需要用户进行外部交互,该用户正在做出提供许多选项的决定(例如选择在线支付方式)。在这种特殊情况下,与 Alt 序列相反,如果支付方式是“信用卡”、“pay pal”或“预付”,则代码将有 3 个 Opt 序列——每个序列只有一个流——但只有一个其中一个 Opt 序列将实际执行。

      希望这会有所帮助!

      最好, 标清

      【讨论】:

        【解决方案5】:

        它们基本相同。

        alt 更多用于多种选择,例如 C 编程语言中的 switch 句组。而opt 更多地只用于两个选项,例如if 句子。

        但是,如果您看到这两个概念可以互换使用,请不要感到惊讶。

        【讨论】:

        • 哇,谢谢,我从没想过,这有点帮助,但我必须在真实案例中看到它:D
        • 这不是真的! ALT 表示替代,而 OPT 表示可选(请参阅@Roman Konoval 答案)...
        • 投反对票,因为这确实不是真的, opt 表示可以执行或不执行的唯一替代方案, alt 表示将执行的多个替代方案。请参阅我对第一个答案的评论,引用了 UML 规范。
        【解决方案6】:

        Alt alternative alt one 可以认为它与 if .... else 它是条件处理的相同。 可选 opt 它是可能发生或不发生的行为(视情况而定)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-22
          • 1970-01-01
          • 2020-10-13
          • 2014-03-31
          • 1970-01-01
          • 1970-01-01
          • 2014-09-11
          • 1970-01-01
          相关资源
          最近更新 更多