第08章 状态图和活动图

上传人:仙*** 文档编号:244061667 上传时间:2024-10-02 格式:PPT 页数:37 大小:1.01MB
返回 下载 相关 举报
第08章 状态图和活动图_第1页
第1页 / 共37页
第08章 状态图和活动图_第2页
第2页 / 共37页
第08章 状态图和活动图_第3页
第3页 / 共37页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,面向对象分析与设计&UML,*,第,8,章 状态图和活动图,8.1,什么是状态图,UML,中的状态图,(,Statechart,diagram),用于描述一个对象在其生存周期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件,(event),以及因状态转移而伴随的动作,(action).,状态图在检查、调试和描述类的动态行为时非常有用,.,2,面向对象分析与设计&UML,8.1,什么是状态图,起始状态,终止状态,状态,事件,在状态图中,动作可以与状态有关,也可以与转移有关,.,-,与状态有关时,对象进行某状态时触发某一动作,.,-,与转移有关时,对象在不同状态间转移时,触发相应动作,.,3,面向对象分析与设计&UML,8.1,什么是状态图,属性拥有较少的可能取值,属性在这些值之间的转移有一定的限制,状态图描述的对象往往有多个属性,应该在具有如下特性的属性上建模,:,如,:,类,SellableItem,中有,2,个属性,:,salePrice,和,status,其中,:,salePrice,类型为,Money,取值范围为正实数,;,status,类型为枚举,(Received,InInspection, Accepted, Rejected),则应根据属性,status,建立状态图,.,4,面向对象分析与设计&UML,8.2,状态图的基本概念,状态, state,组合状态, composite state,子状态, sub state,历史状态, history state,转移, transition,事件, event,动作, action,5,面向对象分析与设计&UML,8.2.1,状态,状态是在对象的生命期中的某外条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件,.,状态的组成部分,:,状态名、进入,/,退出动作、内部转移、子状态、延迟事件,.,状态的类型,:,初态、终态、中间状态、组合状态、历史状态等,.,初态,终态,中间状态,6,面向对象分析与设计&UML,8.2.1,状态,状态名,入口动作,进入该状态时执行该动作,.,动作,处于该状态时执行的动作,.,事件动作,该状态中出现特定事件时执行的动作,.,退出动作,当离开该状态时执行该动作,.,延迟响应事件,在该状态出现该事件时,不在本状态响应,而是延迟到其他状态响应,.,7,面向对象分析与设计&UML,8.2.2,组合状态和子状态,嵌套在另一个状态中的状态称为子状态,;,包含子状态的状态称为组合状态,.,组合状态,子状态,子状态也可以有初态和终态,8,面向对象分析与设计&UML,8.2.2,组合状态和子状态,子状态之间的,or,关系,任意时刻只能到达一个子状态,.,9,面向对象分析与设计&UML,8.2.2,组合状态和子状态,子状态之间的,and,关系,组合状态中某时刻可以同时到达多个子状态,.,10,面向对象分析与设计&UML,8.2.3,历史状态,历史状态是伪状态,其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态时,可以直接进入这个子状态,而不是再从组合状态的初态开始,.,浅,(shallow),历史状态,只记住最外层组合状态的历史,.,深,(deep),历史状态,可以记住任意深度的组合状态的历史,.,11,面向对象分析与设计&UML,8.2.3,历史状态,12,面向对象分析与设计&UML,8.2.4,转移,转移是两介状态之间的一种关系,表示对象将在第一个状态执行一定的动作,并在某个特定事件发生且满足某个特定的警戒条件时进入第二个状态,.,转移的格式,:,event-name (parameters) guard-condition /action,例如,:,targetAt(p,) ,isThreat, /,t.addTarget(p,),13,面向对象分析与设计&UML,8.2.4,转移,对于一个给定的状态,最终只能产生一个转移,因此从一个状态出发的几个转移之间应该是互斥的,包括,:,事件不同,;,事件相同但警戒条件互斥,.,14,面向对象分析与设计&UML,8.2.5,事件,事件是对一个在时间和空间上占有一定位置的有意义的事情的详细说明,.,(1),调用事件,表示对操作的调用,.,问题,:,调用谁的操作,?,15,面向对象分析与设计&UML,8.2.5,事件,(2),变化事件,表示某布尔表达式值变化,引起的事件,.,注意,:,变化事件与警戒条件区别,16,面向对象分析与设计&UML,8.2.5,事件,(3),时间事件,表示满足某一时间表达式,引起的事件,.,(4),信号事件,表示对象接收到某信号的事件,.,信号是对象之间异步发送,/,接收的,它们之间可以形成泛化关系,.,信号事件与调用事件类似,是异步和同步的区别,.,17,面向对象分析与设计&UML,8.2.6,动作,动作是一个可执行的原子计算,. UML,中没有规定动作的具体语法形式,采用程序设计的语言语法即可,.,两种特殊动作,:,进入动作,: entry / action-expression,退出动作,: exit / action-expression,18,面向对象分析与设计&UML,19,面向对象分析与设计&UML,状态和状态机,状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况,一个状态通常包括名称、进入,/,退出活动、内部转换、子状态和延迟事件等五个部分组成,状态机是计算机科学理论的一部分,但,UML,中的状态机模型主要是基于,David Harel,所做的扩展,是用来展示状态与状态之间转换的图,20,面向对象分析与设计&UML,如何阅读状态机图,阅读最简单的状态,?,最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换,21,面向对象分析与设计&UML,转换的五要素,源状态:即受转换影响的状态,目标状态:当转换完成后对象的状态,触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件,监护条件:布尔表达式,决定是否激活转换,动作:转换激活时的操作,22,面向对象分析与设计&UML,与状态,off,相关的转换有两个,其触发事件都是,turnOn,,只不过其监护条件不同。如果对象收到事件,turnOn,,那么将判断壶中是否有水;如果,没水,,则仍然处于,off,状态;如果,有水,则转为,on,状态,并执行“烧水”动作。,而与状态,on,相关的转换也有两个,如果“水开了”就执行,turnOff,,关掉开关;如果烧坏了,就进入了终态了,23,面向对象分析与设计&UML,24,面向对象分析与设计&UML,只有动作描述,进入和退出和操作方法写在了里面,25,面向对象分析与设计&UML,各种转换的区别,进入和退出转换:当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使用进入和退出转换来表示,内部转换:用来处理一些不离开该状态的事件,26,面向对象分析与设计&UML,活动与延迟事件,活动:当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。但是某些时间,你可能希望描述个正在进行的活动。在处于一个状态的同时,对象做着某些工作,并一直继续到被某个事件中断,延迟事件:延迟事件是一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不会丢失,但会被延迟执行。例如,当,E-mail,程序中正在发送第一封邮件时,用户下达发送第二封邮件执令就会被延迟,但第一封邮件发送完成后,这封邮件就会被发送。这种事件就属于延迟事件,27,面向对象分析与设计&UML,复合状态表示法,28,面向对象分析与设计&UML,顺序复合状态图,29,面向对象分析与设计&UML,并发复合状态图,(,三种评测方式,),30,面向对象分析与设计&UML,历史,“一个圆圈中加上字母,H”,,是用来表示历史状态的。,它的含义是:当从状态“结账”和“显示购物车”返回子状态“显示索引信息”时,将进入的是离开时的历史状态。也就是说,转到购物车或结账区之后,再回到“浏览目录”的页面时,其中的内容是不变的,仍然保留原来的信息,31,面向对象分析与设计&UML,子状态机,将子状态机单独定义,并对其进行命名(通常以大写字母开头),然后在需要使用的地方来引用它,32,面向对象分析与设计&UML,绘制状态机图,绘制状态机图的理想步骤是,:寻找主要的状态,确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节,航班机票预订系统,寻找主要状态,:对于航班机票预订系统而言,显然包括的状态主要有,-,在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态,-,对订座而言显然有“部分预订”和“预订完”两种状态,-,而当航班快要起飞时,显然要“预订关闭”,33,面向对象分析与设计&UML,主要有四种状态:无预订、部分预订、预订完以及预订关闭,确定状态间转换,34,面向对象分析与设计&UML,35,面向对象分析与设计&UML,细化状态内的活动与转换,/,使用复合状态,36,面向对象分析与设计&UML,状态机图应用说明,对对象生命周期建模,:主要描述对象能够响应的事件、对这些事件的响以及过去对当前行为的影响,对反应型对象建模,:这个对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,以及每个状态改变时发生的动作,状态机图既可以用来表示一个业务领域的知识,也可以用来描述设计阶段对象的状态变迁,37,面向对象分析与设计&UML,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!