0

在 UML 中对子状态机终止建模的正确方法是什么?

假设我有一个用于处理传入事件的某种代理的子状态机。假设这个状态机被称为“处理”

只画一条从“处理”机器到父状态机的另一个状态的转换线是否有效?

例如

+SUB----------+                          +-----------+
| processing  |---user cancelled  ------>| done      |
+-------------+                          +-----------+

当“用户取消”触发器发生时,我将如何显示处理状态机终止?

4

1 回答 1

0

你的造型没问题。您从processingto的转换在处于活动状态并且是当前事件done时被激活。如果它的任何子状态(即子机中的任何状态)处于活动状态,则它是活动的。因此,该事件将停止子机的执行,并继续执行。processinguser cancelledprocessinguser cancelleddone

请注意,如果您只允许取消(子机)的一些(但不是全部)子状态的执行processing,那么您的状态机需要更多地参与。如果按照您的图表建模,该事件user cancelled将过于强大。

于 2013-11-13T08:19:50.310 回答