nullnull状态图状态图状态图1.1 什么是状态图
1.2 状态图的要素
1.3 状态图的作用
状态图1.1 什么是状态图1.1 什么是状态图 1. 状态图的概念
状态图(statechart diagram): 用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。
状态:是对象取值和链接的抽象。nullnull 状态图的例子:一个机器
的状态图:一个发货单
的状态图:1.2 状态图的要素1.2 状态图的要素1、事件
是指在确定的时间和位置所发生的对对象起作用的事情。
事件和状态有某种对称性,事件表示时间点,状态表示时间段。
2、状态
是指对象在其生命周期中,满足某些条件、执行某些活动、或等待某些事件时的一个状况。
3、转移
是一个状态向另外一个状态的转换。1.2 状态图的要素1.2 状态图的要素开始状态事件状态结束状态转移货品发货的状态图一个基本的状态图示例一个基本的状态图示例源状态触发条件监护条件动作目标状态转换null•与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,那么将判断壶中是否有水;如果[没水],则仍然处于off状态;如果[有水]则转为on状态,并执行“烧水”动作。
•而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了 。null事件事件 1. 事件的概念
事件(event): 是指在确定的时间和位置所发生的对对象起作用的事情。事件的发生将引起一些动作,使对象发生状态的转移。
活动:是对为响应事件而执行的行为的引用。活动表示法是“/”和活动的名称。
例如:按下右键/菜单显示,鼠标移动/高亮显示的菜单项更新
null3. 事件的类型
信号是指从一个对象到另一个对象的明确的单向信息流动
① 信号事件:是指发送或接收信号的事件。2. 事件的描述
格式:
event-name [‘(‘parameters’)’] [‘[’guard-condition’]’] [’/’action]
字符串,常为接收对象类中的一个操作。null ② 变化事件:因满足某种条件而引起的事件,变化条件用when表示。 事件null③ 时间事件:满足某一时间表达式而引起的事件,时间事件用after、when表示。 事件2 状态2 状态 1. 状态的概念
状态(state): 是指对象在其生命周期中,满足某些条件、执行某些活动、或等待某些事件时的一个状况。
状态指的是对象的状态。例如:
● 发票(对象)被支付(状态)
● 小车(对象)正在停着(状态)
● 发动机(对象)正在工作(状态)
● 电灯(对象)开着(状态)null 2.状态的表示
● 状态的表示:用圆角的矩形框表示状态。
● 状态的要素:
1. 状态名 (黑体、首字母大写)
2. do活动(内部转移 :不改变对象的状态,也不执行entry和exit动作)
3. 进入、退出动作
4. 子状态 (嵌套在另外一个状态中的状态)
do活动do活动(内部转移 :不改变对象的状态,也不执行entry和exit动作)
例如:警示灯在复印机卡纸状态下会闪烁。
表示方法:do/flash warning light进入、退出动作进入、退出动作活动绑定在某状态的入口和出口
表示方法:在状态框内用entry/ 和exit/表示null 3. 状态的类型
① 初始状态(只能一个)
② 原子状态
③ 终结状态(可以0或多个)
④ 组合状态
⑤ 历史状态null ④ 组合状态
组合状态:含有子状态的状态,用于描述对象的某个复杂状态。组合状态也可以有初态和终态。
子状态:被嵌套在另外一个状态中的状态,可分为顺序子状态和并发子状态。null(1) 顺序子状态
对象在任何时刻只能处于组成状态的某一个子状态,即多个子状态之间是互斥的,不能同时存在。例:IC电话卡的状态有空闲、维护、工作。其中,工作就是组合状态。工作状态包括验卡、拨号、通话、挂断。
每个嵌套状态会接收其组合状态的输出迁移。nullIC卡电话机状态图null (2)并发子状态
并发子状态:指一个对象在同一时刻可以处于多种子状态。
聚合并发
对象内的并发 null聚合并发装配件的状态图由一系列状态图组成,每个部件对应一个状态图。部件状态可能会发生交互。
例如:汽车的状态显示成部件状态的聚合:点火装置、传动装置、加速器、刹车。null聚合并发null对象内的并发
某些对象可以被划分成属性或链接的子集,每一个都有自己的子图。
子图并不需要独立,同一事件会在一个以上的子图内引起迁移。
例如:汽车的运行状态null对象内的并发车的 "运行" 状态顺序子状态顺序子状态并发子状态and关系or关系null ⑤历史状态
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
组合状态退出时所处的子状态,以便再次进入从这个状态开始工作。历史状态(History State)
代表上次离开组合状态时的最后一个活动子状态。
历史状态用含有字母“H”的小园圈表示。
每当转移到组合状态中的历史状态时,对象便恢复上次离开该组合状态时最后一个子状态,并执行入口动作。
历史状态是一个伪状态的图形标记,
只能作为组合状态中的子状态,不能在顶层状态图中使用。3 转移(迁移)3 转移(迁移)转移的概念
转移(transition): 是一个状态向另外一个状态的转换。对象处在源状态时,发生一个事件,如果条件满足,则执行相应的动作,对象由源状态转移到目标状态。
转移用箭头表示,如果没有标注事件,则本转移为自动转移。
警戒条件:是为了要让转移发生而必须为真的布尔表达式。
例如:当你早上出门的时候(事件),如果温度在冰点以下(条件),那你要戴手套(下一状态)。表示:出门[冰点以下]转移3 转移3 转移 2. 转移的类型
① 自转移: 源状态和目标状态为同一状态的转移。 自转移注意内部转移和自转移的区别:自转移会激发状态的入口动作和出口动作,而内部转移不会。null ② 自动转移: 一个 状态根据本状态的有关情况,自动触发进入目标状态,在转移上没有事件。 自动转移 ③ 条件转移: 通过分支判断所确定的转移。 条件转移1.3 状态图的作用1.3 状态图的作用 状态图: 用来描述一个对象在其生命周期中所表现出来的状态和行为。
当在系统建模过程中需要描述某个事物或对象的不同状态,以及状态之间转移的事件和动作时,用状态图。
但状态图并不是对每一个对象都需要的。
如果某个过程比较复杂,那么我们可以用状态图表示出来,就是对这个对象更完整的描述。
状态图建模技术状态图建模技术 建模的时候要找出对象所处的状态、触发状态改变的动作,以及对象状态改变时应执行的动作
具体步骤如下:
1、找出适合用模型描述其行为的类。
2、确定对象可能存在的状态。
3、确定引起状态转换的事件。
4、确定转换进行时对对象执行的相应动作。
5、对建模的结果进行相应的精化和细化。实例1:图书馆中“图书”的状态图实例1:图书馆中“图书”的状态图教学进程具体步骤如下:
1、找出适合用模型描述其行为的类。
2、确定对象可能存在的状态。
3、确定引起状态转换的事件。
4、确定转换进行时对对象执行的相应动作。
5、对建模的结果进行相应的精化和细化。实例1:图书馆中“图书”的状态图实例1:图书馆中“图书”的状态图教学进程图书状态有:订购、编目、馆藏、借出。实例2:手机的状态图实例2:手机的状态图教学进程手机对象的各种场景
1、呼叫对方成功
2、呼叫对方不成功
3、被呼叫,接听
4、被呼叫,未听见铃声
5、被呼叫,拒绝接听手机状态图手机状态图实例3:一个股票订单的状态图实例3:一个股票订单的状态图教学进程实例4:OS中“进程”的状态图实例4:OS中“进程”的状态图教学进程实例4:OS中“进程”的状态图实例4:OS中“进程”的状态图教学进程练习:
1、绘制打印机的状态图
2、绘制电梯的状态图
3、绘制电脑状态图
练习:
1、绘制打印机的状态图
2、绘制电梯的状态图
3、绘制电脑状态图
教学进程null