UML状态图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) 顺序子状态 对象在任何时刻只能处于组成状态的某一个子状态, 即多个子状态之间是互斥的,不能同时存在。 例:IC电话卡的状态有空闲、维护、工作。其中, 工作就是组合状态。工作状态包括验卡、拨号、通 话、挂断。
每个嵌套状态会接收其组合状态的输出迁移。
IC卡电话机状态图
组合 状态
子状态
(2)并发子状态
第 章
4
状态图
4.1 状态图
4.1.1 什么是状态图 4.1.2 状态图的要素 4.1.3 状态图的作用
4.1.1 什么是状态图
1. 状态图的概念 状态图(statechart diagram): 用来描述 一个特定的对象所有可能的状态,以及由 于各种事件的发生而引起的状态之间的转 移和变化。
状态:是对象取值和链接的抽象。
● 电灯(对象)开着(状态)
2.状态的表示
● 状态的表示:用圆角的矩形框表示状态。 ● 状态的要素: 1. 状态名 (黑体、首字母大写) 2. do活动(内部转移 :不改变对象的状态,也不执 行entry和exit动作) 3. 进入、退出动作 4. 子状态 (嵌套在另外一个状态中的状态)
状态名
进入动作
转移
3 转移
2. 转移的类型 ① 自转移: 源状态和目标状态为同一状态的转移。
自转移
注意内部转移和自转移的区别:自转移会激发状态的入 口动作和出口动作,而内部转移不会。
② 自动转移: 一个 状态根据本状态的有关情况,自
动触发进入目标状态,在转移上没有事件。
自动转移
③ 条件转移: 通过分支判断所确定的转移。
历史 状态
3 转移(迁移)
1.转移的概念 转移(transition): 是一个状态向另外一个状态的转换。对象处在源 状态时,发生一个事件,如果条件满足,则执行相应的动作,对象由源状态 转移到目标状态。 转移用箭头表示,如果没有标注事件,则本转移为自动转移。 警戒条件:是为了要让转移发生而必须为真的布尔表达式。 例如:当你早上出门的时候(事件),如果温度在冰点以下(条件), 那你要戴手套(下一状态)。表示:出门[冰点以下]
① 信号事件:是指发送或接收信号的事件。
事件
② 变化事件:因满足某种条件而引起的事件,变化条件用 when表示。
事件
③ 时间事件:满足某一时间表达式而引起的
事件,时间事件用after、when表示。
事件
2 状态
1. 状态的概念 状态(state): 是指对象在其生命周期中,满足某些条 件、执行某些活动、或等待某些事件时的一个状况。 状态指的是对象的状态。例如: ● 发票(对象)被支付(状态) ● 小车(对象)正在停着(状态) ● 发动机(对象)正在工作(状态)
内部转移 动作
退出动作
do活动
(内部转移 :不改变对象的状态,也不执行 entry和exit动作)
例如:警示灯在复印机卡纸状态下会闪烁。 表示方法:do/flash warning light
状态名 进入动作
内部转移 动作
退出动作
进入、退出动作
活动绑定在某状态的入口和出口 表示方法:在状态框内用entry/ 和exit/表示
状态名 Байду номын сангаас入动作
内部转移 动作
退出动作
3. 状态的类型 ① 初始状态(只能一个) ② 原子状态 ③ 终结状态(可以0或多个) ④ 组合状态 ⑤历史状态
④ 组合状态
组合状态:含有子状态的状态,用于描述对象的 某个复杂状态。组合状态也可以有初态和终态。
子状态:被嵌套在另外一个状态中的状态,可分 为顺序子状态和并发子状态。
条件转移
4.1.3 状态图的作用
状态图: 用来描述一个对象在其生命周期中所 表现出来的状态和行为。
当在系统建模过程中需要描述某个事物或对 象的不同状态,以及状态之间转移的事件和动 作时,用状态图。
但状态图并不是对每一个对象都需要的。
状态图建模技术
建模的时候要找出对象所处的状态、触发状 态改变的动作,以及对象状态改变时应执行的动 作
子图并不需要独立,同一事件会在一个 以上的子图内引起迁移。
例如:汽车的运行状态
对象内的并发
Running
Forward Backword
顺序子状态
并发子状态
HighSpeed LowSpeed
顺序子状态
or关系
and关系
车的 "运行" 状态
⑤历史状态
记录组合状态退出时所处的子状态,以便再次进入 从这个状态开始工作。
状态图的例子:
一个机器 的状态图:
一个发货单 的状态图:
4.1.2 状态图的要素
1、事件
是指在确定的时间和位置所发生的对对象起作 用的事情。 事件和状态有某种对称性,事件表示时间点, 状态表示时间段。
2、状态
是指对象在其生命周期中,满足某些条件、执 行某些活动、或等待某些事件时的一个状况。
3、转移
具体步骤如下: 1、找出适合用模型描述其行为的类。
2、确定对象可能存在的状态。
3、确定引起状态转换的事件。
4、确定转换进行时对对象执行的相应动作。
5、对建模的结果进行相应的精化和细化。
实例1:图书馆中“图书”的状态图
并发子状态:指一个对象在同一时刻可以 处于多种子状态。 •聚合并发
•对象内的并发
聚合并发 装配件的状态图由一系列状态图组成, 每个部件对应一个状态图。部件状态可 能会发生交互。 例如:汽车的状态显示成部件状态的聚 合:点火装置、传动装置、加速器、刹 车。
聚合并发
汽车
点火装置
传动装置
加速器
刹车
对象内的并发 某些对象可以被划分成属性或链接的子 集,每一个都有自己的子图。
例如:按下右键/菜单显示,鼠标移动/高亮显 示的菜单项更新
2. 事件的描述
• 格式:
event-name [‘(‘parameters’)’] [‘[’guard-condition’]’] [’/’action] 3. 事件的类型
字符串,常为接收对象类中 的一个操作。
信号是指从一个对象到另一个对象的明确的单向信息流 动
是一个状态向另外一个状态的转换。
4.1.2 状态图的要素
事件
开始 状态
转移
状态
货品发货的状态图
结束 状态
事件
1. 事件的概念 事件(event): 是指在确定的时间和位置所发 生的对对象起作用的事情。事件的发生将引起一 些动作,使对象发生状态的转移。
活动:是对为响应事件而执行的行为的引用。 活动表示法是“/”和活动的名称。