您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > uml建模-状态机图-
1第10章状态机图10.1状态机图概述10.2状态机图基本元素10.3建立状态机图10.4状态机图应用范围小结210.1状态机图概述状态机图用来对系统的动态行为建模;描述单一对象在其生命期内受各种事件的影响而发生的状态变化;状态机图是展示状态与状态转换的图,可以描述对象的行为,也可以描述用例、协作和方法甚至整个系统的动态行为。310.2状态机图基本元素图10-1状态机图初始状态终止状态中间状态事件转换监护条件活动动作分支4一、状态(state)1、状态对象生命周期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。说明:对象在任何时候都会处于某种状态中,所有对象都有状态。对象所处的状态决定了它如何响应所检测到的事件或所接受的消息。通常,事件使对象从一种状态转向另一种状态(即状态的转移)。5例:CD播放器6一、状态(state)2、状态的表示状态名称入口动作出口动作内部转换内部活动可推迟事件状态示例7动作(Action)可执行的原子计算。不可中断,其执行时间可忽略不计。两种特殊动作:进入动作(entryaction):进入某状态时执行的动作,用“entry/要执行的动作”表示。退出动作(exitaction):退出某状态时执行的动作,用“exit/要执行的动作”表示。8活动对象处于某个状态时,对象进行的一些列动作。表示活动的格式为“do/动作名”9一、状态(state)3、状态的分类初态终态简单状态(中间状态)组合状态历史状态10显示状态图中状态机的执行(execution)的开始。一个状态机只能有一个初态。如果一个状态机用多张图描述,则多张图用同一个初态。如果用了组合状态,则组合状态中可有初态。(1)初始状态(StartState)11表示一个最后的或者终端状态。(2)终止状态(EndState)一张图中终态可以有多个,也可以没有。12(3)简单状态组成:状态名进入/退出动作内部转移----不导致状态改变的转换,不会执行entry和exit动作。内部活动延迟事件----延迟到下一状态处理的事件。13例:状态示例EnterPasswordentry/setecho*exit/setechonormaleventkeypress/handlecharactereventhelp/displayhelpeventsave/deferdo/getpassword14含有子状态的状态称为组合状态。(4)组合/嵌套状态15两种类型:顺序子状态—复合状态包含的多个子状态之间是互斥的;—复合状态只包含一个状态机。并发子状态—复合状态包含两个或多个并发的子状态机。(4)组合/嵌套状态16两种类型:并发子状态顺序子状态(4)组合/嵌套状态17复合状态的表示法有2两种:(1)将子状态机嵌入表示状态的圆角矩形中(2)在圆角矩形中加入加分解指示符(4)组合/嵌套状态18(5)历史状态使用历史状态,则可以存储退出组合状态时所处的子状态,则返回组合状态时可以直接回到相应的子状态。19二、转换(transition)1、转换两个状态之间的一种关系,表示对象在第一个状态中执行一定的动作,并在某个特定事件发生而且满足某个条件时进入第二个状态。转换进入的状态称为活动状态,转换离开的状态变变为非活动状态。20二、转换(transition)2、转换的格式事件(参数)[条件]/动作Help[len(PSW)6]/verifyPSW.help()每个转移只允许一个事件,一个事件只允许一个动作。21二、转换(transition)3、转换的分类外部转换内部转换自动转换复合转换22一种改变对象状态的转换,用从源状态到目标状态的箭头表示。(1)外部转换UsedUnusedMaintainingThetrainstopThetraingorunningSomebodygointoSomebodygointoSomebodygoout23有一个源状态但没有目标状态,转换后的状态仍是它本身。(2)内部转换24在没有外部事件的作用下,对象执行了某些活动后,自然而然地完成的转换。自动转换是离开某个状态后重新进入原先的状态,它会激发状态的入口动作和出口动作的执行。(3)自动转换25复合转换由简单转换组成,通过分支判定,把多个简单转换组合在一起。(4)复合转换NewStateNewState2NewState3NewState4NewState5Event1[Condition1]/Action1[Condition2]/Action2[Condition3]/Action3[Condition4]/Action4[Condition5]/Action5[Condition6]/Action626三、事件(Event)1、事件是对一个时间和空间上占有一定位置的有意义的事情的规格说明。2、事件的类型信号事件调用事件变化事件时间事件延迟事件27所谓信号,是指由一个对象异步地发送、并由另外一个对象接收的一个已命名的对象。信号事件表示对象接收到某个信号。(1)信号事件(signalevent)信号可以作为状态机中一个状态转换的动作而被发送,也可作为交互中的一个消息发送。28一个对象请求调用某个对象的成员方法;是一种同步机制。(2)调用事件(callevent)OfflineOnlinelogIn(UserID,Password)29某个指定属性值为真时,事件得到触发。用关键字When,后面跟布尔表达式。When(temperature120)/alerm()(3)变化事件(changeevent)WaitReadwhen(buffer!=null)/notifyUser()30满足某一时间表达式的情况的出现。例如到达某时间或经过了某一时间段。用关键字After或When表示。(4)时间事件(timeevent)IdleActivewhen(date=Feb.14,2009)/alarm()NoMouseMovingLeavingafter(10minutes)31对象处在某状态时外部事件产生了,但没有执行事件,要推迟到另外一个状态才执行的事件。(5)延迟事件(deferredevent)32例:订单处理系统333410.3建立状态机图绘制状态机图的一般步骤是:1.寻找主要的状态;2.寻找外部事件,以便确定状态之间的转换;3.详细描述每个状态和转换;4.把简单状态图转换为复合状态图。3510.3建立状态机图1.寻找主要的状态飞机票有以下4种状态:无预订、部分预订、预订完、预订关闭。(1)在刚确定飞行计划时,显然没有任何预订,且在顾客预订机票之前都将处于“无预订”状态。(2)对于订座而言,有“部分预订”和“预订完”两种状态。(3)当航班快要起飞时,要“预订关闭”。3610.3建立状态机图2.寻找外部事件(1)预订():顾客预订机票。(2)退订():顾客退票。(3)关闭():机票管理员关闭订票系统。(4)取消航班():飞机调度人员取消飞行计划。3710.3建立状态机图3.确定状态间的转换表10-1事件与状态转换源目标无预订部分预订预订完预订关闭无预订预订()不直接转换关闭()部分预订退订()事件发生后,使预订人=0预订(),无空座关闭()预订完不直接转换退订()关闭()预订关闭无转换无转换无转换3810.3建立状态机图确定了状态之间的有效转换,绘制出相应的状态机图,如图10-18所示。3910.3建立状态机图4.详细描述每个状态和转换详细描述后的状态图,见图10-194010.3建立状态机图5.把简单状态图转换为符合状态图转换后的符合状态图,见图10-204110.4状态机图应用范围状态机图主要应用有两种:一是,在对象生命周期内,对一个对象的整个活动状态建模;二是,对反应型对象的行为建模。42实例—成绩管理系统建模Grade对象434445小结介绍了“状态机图”的概念和UML表示法通过例子说明简单状态机图、复合状态的状态机图的概念和阅读方法。通过一个航班机票预订系统来阐述了状态图的构建过程。46思考状态图与交互图的区别状态图与活动图的区别内部转换和自动转换的区别
本文标题:uml建模-状态机图-
链接地址:https://www.777doc.com/doc-7576587 .html