状态
状态对状态机行为执行过程中的某个情况建模,在这个情况下,某些条件维持不变。在大多数情况下,这个条件不是被明确定义,而是通过与状态关联的名称来隐式定义的。
UML2.5-14.2 Behavior StateMachines (2)
对于交通信号系统,状态是对交通信号系统中的某个交通状态建模,在该状态中,交通状态维持不变,每个状态的条件是通过状态名来隐式定义的。
说就是有以下几个状态:
双方向停止状态(idle)
两个方向的信号都是红灯,双方向禁止通行
道路1通行状态(Road1Go)
道路1安全停止状态(Road1StopSafely)
道路1黄灯,确认安全的前提下停车;道路2红灯,禁止通行
道路2通行状态(Road2Go)
道路1红灯,禁止通行;道路2绿灯,车辆同行
道路2安全停止状态(Road2StopSafely)
道路1红灯,禁止通行;道路2黄灯,确认安全的前提下停车
状态图如下,各个状态之间按照迁移线制定的方向迁移。
进入行为/退出行为
状态可以有一个进入行为。如果定义了这个行为,每当通过外部迁移进入状态的时候它就会被执行。另外,状态也可以有一个关联的退出行为,如果被定义了这个行为,每当状态退出的时候它就会被执行。
UML2.5 14.2 Behavior StateMachines (3)
在本例中,为每个状态设计了如下的进入和退出行为。
双方向停止状态(idle)
进入行为:设定双方向信号状态为红灯
道路1通行状态(Road1Go)
进入行为:设定道路1信号状态为绿灯,道路2信号状态维持红灯
道路1安全停止状态(Road1StopSafely)
进入行为:设定道路1信号状态为黄灯,道路2信号状态维持红灯
退出行为:设定道路1信号状态为红灯,道路2信号状态维持红灯
道路2通行状态(Road2Go)
进入行为:道路1信号状态维持红灯,设定道路2信号状态为绿灯
道路2安全停止状态(Road2StopSafely)
进入行为:道路1信号维持为红灯,设定道路2信号状态为黄灯
退出行为:道路1信号维持为红灯,设定道路2信号状态为红灯
参考资料:
14.2 Behavior StateMachines (2)
14.2 Behavior StateMachines (3)
打开方法如下:
- 进入【面向对象思考】 公众号
- 打开【自选功能】-【UML2.5中文译文】菜单
- 选择【状态图】分类
- 选择相关文章
以上就是今天的文章,欢迎点赞,关注并推荐给您的朋友!
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】