链接复制成功!
自定义激活块
通常情况下,激活块的生成和断连状态是由指向它的消息线及上下文控制的,基于同步/异步/返回消息线的连线规则,自动计算出对应激活块的长度以及和上下激活块的连接状态。
但是,某些建模场景下,现有的计算规则可能无法满足用户对建模逻辑的描述,用户需要在当前计算规则上,对顺序图激活块的状态施加进一步的控制。因此工具提供了六种控制激活块状态的自定义方式。
开始新的消息组
顾名思义,将一条消息线设置为“开始新的消息组”,意味着该消息线及其下方的其余消息线是一段新的执行周期。它通常用来将连在一起的两段逻辑拆分开,该设置会作用于消息线的源端对象上。如下图所示,“布置作业” 任务是老师在“打扫卫生”任务结束后的后续动作,此处通过“设置为新的消息组”,人为将它定义为两个独立的任务。
开启新的消息组后,如果对应激活块没有拆分为独立逻辑段,则可能是该激活块上方的消息线设置了“向下延长源端激活块”,导致上方的激活块向下延伸。
向上延长源端激活块
当一条消息线的源端激活块不与它上方的其余激活块相连,通常意味着该消息线代表的是一个独立任务。若要人为将该独立任务和上方任务相连,需要对其设置“向上延长源端激活块”,手动将该任务的执行周期与上方的任务连接到一起。如下图所示,“分配拖地任务”与上面的“分配扫地任务”是两个独立的任务,通过设置“向上延长源端激活块”将其合并成一个执行任务。
向下延长源端激活块
与“向上延长源端激活块”场景类似,当一条消息线的源端激活块不与其下方的其余激活块相连,也可以通过将该消息线设置为“向下延长源端激活块”,将该消息线任务与下方任务合并为一个执行任务。如下图所示,“汇报扫地成果”与下方的“分配扫地任务”是两个独立的任务,通过对“汇报扫地成果”消息线设置“向下延长源端激活块”将其合并为一个执行任务。
结束源端激活块
当用户想要表示某一任务在消息指令发出之后,该任务将处于非激活状态,可以通过显式设置某消息线为“结束源端激活块”来实现。通常这样的场景应该用异步消息线来实现,异步消息发出指令/任务后,该消息线的源端对象即处于非激活状态。
假设老师发出“打扫卫生”任务后就去做别的事情,则他的这个任务是个异步任务,通常用“异步消息线”来表示该指令/任务。
而在下图中,如果用“同步消息线”来表示该指令/任务,则需要将“打扫任务”这个消息线设置为“结束源端激活块”,则此时它的源端激活块状态和左图保持一致,代表的是“打扫卫生”和“汇报扫地成果”这两个任务的执行期间,老师处于非激活状态。
结束目标端激活块
该设置项一般用来断开由“向上延长源端激活块”或“向下延长源端激活块”导致的激活块相连,“延长源端激活块”如果没有显式通过该设置结束,会一直向下延长对应激活块。如下图所示,“对扫地结果给予奖励”任务和“汇报扫地成果”是有关联性的,此时通过对“汇报扫地成果”设置“向下延长源端激活块”可以将其和“对扫地结果给予奖励”的激活块连接到一起。但“下发拖地任务”和上面的扫地任务是并列的独立任务,由于“向下延长源端激活块”的设置影响,它的激活块和上面的连接在一起了,此时就需要对“对扫地结果给予奖励”消息线设置“结束目标端激活块”,取消“延长源端激活块”对“下发拖地任务”的影响。
强制断开目标端
该设置项会强制断开消息线目标端的激活块,使其在目标端与上面的激活块断开。如下图所示,对“汇报扫地成果”任务设置“强制断开目标端”,则该消息线在目标端的激活块会直接断开。