EA&UML日拱一卒-状态图::迁移

构成状态图的最基本要素,除了状态以外就是迁移了。


迁移


迁移是一个从单个源顶点开始到单个目标顶点结束的单方向圆弧(源和目标可能是同一个顶点),它定义了状态机行为的一段。它可以有关联的效应行为,这个效应行为在迁移被通过(执行)的时候执行。


迁 移可以拥有多个触发条件,每个触发条件定义了一个事件,当事件发生被发送时,可以触发迁移的通过。如果发送的事件发生与事件类型匹配,就可以说触发条件处 于有效状态。当一个迁移定义了多个触发条件时,它们逻辑上是分离的,也就是说,只要它们中的任何一个处于有效状态,迁移就会被触发。


ULM2.5-14.2 Behavior StateMachines (8)


在交通信号系统这个例子中,当然也需要迁移,具体如下图。在这个例子中只用到触发条件,效应行为和监护条件在后续文章中介绍。


EA&UML日拱一卒-状态图::迁移


接下来以Road1StopSafely为例,说明状态机的动作。


  1. Road1GoTimeout触发条件满足后,状态机从Road1Go状态迁移到Road1StopSafely状态

  2. Road1StopSafely状态的进入行为StartRoad1StopSafely被执行,点亮Road1方向绿灯

  3. Road1StopSafelyTimout条件满足后,Road1StopSafely的退出行为StopRoad1StopSafely被执行,点亮Road1方向红灯

  4. 状态机从Road1StopSafely迁移到Road2Go


参考资料:


14.2 Behavior StateMachines (8)


打开方法如下:

  1. 进入【面向对象思考】 公众号  

  2. 打开【UML】-【UML2.5中文译文】菜单

  3. 选择【状态图】分类

  4. 选择相关文章


以上就是今天的文章,欢迎点赞,关注并推荐给您的朋友!
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】
EA&UML日拱一卒-状态图::迁移