状态图和活动图-文档资料
合集下载
第六章状态图和活动图
(其中 action-expression 可以用到对象本身的属性 和输入事件的参数)
• 例如; entry/setMode(onTrack) exit/setMode(offTrack)
31
绘制状态图
• • • • 寻找主要的状态 确定状态之间的转换 细化状态内的活动与转换 用组合状态来展开细节
14
说明: • 组合状态中也有初始状态和终结状态。 • 从源状态可以转移到组合状态本身,也 可以直接转移到组合状态中的子状态。 • 子状态之间可分为“or”关系和“and”关 系两种。“or”关系说明在某一时刻仅可 到达一个子状态,“and”关系说明复合 状态中在某一时刻可同时到达多个子状 态。
15
32
寻找主要的状态,确定之间的转换
33
细化状态内的活动与转换
34
使用组合状态
35
课程注册系统中的状态图例子
36
类型为RegistrationController的对象的状态图:
37
订单处理系统的例子
38
使用组合状态
39
状态图的工具支持
• 正向工程:根据状态图生成代码。逆向向 工程:理论上可行,但实际上不大可能。 • 所生成的代码示例:
3
状态图的用途
• UML的状态图主要用于:
– 建立一个对象在其生存期间的动态行为 – 表现一个对象所经历的状态序列 – 引起状态转移的事件 – 以及因状态转移而伴随的动作
4
• 状态是对象的一组属性值,这组属性对所发生的 事件具有相同性质的反应。 • 状态图所描述的对象往往具有多个属性,一般状 态图应该在具有以下两个特性的基础上建模:
Signal(信号)
• 所谓信号,是指由一个对象异步地发送、并由 另外一个对象接收的一个已命名的对象。 • 信号是作为对象之间的通信的信息块的规范。 信号是一个显式命名的类元,其目标是对象之 间进行显示通讯,它有一些属性,构成它的信 息。通过一个发送动作,它被显式地从一个对 象发送到另一个对象。 • 信号事件表示对象接收到某个信号。 • 信号可以作为状态机中一个状态转换的动作而 被发送,也可作为交互中一个的消息发送。
• 例如; entry/setMode(onTrack) exit/setMode(offTrack)
31
绘制状态图
• • • • 寻找主要的状态 确定状态之间的转换 细化状态内的活动与转换 用组合状态来展开细节
14
说明: • 组合状态中也有初始状态和终结状态。 • 从源状态可以转移到组合状态本身,也 可以直接转移到组合状态中的子状态。 • 子状态之间可分为“or”关系和“and”关 系两种。“or”关系说明在某一时刻仅可 到达一个子状态,“and”关系说明复合 状态中在某一时刻可同时到达多个子状 态。
15
32
寻找主要的状态,确定之间的转换
33
细化状态内的活动与转换
34
使用组合状态
35
课程注册系统中的状态图例子
36
类型为RegistrationController的对象的状态图:
37
订单处理系统的例子
38
使用组合状态
39
状态图的工具支持
• 正向工程:根据状态图生成代码。逆向向 工程:理论上可行,但实际上不大可能。 • 所生成的代码示例:
3
状态图的用途
• UML的状态图主要用于:
– 建立一个对象在其生存期间的动态行为 – 表现一个对象所经历的状态序列 – 引起状态转移的事件 – 以及因状态转移而伴随的动作
4
• 状态是对象的一组属性值,这组属性对所发生的 事件具有相同性质的反应。 • 状态图所描述的对象往往具有多个属性,一般状 态图应该在具有以下两个特性的基础上建模:
Signal(信号)
• 所谓信号,是指由一个对象异步地发送、并由 另外一个对象接收的一个已命名的对象。 • 信号是作为对象之间的通信的信息块的规范。 信号是一个显式命名的类元,其目标是对象之 间进行显示通讯,它有一些属性,构成它的信 息。通过一个发送动作,它被显式地从一个对 象发送到另一个对象。 • 信号事件表示对象接收到某个信号。 • 信号可以作为状态机中一个状态转换的动作而 被发送,也可作为交互中一个的消息发送。
第6章状态图和活动图
17
2. 事件的描述 事件名称(参数表 事件名称 参数表) 参数表
字符串, 字符串,常为接收对象类中 的一个操作. 的一个操作. 事件的形式参数 ,可以省略
3. 事件的类型 ① 调用事件:是表示对操作的调度.请求调用另一个 调用事件:是表示对操作的调度. 对象的操作,一般是同步调用. 对象的操作,一般是同步调用.
第 章 状态图和活动图
6
6.1 状态图 6.2 活动图 6.3 两种图的比较
1
第 章 状态图和活动图
6
6.1 状态图
6.1.1 什么是状态图 6.1.2 状态图的要素 6.1.3 状态图的作用 6.1.4 绘制状态图
2
6.1.1 什么是状态图
1. 状态图的概念 状态图(statechart diagram): 用来描述 状态图 一个特定的对象所有可能的状态,以及由 一个特定的对象所有可能的状态 以及由 于各种事件的发生而引起的状态之间的转 移和变化. 移和变化.
21
状态的类型
状态的类型 初始状态/结束状态 ① 初始状态 结束状态
初始状态
显示状态图中状态机中的执行的开始. 显示状态图中状态机中的执行的开始. 一个状态机只能有一个初态,因为每一个执行都是从相同的地方开 一个状态机只能有一个初态, 始的.如果一个状态机用多张图描述,则多张图用一个初态; 始的.如果一个状态机用多张图描述,则多张图用一个初态;
事件
20
3. 事件的类型 信号事件:所谓信号,是指由一个对象异步的发送, ④ 信号事件:所谓信号,是指由一个对象异步的发送, 并由另外一个对象接收的一个已命名的对象. 并由另外一个对象接收的一个已命名的对象. 信号事件表示对象接收到某个信号. 信号事件表示对象接收到某个信号. 信号可以作为状态中一个状态转换的动作而被发送, 信号可以作为状态中一个状态转换的动作而被发送, 也可作为交互中一个的消息发送. 也可作为交互中一个的消息发送.
2. 事件的描述 事件名称(参数表 事件名称 参数表) 参数表
字符串, 字符串,常为接收对象类中 的一个操作. 的一个操作. 事件的形式参数 ,可以省略
3. 事件的类型 ① 调用事件:是表示对操作的调度.请求调用另一个 调用事件:是表示对操作的调度. 对象的操作,一般是同步调用. 对象的操作,一般是同步调用.
第 章 状态图和活动图
6
6.1 状态图 6.2 活动图 6.3 两种图的比较
1
第 章 状态图和活动图
6
6.1 状态图
6.1.1 什么是状态图 6.1.2 状态图的要素 6.1.3 状态图的作用 6.1.4 绘制状态图
2
6.1.1 什么是状态图
1. 状态图的概念 状态图(statechart diagram): 用来描述 状态图 一个特定的对象所有可能的状态,以及由 一个特定的对象所有可能的状态 以及由 于各种事件的发生而引起的状态之间的转 移和变化. 移和变化.
21
状态的类型
状态的类型 初始状态/结束状态 ① 初始状态 结束状态
初始状态
显示状态图中状态机中的执行的开始. 显示状态图中状态机中的执行的开始. 一个状态机只能有一个初态,因为每一个执行都是从相同的地方开 一个状态机只能有一个初态, 始的.如果一个状态机用多张图描述,则多张图用一个初态; 始的.如果一个状态机用多张图描述,则多张图用一个初态;
事件
20
3. 事件的类型 信号事件:所谓信号,是指由一个对象异步的发送, ④ 信号事件:所谓信号,是指由一个对象异步的发送, 并由另外一个对象接收的一个已命名的对象. 并由另外一个对象接收的一个已命名的对象. 信号事件表示对象接收到某个信号. 信号事件表示对象接收到某个信号. 信号可以作为状态中一个状态转换的动作而被发送, 信号可以作为状态中一个状态转换的动作而被发送, 也可作为交互中一个的消息发送. 也可作为交互中一个的消息发送.
6.状态机图(状态+活动)
课堂练习(电梯系统的状态图)
带有复杂转换的状态图
补充说明(状态图)
适用情况:
适用于描述跨越多个用例的单个对象行为 不适合描述多个对象之间的行为协作 故需与其他技术(类图、对象图)结合使用
注意事项:
不要花费大量时间和精力为系统中的每个类都 画对应的状态图 开发人员只关心关键类的行为,只需为这些类 建立状态图,帮助理解所研究的问题
方法二:
先对活动进行全局的分析 再将活动分配各具体的对象
建议:
两种方法各有利弊 根据个人习惯和具体情况而定
分类(1.简单活动图)
分类(1.简单活动图)
分类(2.标识泳道的活动图)
泳道(SwimLane):用于有效 地标识每个活动的实施者。 表示方法:
用一条垂直的线将活动分开 每个泳道都有一个唯一的名称 每个活动节点、分支必须只属 于一个泳道;而转换,分叉与 汇合是可以跨泳道的。
状态机图(State machine Diagram)
状态(state):
定义对象在其生命周期中的一种条件或状况 比如:满足某些条件、执行某些活动或等待某些事件 例子:灯的开闭、人的梦醒、学生的课上与课下
理解
状态的存在:对象在任何时刻都会处于某种状态之中 状态的转移:事件使对象从一个状态转向另一个状态 当面对所检测到的事件或所接收到的消息时,对象所 处的状态不同,做出的反应也不同
细化状态内的活动与转换
状态图(航班预订3)
使用复合状态
课堂练习
绘制电脑工作时的状态转换图
课堂练习
绘制手机工作时的状态转换图
课堂练习(电梯系统的状态图)
电梯开始处于空闲状态(idle),当有人按下按钮要求使用电梯时 (事件is required发生),电梯进入运行状态(run)。如果电梯的 当前楼层比想要的楼层高时(监护条件[currentFloor>desiredFloor] 成立),电梯进入下降状态(moving down);反之,如果电梯的当 前楼层比想要的楼层低时(监护条件[currentFloor<desiredFloor] 成立),电梯进入上升状态(moving up);如果电梯的当前楼层与 想要的楼层相同时(监护条件[currentFloor=desiredFloor]成立), 电梯门打开(door open)。在电梯上升或下降期间,每经过一个楼 层就判断监护条件[currentFloor=desiredFloor]是否成立,若不成 立,继续移动,若成立,就进入停止状态(stop),15秒后,电梯门 自动打开(door open),2分钟后,电梯门自动关上(door close), 如果有更多的电梯使用要求,进入运行状态(run),反之,则进入 空闲状态(idle)。
状态图和活动图
状态图的作用
状态图: 用来描述一个对象在其生命周期中所 表现出来的状态和行为。
当在系统建模过程中需要描述某个事物或对 象的不同状态,以及状态之间转移的事件和动 作时,用状态图。
但状态图并不是对每一个对象都需要的。
实例1:图书馆中“图书”的状态图 图书馆中的图书从被购买入馆开始可能经 历哪些基本状态的转换?
状态图描述一个实体基于事件反应的动态行为,显 示了该实体如何根据当前所处的状态对不同的时间做出 反应的。创建UML状态图基于以下目的:研究类、角色、 子系统、或组件的复杂行为。
状态图的例子:
一个机器 的状态图:
一个发货单 的状态图:
7.1.2 状态图的要素
事件
开始 状态
转移
状态
货品发货的状态图
结束 状态
第 章 状态图和活动图
7
第 章 状态图和活动图
7
7.1 状态图
7.1.1 什么是状态图 7.1.2 状态图的要素 7.1.3 状态图的作用
7.1.1 什么是状态图
1. 状态图的概念
状态图(statechart diagram): 用来描 述一个特定的对象所有可能的状态,以及 由于各种事件的发生而引起的状态之间的 转移和变化。
简单 活动
复合 活动
2 活动流
活动流(ActionFlow): 描述活动之间的有向关系,反 映一个活动向另外一个活动之间的转移。用带箭头的实 线表示。
活动流
3 分支
分支: 表示从一个活动按照某种条件转移到几个不 同的活动。
分支
合并
4 分叉和汇合
分叉和汇合: 表示并发的同步行为,用同步杆表示。 分叉表示一个控制流被多个控制流替代,替代后的控制 流是并发的。汇合与分叉含义相反
状态图: 用来描述一个对象在其生命周期中所 表现出来的状态和行为。
当在系统建模过程中需要描述某个事物或对 象的不同状态,以及状态之间转移的事件和动 作时,用状态图。
但状态图并不是对每一个对象都需要的。
实例1:图书馆中“图书”的状态图 图书馆中的图书从被购买入馆开始可能经 历哪些基本状态的转换?
状态图描述一个实体基于事件反应的动态行为,显 示了该实体如何根据当前所处的状态对不同的时间做出 反应的。创建UML状态图基于以下目的:研究类、角色、 子系统、或组件的复杂行为。
状态图的例子:
一个机器 的状态图:
一个发货单 的状态图:
7.1.2 状态图的要素
事件
开始 状态
转移
状态
货品发货的状态图
结束 状态
第 章 状态图和活动图
7
第 章 状态图和活动图
7
7.1 状态图
7.1.1 什么是状态图 7.1.2 状态图的要素 7.1.3 状态图的作用
7.1.1 什么是状态图
1. 状态图的概念
状态图(statechart diagram): 用来描 述一个特定的对象所有可能的状态,以及 由于各种事件的发生而引起的状态之间的 转移和变化。
简单 活动
复合 活动
2 活动流
活动流(ActionFlow): 描述活动之间的有向关系,反 映一个活动向另外一个活动之间的转移。用带箭头的实 线表示。
活动流
3 分支
分支: 表示从一个活动按照某种条件转移到几个不 同的活动。
分支
合并
4 分叉和汇合
分叉和汇合: 表示并发的同步行为,用同步杆表示。 分叉表示一个控制流被多个控制流替代,替代后的控制 流是并发的。汇合与分叉含义相反
状态图与活动
01
活动图的应用-工作流建模
01
02
03
分析用例。能直观清晰地分析用例,了解应当采取哪些动作以及这些动作之间的依赖关系。一张完整的活动图是所有用例的集成图。
理解牵涉多个用例的工作流。在难于区分不同用例而对整个系统的工作过程又十分清楚时,可以先构造活动图,然后用切片技术派生用例图。
处理多线程应用。采用“分层抽象,逐步细化”的原则描述多线程。
动作
动作是一个可执行的原子计算,即动作是不可被中断的,其执行时间是可忽略不计的
进入动作和退出动作的例子: Entry/setMode(onTrack) Exit/setMode(offTrack)
01
02
03
04
05
状态图的基本概念、用途
状态图的图形元素
状态的定义及分类
组合状态的分类
事件、事件的分类、动作
3
一个状态图表现了一个对象的生存史,着重描述从一个状态到另一个状态的控制流
什么是状态图
状态图:一部电梯的运行方式
状态图的图形元素
状态:用一个带圆角的矩形框表示,可以进一步划分为3个分隔框:名称框、内部转移框和嵌套状态图框 名称框:标出状态的名称 内部转移框:规定动作或活动, 但不改变对象的当前状态 嵌套状态图:放置被嵌套的子状态图
理解工作流程
对理解业务处理过程十分有用,可以画出描述业务工作流的活动图与领域专家进行交流,明确业务处理操作是如何进行的,将会有怎样的变化
处理多线程应用
利用活动图支持并发的特点,描述多线程应用的行为
分析Use Case
描述复杂过程的算法
此时相当于UML版的程序流程图,常规的顺序、分支过程在活动图中都能得到充分体现
何时可使用活动图
活动图的应用-工作流建模
01
02
03
分析用例。能直观清晰地分析用例,了解应当采取哪些动作以及这些动作之间的依赖关系。一张完整的活动图是所有用例的集成图。
理解牵涉多个用例的工作流。在难于区分不同用例而对整个系统的工作过程又十分清楚时,可以先构造活动图,然后用切片技术派生用例图。
处理多线程应用。采用“分层抽象,逐步细化”的原则描述多线程。
动作
动作是一个可执行的原子计算,即动作是不可被中断的,其执行时间是可忽略不计的
进入动作和退出动作的例子: Entry/setMode(onTrack) Exit/setMode(offTrack)
01
02
03
04
05
状态图的基本概念、用途
状态图的图形元素
状态的定义及分类
组合状态的分类
事件、事件的分类、动作
3
一个状态图表现了一个对象的生存史,着重描述从一个状态到另一个状态的控制流
什么是状态图
状态图:一部电梯的运行方式
状态图的图形元素
状态:用一个带圆角的矩形框表示,可以进一步划分为3个分隔框:名称框、内部转移框和嵌套状态图框 名称框:标出状态的名称 内部转移框:规定动作或活动, 但不改变对象的当前状态 嵌套状态图:放置被嵌套的子状态图
理解工作流程
对理解业务处理过程十分有用,可以画出描述业务工作流的活动图与领域专家进行交流,明确业务处理操作是如何进行的,将会有怎样的变化
处理多线程应用
利用活动图支持并发的特点,描述多线程应用的行为
分析Use Case
描述复杂过程的算法
此时相当于UML版的程序流程图,常规的顺序、分支过程在活动图中都能得到充分体现
何时可使用活动图
chapter07-状态图&活动图
转换种类包含如下几种:
(1)外部转换 (2)内部转换 (3)完成转换 (4)复合转换
23/84
(1)外部转换
外部转换:一种改变 对象状态的转换,是 最常见的一种转换。
Somebody go into Somebody go out Somebody go into Used
表示:从源状态到目 标状态的直线箭头。
13/84
7.1.2 状态图----状态
状态的组成:
复合状态及其子状态 并发子状态: 复合状态中有两个或多个并发执行的
子状态机
• 组合状态多个并发子状态,控制多个控制流 • 当复合状态转出的转移被激发时,或每个内嵌状态机 都运行到终止状态时,多个控制流会汇合成一个
Working
Awaiting User Password
11/84
7.1.2 状态图----状态
状态的组成:
延迟事件 (Deferred Event): 延迟处理的时间列表
,在当前状态下暂不处理,等到合适状态再处理。
复合状态及其子状态 顺序子状态
• • 任何时刻只能处于一种状态 状态复合状态/复合状态的子状态
Working
Awaiting User Password
方括号括起来的布尔表达式。 放在触发事件后面 可以引用对象的属性值或触发事件的参数 只在引起转换的触发事件发生时被赋值一次
若值为真,则触发事件使转换有效; 若值为假,则不会引起转换。
从一个状态引出的多个转换可以有同样的触
发事件,但是每个转换必须具有不同的监护 条件。
21/84
(5)动作
对象,依据重要性从左到右放置 设置生命线 消息,从上到下 设置对象的激活期
(1)外部转换 (2)内部转换 (3)完成转换 (4)复合转换
23/84
(1)外部转换
外部转换:一种改变 对象状态的转换,是 最常见的一种转换。
Somebody go into Somebody go out Somebody go into Used
表示:从源状态到目 标状态的直线箭头。
13/84
7.1.2 状态图----状态
状态的组成:
复合状态及其子状态 并发子状态: 复合状态中有两个或多个并发执行的
子状态机
• 组合状态多个并发子状态,控制多个控制流 • 当复合状态转出的转移被激发时,或每个内嵌状态机 都运行到终止状态时,多个控制流会汇合成一个
Working
Awaiting User Password
11/84
7.1.2 状态图----状态
状态的组成:
延迟事件 (Deferred Event): 延迟处理的时间列表
,在当前状态下暂不处理,等到合适状态再处理。
复合状态及其子状态 顺序子状态
• • 任何时刻只能处于一种状态 状态复合状态/复合状态的子状态
Working
Awaiting User Password
方括号括起来的布尔表达式。 放在触发事件后面 可以引用对象的属性值或触发事件的参数 只在引起转换的触发事件发生时被赋值一次
若值为真,则触发事件使转换有效; 若值为假,则不会引起转换。
从一个状态引出的多个转换可以有同样的触
发事件,但是每个转换必须具有不同的监护 条件。
21/84
(5)动作
对象,依据重要性从左到右放置 设置生命线 消息,从上到下 设置对象的激活期
第6章状态图和活动图-活动图
14
7 信号发送和接收
• 发送信号与接收信号
15
8 引脚
Pin
• 是一个对象节点,代表活动连接输入、输出值 的连接点 • 用来标明每个活动节点所需输入的数据或者所 产生的数据(建模业务流时则可表示产生或者 消耗的资源)
16
8 引脚
• 对fibonacci函数值的计算过程建模
17
8 引脚
• 简化后的,看起来更简洁
28
1 工作流建模
• 用于业务建模的时候,每一条泳道表示一个职责 单位,该图能够有效地体现出所有职责单位之间 的工作职责,业务范围及之间的交互关系、信息 流程 • 建模策略:
– 为工作流建立一个焦点,除非你所涉及的系统很小, 否则不可能在一张图中显示出系统中所有的控制流 – 选择对全部工作流中的一部分有高层职责的业务对象, 并为每个重要的业务对象创建一条泳道
– 交互图强调的是对象到对象的控制流,而活动图则 强调的是从活动到活动的控制流 – 活动图是一种表述过程基理、业务过程以及工作流 的技术。它可以用来对业务过程、工作流建模,也 可以对用例实现甚至是程序实现来建模
2
6.2.1 什么是活动图
1. 活动图的概念
活动图(activity diagram)是UML的动态视图之一,用 来描述事物或对象的活动变化流程。
24
1. 描述工作流
订货处理活动图
25
2. 描述工程组织过程
建筑工程过程活动图
26
3. 描述算法流程
27
6.2.4 绘制活动图
• 绘制时首先决定是否采用泳道:主要根据活动图中是否 要体现出活动的不同实施者 • 然后尽量使用分支、分岔和汇合等基本的建模元素描述 活动控制流程
第7章 状态图和活动图
图7.1 图书馆书籍的状态图
一个图书对象从它的起始点 开始,首先是“新书”状态 (new book),然后是“可 以借阅”(available)的状 态,如果有读者将书借走, 则该书的状态为“已借出” 状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于 “删除”状态(delete),最 后到达“终止”状态。
7.2.1 活动图概述
在用例模型中,可以利用文本来描述用例的业务流程, 但如果业务流程较为复杂的话,则可能会难以阅读和 理解,这时需要用更加容易理解的方式(图形)来描 述业务过程的工作流,在UML中将这类描述活动流程 的图形称为活动图(Activity Diagram)。 活动图被设计用于简化描述一个过程或者操作的工作步 骤。活动用圆角矩形表示,接近椭圆。一个活动中的 处理一旦完成,则自动引起下一个活动的发生。箭头 表示从一个活动转移到下一个活动。和状态图类似, 活动图中的起点用一个实心圆表示,终点用一个实心 圆外加一个圆圈表示。在一个活动图中,只有一个起 始状态,可以有零个或多个终止状态。
第7章 状态图和活动图
7.1状态图
状态图,用于UML中建立动态模型,主要描述系
统随时间变化的行为,这些行为是用从静态视图中抽 取的系统的瞬间值的变化来描述的。在对象的生命期 建模中,状态图显示了一个状态机,展示的是单个对 象内从状态到状态的控制流。状态图通过对类的对象
的生存周期建立模型来描述对象随时间变化的动态行
7.2.7分叉和汇合
对象在运行时可能会存在两个或多个并发运行的控制流, 为了对并发的控制流建模,UML中引入了分叉与汇合的概 念。分叉用于将动作流分为两个或多个并发运行的分支, 而汇合则用于同步这些并发分支,以达到共同完成一项事 务的目的。 在UML中使用分叉和汇合表示并行发生的事件流。分叉表 示把一个单独的控制流分成两个或多个并发的控制流。一 个分叉可以有一个进入转移和两个或多个输出转移,每一 个转移表示一个独立的控制流。 汇合表示两个或多个并发 控制流的同步发生,一个汇合可以有两个或多个进入转移 和一个输出转移。分叉和汇合应该是平衡的。分叉和汇合 在图形上都使用同步条来表示,同步条通常用一条粗的水 平线表示。
状态图和活动图
活动图工具支持 正向:若表示工作流程,产生代码困难;若表示 具体算法产生代码容易。 逆向:对类的操作是可能的,从系统得到工作流 程困难。 Rose2003不支持。
34
制作 李文杰
8. 状态图和活动图的比较
状态图和活动图都是对系统动态行为建模,有共 同点又有区别。 1)两者描述的重点不同。状态图描述的是对象的 状态和状态之间的转移,活动图描述的是活动到活动 的控制流。 2)两者使用的场合不同。状态图用于显示一个对 象在其生命周期内的行为,活动图用于描述用例、涉 及多个用例的工作流程和多线程应用。 如果需要描述多个对象间的交互,应该用交互图 (顺序图或协作图)。
一般状态之间的转移是由事件触发的,因此在转移上应标出 事件;否则,表示在源状态的内部活动执行完毕后自动触发 转移。
15
制作 李文杰
2. 状态图中的基本概念
转移 转移格式:[event-signature][[guard-condition]][/ action] 事件特征标记格式:event-name(comma-separated-parameter-list)
put(c)[ c!='<' ] / return false Waiting put(c)[ c=='<' ]
状态图工具支持 正向:根据状态机理论来生成代码 (参考形式语言与自动机资料) 逆向:困难,手工 Rose2003不支持,Poseidon支持。
put( c )[ c!='>' ] / token.append(c);return false
[ temperature> =100 ]
汽体(蒸汽)
4
制作 李文杰
1. 状态图
34
制作 李文杰
8. 状态图和活动图的比较
状态图和活动图都是对系统动态行为建模,有共 同点又有区别。 1)两者描述的重点不同。状态图描述的是对象的 状态和状态之间的转移,活动图描述的是活动到活动 的控制流。 2)两者使用的场合不同。状态图用于显示一个对 象在其生命周期内的行为,活动图用于描述用例、涉 及多个用例的工作流程和多线程应用。 如果需要描述多个对象间的交互,应该用交互图 (顺序图或协作图)。
一般状态之间的转移是由事件触发的,因此在转移上应标出 事件;否则,表示在源状态的内部活动执行完毕后自动触发 转移。
15
制作 李文杰
2. 状态图中的基本概念
转移 转移格式:[event-signature][[guard-condition]][/ action] 事件特征标记格式:event-name(comma-separated-parameter-list)
put(c)[ c!='<' ] / return false Waiting put(c)[ c=='<' ]
状态图工具支持 正向:根据状态机理论来生成代码 (参考形式语言与自动机资料) 逆向:困难,手工 Rose2003不支持,Poseidon支持。
put( c )[ c!='>' ] / token.append(c);return false
[ temperature> =100 ]
汽体(蒸汽)
4
制作 李文杰
1. 状态图
状态图和活动图
‘entry‟/action-expression
(2) 退出动作: ‘exit‟/ action-expression
火龙果 整理
15
三. 状态图的工具支持(略) (目前 Rose 尚不支持 StateChart 的正向工 程。)
火龙果 整理
16
·进入该状态时,做开灯动作; ·退出该状态时,做关灯动作; ·对象处于该本状态时,要闪烁灯5次; · 当关闭电源事件(内部事件)出现时,使用自供电源。
火龙果 整理
7
1.状态(续二)
状态可细分成:
状态图是用于显示状态机的,重点描述状态之间的控 制流. 在状态机中,动作可以与状态相关,也可以与转移相 关. ◇动作与状态相关,则对象在进入一个状态时将触发某 一动作,而不管是从哪个状态转入这个状态的. ◇动作与转移相关,则对象在不同状态之间转移时,将 触发相应的动作.
火龙果 整理
8
2.转移(转换)(transition)
转移又称状态转换 表示对象在第一个状态(源状态)中执行一定的动 作,并在某个特定事件发生、并满足特定警戒条件时 进入第二个状态(目的状态)。
源状态
事件名(参数表)[警戒条件]/动作
目的状态
在UML里转换由五个部分组成,
1.状态(state)
状态是指对象在其生命周期中各个阶段的状 况,包括:满足某些条件、执行某些活动或等 待某些事件.
所有对象都具有状态.状态是对象执行了一 系列活动的结果.当某个事件发生后,对象状态 可能发生变化.
火龙果 整理
6
1.状态(续)
状态名为 Lighting(点灯)状态:
火龙果 整理
26
二. 活动图的基本概念(续一)
第七章 状态图和活动图
II.3 小 结
活动图的优点和缺点; 何时可使用活动图; 何时不应使用活动图;
UML活动图元语小结。
活动图的优点和缺点
优点:最适合支持并行行为,而且也是支持
多线程编程的有力工具。
缺点:很难清楚地描述动作与对象之间的关
系。虽然在活动旁标出对象名或者采用泳道 技术可以定义这种关系,但仍然没有交互图 简单直接。
转移
注释体 注释连接
II 活动图的基本要素
引
言;
活动图的基本要素;
小结。
II.1 引 言
基本概念;
活动图示例;
活动图的元模型。
基本概念
来源:
活动图主要来源于 Jim Odell 的事件图、 SDL状态建模技术和 Petri 网技术。 成活动图。
从概念层看,活动表示需要由人或计算机来
活动图的核心符号是活动,通过连接将活动组
完成的任务。图中描述了“人找饮料喝”这 一过程。
从说明层或实现层看,活动表示类中的方
法。图中描述了名字为“人”的对象类中一 个关于“找饮料喝”的方法。
活动图示例
人 找饮料
判断条件
[没有咖啡] [找到咖啡]
判定活动
[没有可口可乐] [找到可 口可乐]
相连,说明该注释体是针对该实体所进行 的描述。
活动图例子
活动图例子
课堂作业
某公司的设备采购流程设置为: A、由业务部门提出需求设备清单; B、将需求设备清单交采购部门建立采购采买单据; C、采购部门建立采购单据后,交财务部门,向财务部门 申请款项,预支零用金; D、财务部门建立应付帐款单据后:核支款项; E、采购部门在收到款项后,进行采买; F、采买完成后,执行: (1)发票和剩余款项交财务部: (2)设备交业务部门; G、(a)采购部门:采购单据结案; (b)财务部门:帐款冲销结案;
状态图和活动图
状态图和活动图
警戒条件
当转移的触发事件发生时,将对警戒条 件进行求值。只要警戒条件不重叠,就可能 会有来自同一源状态并具有同一事件触发器 的多个转移。在事件发生时,只为转移进行 一次警戒条件求值。
状态图和活动图
操作
操作是可执行的、不可分割的计算过程,这 意味着,它不会被事件中断,而会一直运行 到结束为止。它与活动正好相对,因为活动 可能被其他事件中断。操作可以包括操作调 用(调用状态机的拥有者以及其他可见对 象)、创建或破坏其他对象、或者向另一个 对象发送信号。
状态图和活动图
什么是状态?
▪ 状态表示的是一个对象或交互过程中的一 个特定阶段:满足了某一个条件,进行某 项活动或等待某个事件的发生,状态对应 一段有限的时间。状态对应于一组对象属 性的值
▪ 动作是一个不可中断的最小单元。
状态图和活动图
基本概念-状态
▪ 状态可以细分为不同的类型,如初态、终 态、中间状态、组合状态、历史状态等。
状态图和活动图
状态中的基本概念
▪ 子状态:嵌套在另一个状态中的状态。 ▪ 组合状态:含有子状态的状态。
对象可能会在有限的时间长度内保持某 一状态 。
状态图和活动图
状态图的例子
keypress
idle
running
finished
shutDown
状态图和活动图
动作分类
状态机中,动作既可以与状态相关也可 以与转移相关。 ▪ 如果动作是与状态相关,则对象在进入 一个状态时将触发某一动作,而不管是从哪 个状态进入这个状态的。 ▪ 如果动作是与转移相关的,则对象在不 同的状态之间转移时,将触发相应的动作。
状态图和活动图
状态机
状态机用于对模型元素的动态行为进行建 模,即,对系统行为中受事件驱动的方面进 行建模。状态机专门用于定义依赖于状态的 行为(依据元素所处的状态而有所变化的行 为)。其行为不会随着其元素状态发生变化 的模型元素不需要用状态机来描述其行为。
警戒条件
当转移的触发事件发生时,将对警戒条 件进行求值。只要警戒条件不重叠,就可能 会有来自同一源状态并具有同一事件触发器 的多个转移。在事件发生时,只为转移进行 一次警戒条件求值。
状态图和活动图
操作
操作是可执行的、不可分割的计算过程,这 意味着,它不会被事件中断,而会一直运行 到结束为止。它与活动正好相对,因为活动 可能被其他事件中断。操作可以包括操作调 用(调用状态机的拥有者以及其他可见对 象)、创建或破坏其他对象、或者向另一个 对象发送信号。
状态图和活动图
什么是状态?
▪ 状态表示的是一个对象或交互过程中的一 个特定阶段:满足了某一个条件,进行某 项活动或等待某个事件的发生,状态对应 一段有限的时间。状态对应于一组对象属 性的值
▪ 动作是一个不可中断的最小单元。
状态图和活动图
基本概念-状态
▪ 状态可以细分为不同的类型,如初态、终 态、中间状态、组合状态、历史状态等。
状态图和活动图
状态中的基本概念
▪ 子状态:嵌套在另一个状态中的状态。 ▪ 组合状态:含有子状态的状态。
对象可能会在有限的时间长度内保持某 一状态 。
状态图和活动图
状态图的例子
keypress
idle
running
finished
shutDown
状态图和活动图
动作分类
状态机中,动作既可以与状态相关也可 以与转移相关。 ▪ 如果动作是与状态相关,则对象在进入 一个状态时将触发某一动作,而不管是从哪 个状态进入这个状态的。 ▪ 如果动作是与转移相关的,则对象在不 同的状态之间转移时,将触发相应的动作。
状态图和活动图
状态机
状态机用于对模型元素的动态行为进行建 模,即,对系统行为中受事件驱动的方面进 行建模。状态机专门用于定义依赖于状态的 行为(依据元素所处的状态而有所变化的行 为)。其行为不会随着其元素状态发生变化 的模型元素不需要用状态机来描述其行为。
第9章-状态图和活动图
9.2 状态图元素
子状态(substate) 嵌套在另外一个状态中的状态 空调:停止、运行状态,运行状态中可 嵌套制 冷、制热、除湿等子状态
延迟事件(deferred event) 是指在该状态下暂不处理,但将推 迟到该对象的另一个状态下排队处 理的事件
9.2 状态图元素
名字域
当当发将到时当时s生延别处事,当用转,e时迟的l件于电自f入做灯T作,响状发e该源备该开闪s对 应 态生t关电状灯状事烁象,中时闭源态动态件5,
9.2 状态图元素
• 终态 end state •表示最后的或者终端状态; •终态数目可以不确定,也可以没有。 •电扇 坏了/没坏,但拆下闲置
9.2 状态图元素
9.2.2 状态 对象的状态始终是由其属性和关联决定 状态图中的状态表示的是给定类对象的 一组属性值 状态图中状态用圆角矩形表示
状态名称
在状态内出 现内的部活转动换,
不能附加到
转换上。
9.2 状态图元素
9.2.3 事件
“事件”指发生在时间和空间某点上的 且能够引起某些动作执行的事情 事件可以是内部事件也可以是外部事件 四类事件: ➢调用事件 ➢信号事件 ➢改变事件 ➢时间事件
9.2 状态图元素
信号signer事件 •所谓信号,是指由一个对象异步地发送,并由另外一 个对象接收的一个已命名的对象。 •信号事件表示对象接收到某个信号。 •信号间可以有泛化,信号可以是其他信号的子信号, 它们继承父信号的属性,并可以触发包含信号类型的 转换。
9.2 状态图元素
9.2 状态图元素
9.2 状态图元素
外部转换,自转 换也是外部转换
外部转换
9.2 状态图元素
9.2.5 复合状态和子状态
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深(deep)历史状态, 可以记住任意深度的组合状态的历史.
历史状态
CD Player,running状态被打断到power on状态,再转 回到running状态时,希望直接进入历史状态
转移
Transition
转移是两个状态间的一种关系,表示对象将在当前状态中 执行动作,并在某个特定事件发生或某个特定的条件满足 时进入后继状态。
什么是状态(state)
状态是在对象的生命期中的某个条件或状况, 在此期间对象 将满足某些条件、执行某些活动或等待某些事件.
理解
对象在任何时候都会处于某种状态中,所有对象都有状态
对象所处的状态决定了它如何响应所检测到的事件或所接收 的消息。
通常,事件使对象从一个状态转向另一个状态(即状态的转 换)
(1)入口动作 入口动作表示对象进入某个状态所要执行的动作。 入口动作用“entry/要执行的动作”表示。
(2) 出口动作 出口动作表示对象退出某个状态所要执行的动作。 出口动作用“exit/要执行的动作”表示。
活动
当对象处于一个状态时,它一般是空闲的,在等待一个事件 的发生。但是某些时间,对象正在执行一序列动作,即,对 象做着某些工作,并一直继续到被某个外部事件的到来,才 中断这些工作,我们把对象处于某个状态时进行的一序列动 作称为活动。
每个转移只允许有一个事件触发,一个事件只允许有一个 动作
转移的五要素(注意格式)
如果对象处于某个状态进行一些动作,可能会需要一些时间, 我们可以用活动来描述这一序列动作。表示活动的方法是, 在状态的转换分栏中添加一行“活动描述”,其格式为“do/ 动作名”。
活动用来描述对象处于某个状态时,对象进行的一序列动作。
中间状态
中间状态的组成(除初态终态外,最常见的状态)
状态名(name)
CD Player
需要stop状态吗?
初态和终态
初态 start state
显示状态图中状态机执行(execution)的开始 一个状态机只能有一个初态,因为每一个执行都是从相
同的地方开始的。如果一个状态机用多张状态图描述, 则多张图用一个初态, Rose中只允许画一个初态,其它 地方拖动使用 嵌套状态中可以使用新的初态
隐藏子状态,简化模 型复杂度,增强清晰 性
组合状态可以使用“与”关系分解为并发子状态, 或者通过“或”关系分解为互相排斥的顺序子状态。
两种表示方法
顺序子状态
如果一个组成状态的子状态对应的对象在其生命期内的任 何时刻都只能处于一个子状态,即多个子状态之间是互斥 的,不能同时存在,这种子状态称为顺序子状态。
状态图和活动图
什么是状态图
UML中的状态图(Statechart diagram)用于描述一个对象在 其生存周期间的动态行为, 表现一个对象所经历的状态序列, 引起状态转移的事件(event), 以及因状态转移而伴随的动作 (action).
对象:类的实例、用例的实例、整个系统的实例
close
create opened open
Rejected) 则应根据属性status建立状态图.
状态图与交互图的区别
交互图不显示对象所有可能的动态行为,只显示特定交 互场景(一个具体的用例)中对象的行为。
状态图可以显示对象所有的动态行为。
状态图的基本概念
状态, state 组合状态, composite state 子状态, sub state 历史状态, history state 转移, transition 事件, event 动作, action
终态 end state
表示最后的或者终端状态; 终态数目可以不确定,也可以没有。
动作
动作
可执行的原子计算 不可中断,其执行时间可忽略不计 当转换被引发时,它对应的动作被执行。它一般是一个
简短的处理过程。
动作分为入口动作和出口动作。
当转换发生时,进入某个状态时发生的动作称为入口 动作;离开某个状态时发生的动作称为出口动作。
是可以把该状态和其他状态区分开的字符串;状态也可能 是匿名的,即没有名称。
入口/出口动作(entry/exit action) 内部转移(internal transition)
子状态(substate) 嵌套在另外一个状态中的状态
延迟事件(deferred event) 是指在该状态下暂不处理,但将推迟到该对象的另一个 状态下排队处理的事件
并发子状态
有时组合状态有两个或者多个并发的子状态机,此时称组 成状态的子状态为并发子状态。
历史状态
历史状态是伪状态, 其目的是记住从组合状态中退出时 所处的子状态, 当再次进入组合状态时, 可以直接进入 这个子状态, 而不是再从组合状态的初态开始.
浅(shallow)历史状态, 只记住最外层组合状态的历史.
名字域
当转入该状态时,做 当处于开该灯状动态作时,灯
Lighting do活动是只在状转态换内域,可选
当s电e源lfT闪关e烁s闭t事5事次件件发发生生时,entry/ turnOn 对当象转时将出,延该用迟状自响态备应时电,源到做别的do/ blinkFivetimes
出现的活动,不能附 加到转换上。
状态中关再灯处动理作,用defere这vent poweroff/ powerSupplySelf
个特定动作表示延迟 exit/ turnOff
event selfTest/ defer
组合/嵌套状态
含有子状态的状态被称为组合或嵌套状态
去掉运行这个大的状 态行吗? 为何不在组合中加初 态、终态?
closed
lock unlock locked
门的状态
状态图描述的对象往往有多个属性, 应该在具有如下 特性的属性上建模:
属性拥有较少的可能取值 属性在这些值之间的转移有一定的限制
如: 类SellableItem中有2个属性: salePrice和status, 其中: salePrice类型为Money, 取值范围为正实数; status类型为枚举(Received, InInspection, Accepted,
历史状态
CD Player,running状态被打断到power on状态,再转 回到running状态时,希望直接进入历史状态
转移
Transition
转移是两个状态间的一种关系,表示对象将在当前状态中 执行动作,并在某个特定事件发生或某个特定的条件满足 时进入后继状态。
什么是状态(state)
状态是在对象的生命期中的某个条件或状况, 在此期间对象 将满足某些条件、执行某些活动或等待某些事件.
理解
对象在任何时候都会处于某种状态中,所有对象都有状态
对象所处的状态决定了它如何响应所检测到的事件或所接收 的消息。
通常,事件使对象从一个状态转向另一个状态(即状态的转 换)
(1)入口动作 入口动作表示对象进入某个状态所要执行的动作。 入口动作用“entry/要执行的动作”表示。
(2) 出口动作 出口动作表示对象退出某个状态所要执行的动作。 出口动作用“exit/要执行的动作”表示。
活动
当对象处于一个状态时,它一般是空闲的,在等待一个事件 的发生。但是某些时间,对象正在执行一序列动作,即,对 象做着某些工作,并一直继续到被某个外部事件的到来,才 中断这些工作,我们把对象处于某个状态时进行的一序列动 作称为活动。
每个转移只允许有一个事件触发,一个事件只允许有一个 动作
转移的五要素(注意格式)
如果对象处于某个状态进行一些动作,可能会需要一些时间, 我们可以用活动来描述这一序列动作。表示活动的方法是, 在状态的转换分栏中添加一行“活动描述”,其格式为“do/ 动作名”。
活动用来描述对象处于某个状态时,对象进行的一序列动作。
中间状态
中间状态的组成(除初态终态外,最常见的状态)
状态名(name)
CD Player
需要stop状态吗?
初态和终态
初态 start state
显示状态图中状态机执行(execution)的开始 一个状态机只能有一个初态,因为每一个执行都是从相
同的地方开始的。如果一个状态机用多张状态图描述, 则多张图用一个初态, Rose中只允许画一个初态,其它 地方拖动使用 嵌套状态中可以使用新的初态
隐藏子状态,简化模 型复杂度,增强清晰 性
组合状态可以使用“与”关系分解为并发子状态, 或者通过“或”关系分解为互相排斥的顺序子状态。
两种表示方法
顺序子状态
如果一个组成状态的子状态对应的对象在其生命期内的任 何时刻都只能处于一个子状态,即多个子状态之间是互斥 的,不能同时存在,这种子状态称为顺序子状态。
状态图和活动图
什么是状态图
UML中的状态图(Statechart diagram)用于描述一个对象在 其生存周期间的动态行为, 表现一个对象所经历的状态序列, 引起状态转移的事件(event), 以及因状态转移而伴随的动作 (action).
对象:类的实例、用例的实例、整个系统的实例
close
create opened open
Rejected) 则应根据属性status建立状态图.
状态图与交互图的区别
交互图不显示对象所有可能的动态行为,只显示特定交 互场景(一个具体的用例)中对象的行为。
状态图可以显示对象所有的动态行为。
状态图的基本概念
状态, state 组合状态, composite state 子状态, sub state 历史状态, history state 转移, transition 事件, event 动作, action
终态 end state
表示最后的或者终端状态; 终态数目可以不确定,也可以没有。
动作
动作
可执行的原子计算 不可中断,其执行时间可忽略不计 当转换被引发时,它对应的动作被执行。它一般是一个
简短的处理过程。
动作分为入口动作和出口动作。
当转换发生时,进入某个状态时发生的动作称为入口 动作;离开某个状态时发生的动作称为出口动作。
是可以把该状态和其他状态区分开的字符串;状态也可能 是匿名的,即没有名称。
入口/出口动作(entry/exit action) 内部转移(internal transition)
子状态(substate) 嵌套在另外一个状态中的状态
延迟事件(deferred event) 是指在该状态下暂不处理,但将推迟到该对象的另一个 状态下排队处理的事件
并发子状态
有时组合状态有两个或者多个并发的子状态机,此时称组 成状态的子状态为并发子状态。
历史状态
历史状态是伪状态, 其目的是记住从组合状态中退出时 所处的子状态, 当再次进入组合状态时, 可以直接进入 这个子状态, 而不是再从组合状态的初态开始.
浅(shallow)历史状态, 只记住最外层组合状态的历史.
名字域
当转入该状态时,做 当处于开该灯状动态作时,灯
Lighting do活动是只在状转态换内域,可选
当s电e源lfT闪关e烁s闭t事5事次件件发发生生时,entry/ turnOn 对当象转时将出,延该用迟状自响态备应时电,源到做别的do/ blinkFivetimes
出现的活动,不能附 加到转换上。
状态中关再灯处动理作,用defere这vent poweroff/ powerSupplySelf
个特定动作表示延迟 exit/ turnOff
event selfTest/ defer
组合/嵌套状态
含有子状态的状态被称为组合或嵌套状态
去掉运行这个大的状 态行吗? 为何不在组合中加初 态、终态?
closed
lock unlock locked
门的状态
状态图描述的对象往往有多个属性, 应该在具有如下 特性的属性上建模:
属性拥有较少的可能取值 属性在这些值之间的转移有一定的限制
如: 类SellableItem中有2个属性: salePrice和status, 其中: salePrice类型为Money, 取值范围为正实数; status类型为枚举(Received, InInspection, Accepted,