您好,欢迎访问三七文档
状态图4.1.1什么是状态图4.1.2状态图的要素4.1.3状态图的作用第4章4.1状态图4.1.1什么是状态图1.状态图的概念状态图(statechartdiagram):用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。状态:是对象取值和链接的抽象。状态图的例子:一个机器的状态图:一个发货单的状态图:4.1.2状态图的要素1、事件是指在确定的时间和位置所发生的对对象起作用的事情。事件和状态有某种对称性,事件表示时间点,状态表示时间段。2、状态是指对象在其生命周期中,满足某些条件、执行某些活动、或等待某些事件时的一个状况。3、转移是一个状态向另外一个状态的转换。4.1.2状态图的要素开始状态事件状态结束状态转移货品发货的状态图事件1.事件的概念事件(event):是指在确定的时间和位置所发生的对对象起作用的事情。事件的发生将引起一些动作,使对象发生状态的转移。活动:是对为响应事件而执行的行为的引用。活动表示法是“/”和活动的名称。例如:按下右键/菜单显示,鼠标移动/高亮显示的菜单项更新3.事件的类型信号是指从一个对象到另一个对象的明确的单向信息流动①信号事件:是指发送或接收信号的事件。事件2.事件的描述•格式:event-name[‘(‘parameters’)’][‘[’guard-condition’]’][’/’action]字符串,常为接收对象类中的一个操作。②变化事件:因满足某种条件而引起的事件,变化条件用when表示。事件③时间事件:满足某一时间表达式而引起的事件,时间事件用after、when表示。事件2状态1.状态的概念状态(state):是指对象在其生命周期中,满足某些条件、执行某些活动、或等待某些事件时的一个状况。状态指的是对象的状态。例如:●发票(对象)被支付(状态)●小车(对象)正在停着(状态)●发动机(对象)正在工作(状态)●电灯(对象)开着(状态)2.状态的表示●状态的表示:用圆角的矩形框表示状态。●状态的要素:1.状态名(黑体、首字母大写)2.do活动(内部转移:不改变对象的状态,也不执行entry和exit动作)3.进入、退出动作4.子状态(嵌套在另外一个状态中的状态)状态名进入动作退出动作内部转移动作(内部转移:不改变对象的状态,也不执行entry和exit动作)例如:警示灯在复印机卡纸状态下会闪烁。表示方法:do/flashwarninglightdo活动状态名进入动作退出动作内部转移动作活动绑定在某状态的入口和出口表示方法:在状态框内用entry/和exit/表示进入、退出动作状态名进入动作退出动作内部转移动作3.状态的类型①初始状态(只能一个)②原子状态③终结状态(可以0或多个)④组合状态⑤历史状态④组合状态组合状态:含有子状态的状态,用于描述对象的某个复杂状态。组合状态也可以有初态和终态。子状态:被嵌套在另外一个状态中的状态,可分为顺序子状态和并发子状态。(1)顺序子状态对象在任何时刻只能处于组成状态的某一个子状态,即多个子状态之间是互斥的,不能同时存在。例:IC电话卡的状态有空闲、维护、工作。其中,工作就是组合状态。工作状态包括验卡、拨号、通话、挂断。每个嵌套状态会接收其组合状态的输出迁移。IC卡电话机状态图组合状态子状态(2)并发子状态并发子状态:指一个对象在同一时刻可以处于多种子状态。•聚合并发•对象内的并发聚合并发装配件的状态图由一系列状态图组成,每个部件对应一个状态图。部件状态可能会发生交互。例如:汽车的状态显示成部件状态的聚合:点火装置、传动装置、加速器、刹车。聚合并发汽车点火装置传动装置加速器刹车对象内的并发某些对象可以被划分成属性或链接的子集,每一个都有自己的子图。子图并不需要独立,同一事件会在一个以上的子图内引起迁移。例如:汽车的运行状态对象内的并发车的运行状态顺序子状态顺序子状态并发子状态RunningHighSpeedLowSpeedBackwordForwardand关系or关系⑤历史状态记录组合状态退出时所处的子状态,以便再次进入从这个状态开始工作。历史状态3转移(迁移)1.转移的概念转移(transition):是一个状态向另外一个状态的转换。对象处在源状态时,发生一个事件,如果条件满足,则执行相应的动作,对象由源状态转移到目标状态。转移用箭头表示,如果没有标注事件,则本转移为自动转移。警戒条件:是为了要让转移发生而必须为真的布尔表达式。例如:当你早上出门的时候(事件),如果温度在冰点以下(条件),那你要戴手套(下一状态)。表示:出门[冰点以下]转移3转移2.转移的类型①自转移:源状态和目标状态为同一状态的转移。自转移注意内部转移和自转移的区别:自转移会激发状态的入口动作和出口动作,而内部转移不会。②自动转移:一个状态根据本状态的有关情况,自动触发进入目标状态,在转移上没有事件。自动转移③条件转移:通过分支判断所确定的转移。条件转移4.1.3状态图的作用状态图:用来描述一个对象在其生命周期中所表现出来的状态和行为。当在系统建模过程中需要描述某个事物或对象的不同状态,以及状态之间转移的事件和动作时,用状态图。但状态图并不是对每一个对象都需要的。状态图建模技术建模的时候要找出对象所处的状态、触发状态改变的动作,以及对象状态改变时应执行的动作具体步骤如下:1、找出适合用模型描述其行为的类。2、确定对象可能存在的状态。3、确定引起状态转换的事件。4、确定转换进行时对对象执行的相应动作。5、对建模的结果进行相应的精化和细化。实例1:图书馆中“图书”的状态图教学进程具体步骤如下:1、找出适合用模型描述其行为的类。2、确定对象可能存在的状态。3、确定引起状态转换的事件。4、确定转换进行时对对象执行的相应动作。5、对建模的结果进行相应的精化和细化。实例1:图书馆中“图书”的状态图教学进程图书状态有:订购、编目、馆藏、借出。实例2:手机的状态图教学进程手机对象的各种场景1、呼叫对方成功2、呼叫对方不成功3、被呼叫,接听4、被呼叫,未听见铃声5、被呼叫,拒绝接听手机状态图实例3:一个股票订单的状态图教学进程实例3:一个股票订单的状态图教学进程实例4:OS中“进程”的状态图教学进程实例4:OS中“进程”的状态图教学进程实例5:盘点状态图•环球宇宙贸易公司的仓库管理部门固定的时间要执行各仓库的盘点工作,其盘点的方式是使用盘点器(掌上型数据收集器)跟公司的主要数据库服务器(Databaseserver)利用联机网络在线联接或者无线通讯联接。执行实时联机更新环境,其执行程序说明如下A、联机环境建立盘点使用盘点器(掌上型数据收集器)与公司的计算机设备联机,建立实时的在线处理环境。B、仓管人员使用盘点器开始盘点货品(利用盘点器读去产品条形码(Barcode))C、读入后、盘点器上会触发程序事件,检查读取的产品是否已在产品主文件和库文件中建立(实时联机处理)D、若不存在、则新增该产品的主文件和库存住文件中E、将产品的盘点数量写入数据库主文件的盘存字段中F、继续盘点下一产品G、全部盘完,则关闭盘点器和联机实战状态图
本文标题:UML状态图
链接地址:https://www.777doc.com/doc-5223580 .html