版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、状态图,7.1 几个概念 7.2 状态 7.3 状态转换 7.4 事件 7.5 复合状态 7.6 并发状态 7.7 控制结点 7.8 子机状态 7.9 状态机 7.10 状态机图实例,第7章,状态图,7.1.1 状态 7.1.2 状态机 7.1.3 状态机图,第7章,7.1 几个概念,状态(state):指事物在其生命周期中满足某些条件、执行某些操作或等待某些事件而持续的一种稳定的状况 。,待用 运行 故障,状态机(state machine ): 描述一个事物在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。,状态机(state machine diagram ): 是UML
2、用来描述状态机的图,在UML2.0版本之前,状态机图被称为状态图。状态机图由状态结点、控制结点和转换边构成。,状态结点,控制结点,转换边,状态图,7.2.1 状态的概念 7.2.2 状态的类型 7.2.3 状态的动作,第7章,7.2 状态,状态(state):指事物在其生命周期中满足某些条件、执行某些操作或等待某些事件而持续的一种稳定的状况 。 状态表示为: 状态名若用英文,第一个字母要大写。,可分为以下三类: 简单状态:也被称为原子状态,不包含子状态和子机状态。 复合状态:内部包含子状态的状态。 子机状态:状态机作为子状态的状态。,可分为以下三类: 简单状态: 复合状态: 子机状态:,一个状
3、态内部所包括的动作或事件, 在当前 状态下,状态机会执行这些动作,可以有: 入口动作:进入该状态自动执行的第一个动作,表示为:extry/do shing , 例如 extry/do dooropen。 出口状态:退出该状态自动执行的最后一个动作,表示为:exit/do shing, 例如,exit/door close 。 内部变迁:在该状态下做的动作,不引起状态变化。表示为: do/thing,例如,do/check up on work 。 延迟事件:在该状态下,如果发生某事件,将被延时处理。表示为:事件/defer,例如,print/defer(15),表示打印事件将被延迟15秒 。,
4、状态图,7.3.1 状态转换的概念 7.3.2 状态转换的三要素,第7章,7.3 状态的转换,状态转换(state transition):是两个状态之间的一种有向关系,表示从源状态转换到目标状态。状态转换用一个带箭头的实线表示,箭头由源状态指向目标状态。,触发事件:触发状态转换的条件,如开门,入库,开电源等。如果没有触发事件,指源状态执行完后,自动转换到目标状态。,触发事件: 监护条件:用来监护状态转换。在事件发生后,如果监护条件为真,则执行动作,并转换状态。如果监护条件为假,则不执行转换动作,也不实施状态转换。 如果没有监护条件,则不作条件判断,在事件发生后直接执行转换动作。,触发事件:
5、监护条件: 转换动作:在事件发生后所执行的一组动作,并把状态由源状态转换到目标状态。在动作前置一个“/” 。,状态图,7.4.1 事件的概念 7.4.2 事件的性质 7.4.3 事件的类型 7.4.4 几种事件,第7章,7.4 事件,事件(event):指所发生的瞬时事情,能引起状态变换。 例如: 按“开关”,能开启机器 “双击鼠标”打开窗口。,瞬时态:事件在瞬时发生,没有时间延迟。 原子性:事件不可再分割,按发生的位置分: 外部事件:在系统外部发生的事件,例如,按按钮就在外部发生。 内部事件:在系统内部发生的事件,例如,溢出事件 按事件的性质分: 调用事件,信号事件, 变化事件,时间事件,调
6、用事件(call event):表示发送对象发给接收对象的调用消息的接收消息事件,并由该事件触发接收对象的状态转换。,信号事件(signal event):表示发送对象发给接收对象的信号消息的接收消息事件,并由该事件触发接收对象的状态转换。,改变事件(change event):表示当布尔表达式的值改变为真时所激发的事件。系统将一直检测改变事件中的布尔表达式的值,只要它的值改变为真,该事件就被激发。改变事件一般用关键字when开头的布尔表达式表示,当表达式的值由假变为真时,事件将发生。 例如:when (systemtime=12:00),表示当系统时钟到达12点时,激发该事件。,时间事件(t
7、ime event):是经过一定的时间或者到达某个绝对时间时发生的事件。 用关键字after及时间值表示相对时间,例如,“after(10sec.)”,表示从现在算起,10秒之后将发生该事件。 用关键字at及时间值表示绝对时间,例如,“at 2012-10-1”表示到2012年10月1日引发该事件。,状态图,7.5.1 复合状态的含义 7.5.2 复合状态的性质 7.5.3 复合状态的类型,第7章,7.5 复合状态,复合状态:指包含子状态的状态。 例如,ATM机的状态机图:,事物在复合状态时,意味着它处于其中一个子状态;事物如果在某一个复合状态的子状态,它一定处于该复合状态。 复合状态允许嵌套
8、,子状态可以是简单状态、复合状态,也可以是子机状态。,复合状态具有始态,转入一个复合状态等价于转入其始态。,复合状态可以有终态,达到复合状态的终态,将从复合状态转出。,复合状态转换的类型,7.5.3,外部转换:在复合状态与其他状态之间发生的状态转换,以及复合状态的自转换。外部转换表示离开一个复合状态进入另外一个状态,或者进入复合状态自身。 局部转换:复合状态内部子状态之间的转换,或者复合状态转换到其中某个子状态。,状态图,7.6.1 并发状态的含义 7.6.2 同步状态,第7章,7.6 并发状态,并发状态:在一个状态机或一个复合状态中,如果同时存在相互可以独立的几组状态,则称这几组状态是并发状
9、态(concurrent state)。 例如:,同步状态:指多个并发区间中的状态在转换过程彼此存在同步关系,一个区间中的一个转换需要等到另一个区间中的某个转换发生后才能进行。 例如:,状态图,7.7.1 初始状态 7.7.2 分叉与汇合 7.7.3 汇接 7.7.4 选择 7.7.5 历史状态 7.7.6 终止状态 7.7.7 入口点与出口点,第7章,7.7 控制结点,初始状态 (initial state) :简称始态,表示状态机的起始,始态用实心园表示。一个复合状态或子机状态也有其始态。一个状态机可以有多个始态,存在多个始态的状态机一定存在状态的并发,在并发状态的一个区间只能有一个始态。
10、 初始状态表示一个状态机从此结点开始,但事物不会此状态停留,会立即转换到初始状态所连接的第下一个状态。 初始状态只有输出,没有输入。,分叉 (fork) :指将一个转换分成两个或多个转换,用来描述需要并发的状态。 汇合 (join) :指将从并发状态来的转换合并形成一个转换,用来描述多个并发状态的控制同步。,汇接(junction):用来汇接多个转换,以简化转换路径。汇接的符号与初始状态的符号相同,但它允许连接多个转换的输入和多个输出。,选择(choice ):用来实现根据条件判断,转换到不同目标状态。用菱形表示选择,有一个输入边到选择,多个输出边由选择到目标状态结点。,历史状态(histor
11、y state ):为一个状态机或复合状态提供了一种在退出状态时记忆当前活动所处的子状态,并能够返回到该子状态的机制。,历史状态,终止状态(final state ):被简称为终态,表示一个状态机、一个复合状态,或一个区间状态的结束。终止状态用“牛眼”符号表示。,终止状态,入口点(entrypoint ):是其它状态转换到一个状态机或复合状态的始态的一个进入点。入口点用小圆圈表示,被放置到状态机或复合状态的边界上。 出口点(exitpoint ):是状态机或复合状态到其他状态的一个转出点。出口点用带叉的小圆圈表示,也被放置到状态机或复合状态的边界上。,入口点和出口点的例子:,状态图,第7章,7
12、.7 子机状态,子机状态(submachine state ):是指把一个状态机作为另外一个状态机的子状态。包含子机状态的状态机被称为母状态机。母状态机是以引用的方式把一个已经存在的状态机作为自己子状态,在母状态机中子机状态作为一个子状态,但它自身仍是一个完整的状态机。,状态图,7.8.1 状态机的概念 7.8.2 状态机的用途 7.8.3 状态机建模规则 7.8.4 状态机建模 7.8.5 状态机与其它的比较,第7章,7.8 状态机,状态机(state machine ): 描述一个事物在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。,对象状态建模: 用例状态建模: 交互状
13、态建模: 构件状态建模:,1 对象状态建模: 描述一个对象在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。 根据其用途,可分为行为状态机和协议状态机。,行为状态机:描述一个对象在其生命周期中可能处的各种状态,以及因事件的触发而引起状态之间转换的行为规则与方式 。前面的例子全部属于行为状态机,协议状态机:描述一个对象在其生命周期中可能处的状态,以及因对对象所定义操作的一种允许的调用序列,使得对象可能经历的状态变化过程。,2 用例状态建模:一个用例在其执行过程中也会处于不同的状态,可以用状态机描述用例的状态,及其转换 。,3 交互状态建模:一个交互描述为完成某项功能,系统中若干个
14、对象相互交互消息的过程。一个交互过程也会存在多种状态,及其状态的转换,可以用状态机图来描述交互状态的转换。,订货交互的状态机:,4 构件状态建模:构件封装了多个类,构件在其生命周期中也会存在不同状态,可以用状态机对构件的状态及其转换进行建模。,状态机建模应该遵循下面规则: 1)初始状态只有转出,没有转入。初始状态的转出无触发事件、无监护条件。 2)状态机最少应该有一个初态,如果存在并发可以有多个初始状态。 3)状态机最少应该有一个终态,允许存在多个终态。 4)除初态外,其他所有状态都至少应具有一个转入。 5)除终态外,其他所有状态都至少应具有一个转出。 6)一个状态机中不允许存在两个同名的状态
15、。,状态机建模的基本步骤: 1)确定对哪一个类元进行建模。 2)从类元实例的创建(始态)到被撤销(终态),确定实例可能经历的所有状态。 3)分析实例从一种状态转换到另外一种状态可能发生的事件。 4)确定当触发事件发生时,实例应该执行的动作。 5)对建模结果进行精化和细化。 6)检查与验证状态机图。,1)状态机图用于事物状态及其变换的建模;活动图用于过程流程建模 。 2)状态结点表示事物一个状态,活动结点表示一个过程中的一个动作。 3)交互图用于多个对象为完成一个任务的交互关系,状态机图表示一个事物所处的状态,及其变换。 4)可以用状态机描述一个交互过程中所处的状态及其转换,用活动图描述一个交互执行的流程。,状态图,7.9.1 手机状态机图 7.9.2 电梯状态机图 7.9.3 银行账户状态机图 7.9.4 状态机建模 7.9.5 状态机与其它的比较,第7章,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互动教学制度
- 幼儿园篮球团队奖惩制度
- 主要涉水部门联系单制度
- 集团财务报奖惩制度
- 乡镇卫生院职工奖惩制度
- 孩子学习生活奖惩制度
- 机电安装员工奖惩制度
- 小水电站值班员奖惩制度
- 学风建设部门中奖惩制度
- 煤矿检修车间奖惩制度
- 马云创业之路
- 2026药用辅料附录检查指导原则
- 全球核安全形势课件
- 新媒体概论宫承波课件
- 工地花岗岩施工技术交底
- 精神障碍患者社会交往技能训练方案
- 2026年合肥经济技术职业学院单招综合素质考试必刷测试卷附答案
- 电力行业面试问题
- 2025年秋季学期少先队辅导员工作经验交流稿:让红领巾闪光让每一颗童心发光(课件)
- 云南省市场监管局直属事业单位招聘考试真题2025
- 2025年机动车考试员考试试题及答案
评论
0/150
提交评论