资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,状态图,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):,指事物在其生命周期中满足某些条件、执行某些操作或等待某些事件而持续的一种稳定的状况,。,状态,7.1.1,待用,运行,故障,状态机,(state,machine,):,描述一个事物在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。,状态机,7.1.2,状态机,(state,machine,diagram,):,是,UML,用来描述状态机的图,在,UML2.0,版本之前,状态机图被称为状态图。状态机图由状态结点、控制结点和转换边构成。,状态机图,7.1.3,状态结点,控制结点,转换边,状态图,7.2.1,状态的概念,7.2.2,状态的类型,7.2.3,状态的动作,第,7,讲,7.2,状态,状态,(state):,指事物在其生命周期中满足某些条件、执行某些操作或等待某些事件而持续的一种稳定的状况,。,状态表示为:,状态名若用英文,第一个字母要大写。,状态的概念,7.2.1,可分为以下三类:,简单状态,:也被称为原子状态,不包含子状态和子机状态。,复合状态,:内部包含子状态的状态。,子机状态,:状态机作为子状态的状态。,状态的类型,7.2.2,可分为以下三类:,简单状态,:,复合状态,:,子机状态,:,状态的类型,7.2.2,一个状态内部所包括的动作或事件,,在当前 状态下,状态机会执行这些动作,可以有:,入口动作,:进入该状态自动执行的第一个动作,表示为:,entry/do,shing,,例如,entry/do,dooropen,。,出口状态,:退出该状态自动执行的最后一个动作,表示为:,exit/do,shing,例如,,exit/door close,。,内部变迁,:在该状态下做的动作,不引起状态变化。表示为:,do/thing,,例如,,do/check up on work,。,延迟事件,:在该状态下,如果发生某事件,将被延时处理。表示为:,事件,/defer,,例如,,print/defer(15),,表示打印事件将被延迟,15,秒。,状态的动作,7.2.3,状态图,7.3.1,状态转换的概念,7.3.2,状态转换的三要素,第,7,讲,7.3,状态的转换,状态转换(,state transition,),:,是两个状态之间的一种有向关系,表示从源状态转换到目标状态。状态转换用一个带箭头的实线表示,箭头由源状态指向目标状态。,状态转换的概念,7.3.1,触发事件,:触发状态转换的条件,如开门,入库,开电源等。如果没有触发事件,指源状态执行完后,自动转换到目标状态。,状态转换的要素,7.3.2,触发事件,:,监护条件,:用来监护状态转换。在事件发生后,如果监护条件为真,则执行动作,并转换状态。如果监护条件为假,则不执行转换动作,也不实施状态转换。,如果没有监护条件,则不作条件判断,在事件发生后直接执行转换动作。,状态转换的要素,7.3.2,触发事件,:,监护条件,:,转换动作,:,在事件发生后所执行的一组动作,并把状态由源状态转换到目标状态。在动作前置一个“,/”,。,状态转换的要素,7.3.2,状态转换的要素,7.3.2,状态图,7.4.1,事件的概念,7.4.2,事件的性质,7.4.3,事件的类型,7.4.4,几种事件,第,7,讲,7.4,事件,事件(,event,),:,指所发生的瞬时事情,能引起状态变换。,例如:,按“开关”,能开启机器,“双击鼠标”打开窗口。,事件的概念,7.4.1,事件的性质,7.4.2,瞬时态,:事件在瞬时发生,没有时间延迟。,原子性,:事件不可再分割,事件的类型,7.4.3,按发生的位置分:,外部事件,:在系统外部发生的事件,例如,按按钮就在外部发生。,内部事件,:在系统内部发生的事件,例如,溢出事件,按事件的性质分:,调用事件,,信号事件,,变化事件,,时间事件,几种事件,7.4.4,调用事件,(call event),:,表示发送对象发给接收对象的调用消息的接收消息事件,并由该事件触发接收对象的状态转换。,几种事件,7.4.4,信号事件,(,signal,event),:,表示发送对象发给接收对象的信号消息的接收消息事件,并由该事件触发接收对象的状态转换。,几种事件,7.4.4,改变事件,(,change,event),:,表示当布尔表达式的值改变为真时所激发的事件。系统将一直检测改变事件中的布尔表达式的值,只要它的值改变为真,该事件就被激发。改变事件一般用关键字,when,开头的布尔表达式表示,当表达式的值由假变为真时,事件将发生。,例如:,when(,systemtime,=12:00),,表示当系统时钟到达,12,点时,激发该事件。,几种事件,7.4.4,时间事件,(,time,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,机的状态机图:,复合状态的含义,7.5.1,复合状态的性质,7.5.2,事物在复合状态时,意味着它处于其中一个子状态;事物如果在某一个复合状态的子状态,它一定处于该复合状态。,复合状态允许嵌套,子状态可以是简单状态、复合状态,也可以是子机状态。,复合状态的性质,7.5.2,复合状态具有始态,转入一个复合状态等价于转入其始态。,复合状态可以有终态,达到复合状态的终态,将从复合状态转出。,复合状态转换的类型,7.5.3,外部转换,:在复合状态与其他状态之间发生的状态转换,以及复合状态的自转换。外部转换表示离开一个复合状态进入另外一个状态,或者进入复合状态自身。,局部转换,:,复合状态内部子状态之间的转换,或者复合状态转换到其中某个子状态。,状态图,7.6.1,并发状态的含义,7.6.2,同步状态,第,7,讲,7.6,并发状态,并发状态,:,在一个状态机或一个复合状态中,如果同时存在相互可以独立的几组状态,则称这几组状态是并发状态,(concurrent state),。,例如:,并发状态的含义,7.6.1,同步状态,:,指多个并发区间中的状态在转换过程彼此存在同步关系,一个区间中的一个转换需要等到另一个区间中的某个转换发生后才能进行。,例如:,同步状态,7.6.2,状态图,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):,简称始态,表示状态机的起始,始态用实心园表示。一个复合状态或子机状态也有其始态。一个状态机可以有多个始态,存在多个始态的状态机一定存在状态的并发,在并发状态的一个区间只能有一个始态。,初始状态表示一个状态机从此结点开始,但事物不会此状态停留,会立即转换到初始状态所连接的第下一个状态。,初始状态只有输出,没有输入。,初始状态,7.7.1,分叉,(fork):,指将一个转换分成两个或多个转换,用来描述需要并发的状态。,汇合,(,join,):,指将从并发状态来的转换合并形成一个转换,用来描述多个并发状态的控制同步。,分叉与汇合,7.7.2,汇接,(,junction,):,用来汇接多个转换,以简化转换路径。汇接的符号与初始状态的符号相同,但它允许连接多个转换的输入和多个输出。,汇接,7.7.3,选择,(,choice,):,用来实现根据条件判断,转换到不同目标状态。用菱形表示选择,有一个输入边到选择,多个输出边由选择到目标状态结点。,选择,7.7.4,历史状态,(,history state,):,为一个状态机或复合状态提供了一种在退出状态时记忆当前活动所处的子状态,并能够返回到该子状态的机制。,历史状态,7.7.5,历史状态,终止状态,(,final,state,):,被简称为终态,表示一个状态机、一个复合状态,或一个区间状态的结束。终止状态用“牛眼”符号表示。,终止状态,7.7.6,终止状态,入口点,(,entrypoint,):,是其它状态转换到一个状态机或复合状态的始态的一个进入点。入口点用小圆圈表示,被放置到状态机或复合状态的边界上。,出口点,(,exitpoint,):,是状态机或复合状态到其他状态的一个转出点。出口点用带叉的小圆圈表示,也被放置到状态机或复合状态的边界上。,入口点和出口点,7.7.7,入口点和出口点的例子,:,状态图,第,7,讲,7.7,子机状态,子机状态,(,submachine state,):,是指把一个状态机作为另外一个状态机的子状态。包含子机状态的状态机被称为母状态机。母状态机是以引用的方式把一个已经存在的状态机作为自己子状态,在母状态机中子机状态作为一个子状态,但它自身仍是一个完整的状态机。,状态图,7.8.1,状态机的概念,7.8.2,状态机的用途,7.8.3,状态机建模规则,7.8.4,状态机建模,7.8.5,状态机与其它的比较,第,7,讲,7.8,状态机,状态机,(state,machine,):,描述一个事物在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。,状态机的概念,7.8.1,对象状态建模,:,用例状态建模,:,交互状态建模,:,构件状态建模,:,状态机的用途,7.8.2,1,对象状态建模,:,描述一个对象在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。,根据其用途,可分为,行为状态机,和,协议状态机,。,状态机的用途,7.8.2,行为状态机:,描述一个对象在其生命周期中可能处的各种状态,以及因事件的触发而引起状态之间转换的行为规则与方式,。前面的例子全部属于行为状态机,状态机的用途,7.8.2,协议状态机:,描述一个对象在其生命周期中可能处的状态,以及因对对象所定义操作的一种允许的调用序列,使得对象可能经历的状态变化过程。,状态机的用途,7.8.2,2,用例状态建模,:,一个用例在其执行过程中也会处于不同的状态,可以用状态机描述用例的状态,及其转换。,状态机的用途,7.8.2,登录,3,交互状态建模,:,一个交互描述为完成某项功能,系统中若干个对象相互交互消息的过程。一个交互过程也会存在多种状态,及其状态的转换,可以用状态机图来描述交互状态的转换。,状态机的用途,7.8.2,订货交互的状态机:,4,构件状态建模,:,构件封装了多个类,构件在其生命周期中也会存在不同状态,可以用状态机对构件的状态及其转换进行建模。,状态机的用途,7.8.2,状态机建模应该遵循下面规则:,1,)初始状态只有转出,没有转入。初始状态的转出无触发事件、无监护条件。,2,)状态机最少应该有一个初态,如果存在并发可以有多个初始状态。,3,)状态机最少应该有一个终态,允许存在多个终态。,4,)除初态外,其他所有状态都至少应具有一个转入。,5,)除终态外,其他所有状态都至少应具有一个转出。,6,)一个状态机中不允许存在两个同名的状态。,状态机建模规则,7.8.3,状态机建模的基本步骤:,1,)确定对哪一个类元进行建模。,2,)从类元实例的创建(始态)到被撤销(终态),确定实例可能经历的所有状态。,3,)分析实例从一种状态转换到另外一种状态可能发生的事件。,4,)确定当触发事件发生时,实例应该执行的动作。,5,)对建模结果进行精化和细化。,6,)检查与验证状态机图。,状态机建模,7.8.4,1,)状态机图用于事物状态及其变换的建模,;,活动图用于过程流程建模。,2,)状态结点表示事物一个状态,活动结点表示一个过程中的一个动作。,3,)交互图用于多个对象为完成一个任务的交互关系,状态机图表示一个事物所处的状态,及其变换。,4,)可以用状态机描述一个交互过程中所处的状态及其转换,用活动图描述一个交互执行的流程。,状态机与其他的图比较,7.8.5,状态图,7.9.1,手机状态机图,7.9.2,电梯状态机图,7.9.3,银行账户状态机图,7.9.4,状态机建模,7.9.5,状态机与其它的比较,第,7,讲,7.9,状态机图例子,手机状态机图,7.9.1,电梯状态机图,7.9.2,银行账户状态机图,7.9.3,IC,卡电话机状态机图,7.9.4,付款确认,已确认,订货状态机图,7.9.5,教学进程,电子钟状态机图,7.9.6,教学进程,操作系统进程状态机图,7.9.7,小结,教学进程,8.1,状态图,8.1.1,状态图的概念,8.1.2,状态图的要素,8.1.3,状态,8.1.4,转移,8.1.5,事件,8.1.6,状态图的应用,第,7,讲 状态图,重要知识点,8.2,组合结构图,8,.2.1,组合结构图的提出,8,.2.2,组合结构图的概念,8.2.3,组合结构图的要素,8.2.3,协作,8.3,时序图,8.3.1,概述,8.3.2,时序图,8.3.3,时序图的作用,1.,填空,状态图,用来描述一个特定的,(),所有可能的状态,以及由于各种事件的发生而引起的状态之间的,(),和变化。,问题:,?,1.,填空,状态图,用来描述一个特定的,(,对象,),所有可能的状态,以及由于各种事件的发生而引起的状态之间的,(,转移,),和变化。,答案:,!,问题:,教学进程,2,、在状态图中可以表示的概念有(),.,(多选),A,动作,B,事件,C,转移,D,用例,?,答案:,教学进程,2,、在状态图中可以表示的概念有(),.,(多选),A,动作,B,事件,C,转移,D,用例,!,问题:,教学进程,3,、在下面的符号和概念之间连线。,A,接口,B,开始状态,C,实体类,D,结束状态,?,答案:,教学进程,3,、在下面的符号和概念之间连线。,A,接口,B,开始状态,C,实体类,D,结束状态,!,问题:,教学进程,4,、说说事件与转移的区别。,?,答案:,教学进程,4,、说说事件与转移的区别。,事件:特定时间发生的事情,可引起对象状态的转移。,转移:一个状态到另外一个状态的转换。,!,问题:,教学进程,5,、判断下面说法的正确性,:,A,用例图用于结构建模,B,类图描述软件的状态结构,C,对象图是软件模型不可缺少的图形,D,状态图建模必不可少,?,答案:,教学进程,5,、判断下面说法的正确性,:,A,用例图用于结构建模,B,类图描述软件的状态结构,C,对象图是软件模型不可缺少的图形,D,状态图建模必不可少,!,问题:,教学进程,6,、说说活动图的三个作用。,?,答案:,教学进程,6,、说说活动图的三个作用。,A,描述业务流程,B,描述工程组织,C,描述算法流程,!,问题:,教学进程,7,、如果要对一个企业的工作流程建模,下面四个图中()是最有用的。,A,交互图,B,活动图,C,状态图,D,类图,?,答案:,教学进程,7,、如果要对一个企业的工作流程建模,下面四个图中()是最有用的。,A,交互图,B,活动图,C,状态图,D,类图,!,问题:,教学进程,8,、下面说法正确的是,:,A,状态图可以用来描述用例状态变换,B,状态图可以用来描述多个对象之间的关系,C,活动图可以用来描述对象操作算法的流程,D,活动图可以用来描述多个用例间多个关系,?,答案:,教学进程,8,、下面说法错误的是,:,A,状态图可以用来描述用例状态变换,B,状态图可以用来描述多个对象之间的关系,C,活动图可以用来描述对象操作算法的流程,D,活动图可以用来描述多个用例间多个关系,!,报告题:,1,、画出反映电话机工作的状态图,教学进程,
展开阅读全文