大家好,欢迎来到IT知识分享网。
一、定义
状态机图是一种动态图 。描述一个特定对象的所有可能的状态以及引起状态转换的事件。
二、构成
状态机由状态、转移、事件和动作等组成。
1、状态
状态(state)是指对象在其生命周期中,满足某些条件、执行某些活动或等待某些事件时的一个状况
如图书馆的一本书籍可能有:“在架”、“借出”、“被预借”等状态。
(1)标准状态
在UML中,状态使用圆角矩形表示,一个状态有自己的状态名称,状态中包含该状态下将执行的动作和事件 。
- entry为进入状态时的动作,当进入该状态时要执行的动作;
- do为处于该状态下执行的动作。
- exit为退出动作,当离开当前状态时要执行的动作。
- event为在该状态下定义相应的事件动作。
(2) 初始状态
初始状态代表状态机图的开始,使用实心圆表示。一个状态机图只有一个初始状态。
(3)结束状态
(4)组合状态
(5)子状态
嵌套在一个状态内部的状态为子状态。可以根据状态是否同时存在,可以再细分为顺序子状态和并发子状态。
顺序子状态 :在组合状态的生命周期中,任何时刻只能处于一个子状态,即多个子状态之间是互斥的关系,不能同时存在。
并发子状态 :多个顺序的子状态可以同时存在。
(6)历史状态
2、转移
转移(Transition)指的是两个不同状态之间的一种关系,是对象在满足一定条件或发生某个事件时,从一种状态迁移到另外一种状态。
(1)转移五要素 :
- 源状态:即受转换影响的状态。
- 目标状态:当转换完成后对象的状态
- 触发事件:当源状态的对象接收到事件时转移才有可能被激活。触发事件有自己的名称,也可以有自己的参数。
- 监护条件:布尔表达式,决定是否激活转换
- 动作:转换激活时的操作
(2)转移分类:
| 分类 | 说明 |
|---|---|
| 外部转移 | 是一种改变状态的转移,是状态机中常见的一种转移。主要出现在两个不同的状态之间。 |
| 内部转移 | 是指不会导致状态改变的转换。有时,我们需要在该状态下处理一些无需离开状态的事件,这时可以定义一个内部转移。如“借阅图书”这个状态中event。![]() |
| 自转移 | 如果源状态与目的状态是同一状态,![]() |
3、事件
(1)信号事件
(2)时间事件
(3)改变事件
(4)调用事件
4、动作
三、示例
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112097.html







