用UML建模子状态机终止的正确方法是什么?
假设我有一个子状态机用于处理传入事件的某种代理。 并且假设这个状态机被称为“处理”
从“处理”机器到父状态机的另一个状态绘制转换线是否有效?
e.g。
+SUB----------+ +-----------+
| processing |---user cancelled ------>| done |
+-------------+ +-----------+
当“用户取消”触发器发生时,如何显示处理状态机终止?
答案 0 :(得分:0)
您的建模没问题。当processing
处于有效状态且done
是当前事件时,您已从processing
转换为user cancelled
。 processing
是活动的,如果它的任何子状态,即子机中的任何状态,都是活动的。因此,事件user cancelled
将停止执行子机,执行将移至done
。
注意,如果您只允许取消processing
(子机)的某些(但不是全部)子状态的执行,那么您的状态机需要更多一些。如果在图表中建模,事件user cancelled
将会过于强大。