3

我是 UML 状态图表示法的新手,我试图模拟对同一个触发事件有两个触发的操作,但其中一个操作是可选的,具体取决于条件。

以下只是我需要的模拟,那么下面的符号是对还是错?: 在此处输入图像描述

4

2 回答 2

3

在 UML 状态图中,每个转换都由一个且只有一个事件触发。在您的情况下,似乎一个事件会导致转换到两种不同的状态,或者正如您所指出的,有一个可选路径。我个人建议如下:

一个 UML 状态图,显示了一个伪状态,在导致执行可选任务的条件下分支。

我所做的是使用 Pseudostate 根据您提到的条件进行分支。因此,如果您的条件成立,您将转换到最底部的最终状态,否则您转换正确。虽然最终状态相同,但您的图表现在清楚地概述了每个转换的不同行为。

我很抱歉没有使用正确的圆角框,我使用的在线绘图工具没有提供这些。如您所见,我使用了两种最终状态,但您只能使用一种,这两种状态在 UML 中都是允许的。

于 2015-09-22T21:16:20.883 回答
0

事实上,根据 UML 规范,一个给定的转换只能触发一个“效果”或动作。因此,为了触发您的两个动作,您必须对两个转换(内部或外部)进行建模。对我来说,你的条件应该表达为你已经理解的守卫。那么你真的有两个动作,一个可选的,或者根据给定的守卫你有一个动作或另一个动作!?你能多描述一下你的用例吗?

于 2015-09-21T13:01:23.260 回答