代码之家  ›  专栏  ›  技术社区  ›  tsp

Q: 如何在UML状态机转换中处理多个条件

  •  2
  • tsp  · 技术社区  · 6 年前

    如何在UML状态机转换(作为保护)中处理多个条件(使用不同的布尔表达式)?

    例子: enter image description here

    在本例中,我想在从“登录”到“登录”的转换中添加多个条件(尝试3),如注释中所述。

    如何处理这种UML兼容?

    2 回复  |  直到 6 年前
        1
  •  2
  •   qwerty_so    6 年前

    简单地说(并专注于所需的步骤)

    enter image description here

    Guard . 这可以是任何文本。你可以写C风格或纯文本。我不确定OCL在这里,但这是出于学术目的(我的意见)。

    N、 B.您的图表显示 Tries = 3 这应该是一个 警卫 此外(即。 [Tries = 3] )而不是 Name .

        2
  •  2
  •   Garth Gilmour    6 年前

    这里有几个选项:

    1. 您的保护条件可以在“[]”内组合多个检查-就像您在便笺中所做的那样。
    2. 在相同的两个状态之间可以有多个转换,每个状态都有自己的条件。
    3. 可以在状态中有状态。因此,在您的示例中,这三种状态可能在“正常操作”的超状态内,然后您可以在其他文档中或通过注释对其进行进一步定义。

    所有这些都是有效的UML语法。但是请注意,仅仅因为某些内容是有效的,并不意味着它将在编辑器中得到支持。例如,在序列图的大多数功能在编辑器中可用之前已经很多年了。。。