我是UML状态图符号的新手,我试图模拟在同一触发事件上有两个触发的操作,但其中一个操作是可选的,这取决于条件。
下面只是我需要的一个模拟,那么下面的符号是对还是错?

发布于 2015-09-23 05:16:21
在UML状态图中,每个转换都由一个且只有一个事件触发。在您的情况下,一个事件似乎会导致转换到两个不同的状态,或者,正如您所说的,有一个可选的路径。我个人的建议是:

我所做的是在您提到的条件下使用伪状态进行分支。因此,如果你的条件成立,你就会转换到最底层的最终状态,如果不是,你就会向右转换。虽然结束状态是相同的,但您的图表现在清楚地勾勒出每个转换上的不同行为。
我很抱歉没有使用正确的圆角框,我使用的在线绘图工具没有提供这些。正如您所看到的,我使用了两个最终状态,但您只能使用一个,这两个状态在UML中都是允许的。
发布于 2015-09-21 21:01:23
事实上,根据UML规范,给定的转换只能触发一个“效果”或动作。因此,为了触发你的两个动作,你必须对两个转换(内部或外部)进行建模。对我来说,你的情况应该像你已经理解的那样表达为一个守卫。那么,你真的有两个动作,一个可选的,或者根据一个给定的保护,你有一个动作还是另一个动作!?你能描述一下你的用例吗?
https://stackoverflow.com/questions/32694182
复制相似问题