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

时间:2017-11-21 12:01:04

标签: c uml enterprise-architect state-machine

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

实施例: enter image description here

在这个例子中,我想在"登录"的过渡中添加多个条件(Tries< 3)。到"登录"如说明中所述。

如何处理这种符合UML的标准?

2 个答案:

答案 0 :(得分:1)

这里有几个选项:

  1. 您的保护条件可以在' []'中结合多项检查。 - 就像你在笔记中所做的一样。
  2. 您可以在相同的两个状态之间进行多次转换,每种状态都有自己的条件。
  3. 您可以在州内拥有州。因此,在您的示例中,这三个州可能处于“正常运营”的超级状态之内。 - 然后您可以在其他文档中或通过注释进一步定义。
  4. 所有这些都是有效的UML语法。但请注意,仅仅因为某些内容有效并不意味着它会在您的编辑器中得到支持。例如,在编辑器中可以获得序列图的大多数特征之前很多年......

答案 1 :(得分:1)

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

enter image description here

Guard中添加如上所述的布尔条件。这可以是任何文字。您可以编写C样式或纯文本。我不确定OCL在这里,但这仍然是出于学术目的(我的意见)。

N.B。您的图表显示的Tries = 3也应该是Guard(即[Tries = 3]),而不是Name