




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第10章章 状态机图状态机图110.1 状态机图概述状态机图概述10.2 状态机图基本元素状态机图基本元素10.3 建立状态机图建立状态机图10.4 状态机图应用范围状态机图应用范围小结小结10.1 状态机图概述状态机图概述n状态机图用来对系统的动态行为建模;状态机图用来对系统的动态行为建模;n描述单一对象在其生命期内受各种事件的描述单一对象在其生命期内受各种事件的影响而发生的状态变化;影响而发生的状态变化;n状态机图是展示状态与状态转换的图,可状态机图是展示状态与状态转换的图,可以描述对象的行为,也可以描述用例、协以描述对象的行为,也可以描述用例、协作和方法甚至整个系统的动态行为。作和方法
2、甚至整个系统的动态行为。210.2 状态机图基本元素状态机图基本元素3图图10-1 状态机图状态机图n初始状态初始状态n终止状态终止状态n中间状态中间状态n事件事件n转换转换n监护条件监护条件n活动活动n动作动作n分支分支一、状态(一、状态(statestate)1、状态、状态n 对象生命周期中的某个条件或状况,在此期间对象生命周期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某对象将满足某些条件、执行某些活动或等待某些事件。些事件。4说明:说明:p 对象在任何时候都会处于某种状态中,所有对对象在任何时候都会处于某种状态中,所有对象都有状态。象都有状态。p 对象所处的状态决
3、定了它如何响应所检测到的对象所处的状态决定了它如何响应所检测到的事件或所接受的消息。事件或所接受的消息。p 通常,事件使对象从一种状态转向另一种状态通常,事件使对象从一种状态转向另一种状态(即状态的转移)。(即状态的转移)。5例:例:CD播放器播放器一、状态(一、状态(statestate)2、状态的表示、状态的表示n状态名称状态名称n入口动作入口动作n出口动作出口动作n内部转换内部转换n内部活动内部活动n可推迟事件可推迟事件 6状态示例状态示例动作动作(Action)n可执行的原子计算。可执行的原子计算。n不可中断,其执行时间可忽略不计。不可中断,其执行时间可忽略不计。两种特殊动作:两种特殊
4、动作:n 进入动作(进入动作(entry action):进入某状态时执行):进入某状态时执行的动作,用的动作,用“entry/要执行的动作要执行的动作”表示。表示。n 退出动作(退出动作(exit action):退出某状态时执行):退出某状态时执行的动作,用的动作,用“exit/要执行的动作要执行的动作”表示。表示。 7活动活动n对象处于某个状态时,对象进行的一些列对象处于某个状态时,对象进行的一些列动作。动作。n表示活动的格式为表示活动的格式为“do/动作名动作名”8一、状态(一、状态(statestate)3、状态的分类、状态的分类n初态初态n终态终态n简单状态(中间状态)简单状态(中
5、间状态)n组合状态组合状态n历史状态历史状态 9n显示状态图中状态机的显示状态图中状态机的执行(执行(execution)的)的开始。开始。n一个状态机只能有一个一个状态机只能有一个初态。初态。n如果一个状态机用多张如果一个状态机用多张图描述,则多张图用同图描述,则多张图用同一个初态。一个初态。n如果用了组合状态,则如果用了组合状态,则组合状态中可有初态。组合状态中可有初态。10(1)初始状态()初始状态(Start State)n表示一个最后的或者终端状态。表示一个最后的或者终端状态。11(2)终止状态()终止状态(End State)n 一张图中终态可以有一张图中终态可以有多个,也可以没有
6、。多个,也可以没有。12(3)简单状态)简单状态组成:组成:n状态名状态名n进入进入/退出动作退出动作n内部转移内部转移-不导致状态改变的转换,不会不导致状态改变的转换,不会执行执行entry和和exit动作。动作。n内部活动内部活动n延迟事件延迟事件-延迟到下一状态处理的事件。延迟到下一状态处理的事件。13例:状态示例例:状态示例EnterPasswordentry/ set echo *exit/ set echo normalevent keypress/ handle characterevent help/ display helpevent save/ deferdo/ get p
7、assword(4 4)组合)组合/ /嵌套状态嵌套状态n含有子状态的状态称为组合状态。含有子状态的状态称为组合状态。14两种类型:两种类型:15n顺序子状态顺序子状态复合状态包含的多个子状态之间是互斥的;复合状态包含的多个子状态之间是互斥的;复合状态只包含一个状态机。复合状态只包含一个状态机。n并发子状态并发子状态复合状态包含两个或多个并发的子状态机。复合状态包含两个或多个并发的子状态机。(4)组合)组合/嵌套状态嵌套状态两种类型:两种类型:n并发子状态并发子状态16n顺序子状态顺序子状态(4)组合)组合/嵌套状态嵌套状态复合状态的表示法有复合状态的表示法有2 2两种:两种:(1) (1)
8、将子状态机嵌入表示状态的圆角矩形将子状态机嵌入表示状态的圆角矩形中中(2) (2) 在圆角矩形中加入加分解指示符在圆角矩形中加入加分解指示符17(4)组合)组合/嵌套状态嵌套状态(5 5)历史状态)历史状态n 使用历史状态,则可以存储退出组合状态时所使用历史状态,则可以存储退出组合状态时所处的子状态,则返回组合状态时可以直接回到处的子状态,则返回组合状态时可以直接回到相应的子状态。相应的子状态。18二、转换(二、转换(transitiontransition)1、转换、转换n两个状态之间的一种关系,表示对象在第两个状态之间的一种关系,表示对象在第一个状态中执行一定的动作,并在某个特一个状态中执
9、行一定的动作,并在某个特定事件发生而且满足某个条件时进入第二定事件发生而且满足某个条件时进入第二个状态。个状态。n转换进入的状态称为转换进入的状态称为活动状态活动状态,转换离开,转换离开的状态变变为的状态变变为非活动状态非活动状态。 19二、转换(二、转换(transitiontransition)2、转换的格式、转换的格式n 事件(事件( 参数参数 ) 条件条件 / 动作动作n Helplen(PSW)6/verifyPSW.help()n 每个转移只允许一个事件,一个事件只允许一每个转移只允许一个事件,一个事件只允许一个动作。个动作。20二、转换(二、转换(transitiontransi
10、tion)3、转换的分类、转换的分类n外部转换外部转换n内部转换内部转换n自动转换自动转换n复合转换复合转换21n 一种改变对象状态的转换,用从源状态到目标一种改变对象状态的转换,用从源状态到目标状态的箭头表示。(火车卫生间的状态机图)状态的箭头表示。(火车卫生间的状态机图)22(1)外部转换)外部转换UsedUnusedMaintainingThe train stopThe train go runningSomebody go intoSomebody go intoSomebody go outn 有一个源状态但没有目标状态,转换后的状态有一个源状态但没有目标状态,转换后的状态仍是它本
11、身。仍是它本身。23(2)内部转换)内部转换n 在没有外部事件的作用下,对象执行了某些活在没有外部事件的作用下,对象执行了某些活动后,自然而然地完成的转换。动后,自然而然地完成的转换。n 自动转换是离开某个状态后重新进入原先的状自动转换是离开某个状态后重新进入原先的状态,它会激发状态的入口动作和出口动作的执态,它会激发状态的入口动作和出口动作的执行。行。24(3)自动转换)自动转换n 复合转换由简单转换组成,通过分支判定,把复合转换由简单转换组成,通过分支判定,把多个简单转换组合在一起。多个简单转换组合在一起。25(4)复合转换)复合转换NewStateNewState2NewState3Ne
12、wState4NewState5Event1 Condition1 / Action1 Condition2 / Action2 Condition3 / Action3 Condition4 / Action4 Condition5 / Action5 Condition6 / Action6三、事件三、事件(EventEvent)1、事件、事件n 事件是外部作用于一个对象,能够触发对象状事件是外部作用于一个对象,能够触发对象状态改变的一种现象。态改变的一种现象。2、事件的类型、事件的类型n 信号事件信号事件n 调用事件调用事件n 变化事件变化事件n 时间事件时间事件n 延迟事件延迟事件26
13、n 对象之间通过发送信号和接收信号实现通信。对象之间通过发送信号和接收信号实现通信。n 信号是一种异步机制。对象一般都有相应的事件信号是一种异步机制。对象一般都有相应的事件处理器。处理器。n 鼠标和键盘操作均属于此类事件。鼠标和键盘操作均属于此类事件。27(1)信号事件()信号事件(signal event)n 一个对象请求调用某个对象的成员方法;一个对象请求调用某个对象的成员方法;n 是一种同步机制。是一种同步机制。 28(2)调用事件()调用事件(call event)OfflineOnlinelogIn( UserID,Password )n 某个指定属性值为真时,事件得到触发。某个指定
14、属性值为真时,事件得到触发。n 用关键字用关键字When,后面跟布尔表达式。,后面跟布尔表达式。n When(temperature120)/alerm()29(3)变化事件()变化事件(change event)WaitReadwhen(buffer!=null) / notifyUser()n满足某一时间表达式的情况的出现。满足某一时间表达式的情况的出现。n例如到达某时间或经过了某一时间段。例如到达某时间或经过了某一时间段。n用关键字用关键字After或或When表示。表示。30(4)时间事件()时间事件(time event)IdleActivewhen(date=Feb.14,2009
15、) / alarm()NoMouseMovingLeavingafter(10 minutes)n对象处在某状态时外部事件产生了,但对象处在某状态时外部事件产生了,但没有执行事件,要推迟到另外一个状态没有执行事件,要推迟到另外一个状态才执行的事件。才执行的事件。n例如例如E-mail中正在发送第一封邮件时,中正在发送第一封邮件时,用户下达发送第二封邮件命令被延迟,用户下达发送第二封邮件命令被延迟,等到发送完第一封收件后,这封邮件就等到发送完第一封收件后,这封邮件就会被发送。会被发送。31(5)延迟事件()延迟事件(deferred event)例:订单处理系统例:订单处理系统323310.3
16、建立状态机图建立状态机图绘制状态机图的一般步骤是:绘制状态机图的一般步骤是:n 1寻找主要的状态寻找主要的状态;n 2寻找外部事件,以便确定状态之间的转换寻找外部事件,以便确定状态之间的转换;n 3详细描述每个状态和转换详细描述每个状态和转换;n 4. 把简单状态图转换为复合状态图。把简单状态图转换为复合状态图。3410.3 建立状态机图建立状态机图1寻找主要的状态寻找主要的状态 飞机票有以下飞机票有以下4种状态:无预订、部分预订、预种状态:无预订、部分预订、预订完、预订关闭。订完、预订关闭。(1)在刚确定飞行计划时,显然没有任何预订,)在刚确定飞行计划时,显然没有任何预订,且在顾客预订机票之
17、前都将处于且在顾客预订机票之前都将处于“无预订无预订”状态。状态。(2)对于订座而言,有)对于订座而言,有“部分预订部分预订”和和“预订完预订完”两种状态。两种状态。(3)当航班快要起飞时,要)当航班快要起飞时,要“预订关闭预订关闭”。3510.3 建立状态机图建立状态机图2寻找外部事件寻找外部事件(1)预订)预订():顾客预订机票。:顾客预订机票。(2)退订)退订():顾客退票。:顾客退票。(3)关闭)关闭():机票管理员关闭订票系统。:机票管理员关闭订票系统。(4)取消航班)取消航班():飞机调度人员取消飞行计划。:飞机调度人员取消飞行计划。3610.3 建立状态机图建立状态机图3确定状态
18、间的转换确定状态间的转换37表表10-1 事件与状态转换事件与状态转换源目标源目标无预订无预订部分预订部分预订预订完预订完预订关闭预订关闭无预订无预订 预订预订()不直接转换不直接转换关闭关闭()部分预订部分预订 退订退订()事件发生事件发生后,使预订人后,使预订人=0 预订预订(),无空座无空座关闭关闭()预订完预订完不直接转换不直接转换退订退订() 关闭关闭()预订关闭预订关闭 无转换无转换无转换无转换无转换无转换 10.3 建立状态机图建立状态机图 确定了状态之间的有效转换,绘制出相应的状态机图,确定了状态之间的有效转换,绘制出相应的状态机图,如图如图10-18所示。所示。3810.3 建立状态机图建立状态机图4详细描述每个状态和转换详细描述每个状态和转换详细描述后的状态图,见图详细描述后的状态图,见图10-19 3910.3 建立状态机图建立状态机图5把简单状态图转换为符合状态图把简单状态图转换为符合状态图转换后的符合状态图,见图转换后的符合状态图,见图10-20 4010.4 状态机图应用范围状态机图应用范围41 状态机图主要应用有两种:状态机图主要应用有两种:n一是,在对象生命周期内,对一个对象的一是,在对象生命周期内,对一个对象的整个活动状态建模;整个活动状态建模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脑内脓肿护理
- 结石快速康复护理
- 2025年八年级班主任工作计划示例
- 2025年非营利组织财务战略计划
- 部编版小学一年级英语上册期末复习计划
- 改良冰袋护理应用与优化方案
- 监理资料管理培训
- 小学语文期末复习计划优化方案
- 煤矿安全生产标准化培训
- 园林绿化工程施工现场环境保护措施
- 数字化电力系统转型-洞察阐释
- 小学四年级下册语文期末考试试卷含答案共6套
- 2025各个班组安全培训考试试题含答案可下载
- 药物动力学与临床相关考点试题及答案
- 动态设计宝典C4D三维图像设计与交互知到智慧树期末考试答案题库2025年青岛工学院
- 幼儿园毕业典礼流程安排
- MOOC 中国电影经典影片鉴赏-北京师范大学 中国大学慕课答案
- 医院小型压力蒸汽灭菌器的使用及管理
- 中药学电子版教材
- 基于“鄂尔多斯婚礼”谈民族舞蹈及音乐的传承发扬
- 公司管理制度:格林美管理手册
评论
0/150
提交评论