【问题标题】:How to represent an if condition1 else if contion2 on a sequence diagram?如何在序列图上表示 if condition1 else if contion2?
【发布时间】:2016-07-02 20:58:01
【问题描述】:

我想知道,如何在序列图中表示“if cond1 else if cond2”语句?

    if (condition1) {
      // Do something
    } else if(condition2)
    {
      // Do something else if
    }

我不确定是否有两个独立的“Opt”子句

如果可能,请创建解决方案的图像表示。

【问题讨论】:

  • 我知道这根本不是有用的评论,但我必须建议不要在序列图中使用比简单的 if/else 更复杂的事情。就个人而言,我什至不会使用 if/else — 只需制作 2 个图表。

标签: conditional-statements uml sequence-diagram


【解决方案1】:

在序列图中,您可以使用带有alt 运算符的组合片段。这允许您显示替代行为:

  • 从图形上看,替代品位于由水平虚线分隔的平铺区域中。
  • 您可以在警卫中记录每个备选方案的准确条件(即[condition])。

示例:

补充阅读:

【讨论】:

  • 感谢您的回复。我考虑过一个 alt 运算符,问题是“Alt”是字面的“If else”,而这种情况不是。所以我认为它一定是一个更好的选择。
  • @MauricioPastorini alt 用于在多个选项之间进行选择,而不仅仅是 if else。如果所有其他替代方案都不合适,则执行 [else] 守卫。因此,在您的情况下,您将拥有 3 条车道(由 2 条虚线分隔)。第一个会有一个守卫[condition1],第二个有一个守卫[condition2],第三个有一个[else]。
  • 只是为了完成前面的评论,alt 不一定必须有一个将被执行的选项(即所有警卫都可能解​​析为 false,这绝对没问题)。带有 [else] 保护的部分是可选的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 2011-10-07
相关资源
最近更新 更多