UML可中断区间

UML可中断区间,对活动图建模时,往往会出现这样的情形,即当一个活动执行在特定区间时,如果发生某种来自活动外部的事件,那么当前区间中的活动立即终止,然后转去处理所发生的事件,而且不能再回头继续执行。UML 2中提供了可中断区间来支持这种建模。

可中断活动区间是一种特殊的活动分组,当发生某种事件时,在一个活动中把某一范围中的所有控制流都撤销。具体来说,一个可中断区间包含了多个活动节点,而且有一条或者多条流作为该区间的中断退出区间。当一个控制流沿着其中一条流退出时,该区间中的所有其他流和活动都将终止。

中断流是一种特殊的活动流,对于可中断活动区间来说,每个中断流必须在区间内有一个源节点,而且中断流的目标节点必须在区间外,且必须在同一个活动中。

一个可中断区间往往包含有一个或者多个接收事件动作,它们表示可能导致中断的不同事件。当一个控制流在区间内退出时,该区间就中断了,此时控制流离开该区间,但是未被终止。另外,区间中的接收事件动作没有进入流,只有当一个控制流进入该区间时,该动作才被激活,以等待特定事件发生。

一个可中断区间用一个虚线的圆角矩形表示,其中包含一组节点和控制流。一条中断流表示为一个“闪电”符号,从区间中接收事件动作指向区间外的某个节点,如下图所示。
UML可中断区间

在上图中,可中断区间包含了“接收订单”“生成订单”和“按订单发货”。在“按订单发货”完成前,如果接收到一个“请求取消订单”事件,将离开该区间而执行“取消订单”动作,然后终止活动。这个事件来自当前活动的外部,如来自客户的请求。实际上,当控制流进入执行可中断区间时,接收事件动作就已经激活,准备好接收特定事件了。当中断事件发生时,可能对同一个订单,一些可中断活动区间外的活动正在并发进行,但此时“按订单发货”动作不能完成,导致不能同步进入“订单完成”。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!