状态图和活动图ppt课件
合集下载
状态机图状态活动72页PPT

谢谢你的阅读
❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 7图状态活动
16、自己选择的路、跪着也要把它走 完。 17、一般情况下)不想三年以后的事, 只想现 在的事 。现在 有成就 ,以后 才能更 辉煌。
18、敢于向黑暗宣战的人,心里必须 充满光 明。 19、学习的关键--重复。
20、懦弱的人只会裹足不前,莽撞的 人只能 引为烧 身,只 有真正 勇敢的 人才能 所向披 靡。
教学课件PPT状态图和活动图

事 件
事件是指已发生并可能引发某种活动的一件事
类 Digital_Watch
mode_button() inc()
inc/hours := hours + 1
状态图 Display do/display current time
inc/minutes := minutes + 1
mode_button
[change = 0]
[change > 0]
自动售货机 状态图
9 UML理论与实践
Do:dispense item
Do:make change
状态迁移
1. 状态迁移
引起状态迁移的原因通常有两种: (1) 当标在迁移箭头上的事件出现时会引起状态的迁移。 此时,首先执行引起迁移的事件中的动作,然后迁移到新 的状态,执行新状态中的内部动作(包括entry、exit、do以 及用户定义的动作)。在执行do或用户定义的动作时,可 以被外部的事件(将导致该状态的迁移)中断,但entry动 作和exit动作是不能被中断的,并且它们总是要执行完的。
8
UML理论与实践
idle
Coins in(amount)/ Set balance Cancel/ refund Coins [item empty]
Collecting money Coins in(amount)/ add to balance Select(item) test and compute Do:test item and compute change [change < 0]
aPrinter:Printer
entry/type “login” do/get use_name do/get password help/display help exit/login(use_name,password)
第8章_状态图和活动图

这个例子中的转移包含了事件特征标记、警戒
条件、动作3部分,根据实际情况,这3部分可 以省略一部分或全部省略。
一般状态之间的转移是由事件触发的,因此应在转移上标出 触发转移的事件表达式。 如果转移上未标明事件,则表示在源状态的内部活动执行完 毕后自动触发转移。 对于一个给定的状态,最终只能产生一个转移,因此从相同 的状态出来的、事件相同的几个转移之间的条件应该是互斥 的。
3. 事件的类型 ② 变化事件:因满足某种条件而引起的事件,变化条件用 when表示。
事件
修改事件包含由一个布尔表达式指定的条件,
事件没有参数。这种事件隐含一个对条件的连 续的测试。 当表达式的值从假到真时事件就发生。事件再 次发生时必须先将值变成假,再假到真。 注意:小心使用改变事件,因为它表示了一种 具有事件持续性、可能涉及全局的计算过程。 它使修改系统潜在值和最终效果的活动之间的 因果关系变得模糊。如果可能要话,应费很大 的代价测试变化事件,因为原则上变化时间是 持续不断的。
状态图所描述的对象往往具有多个属性,一般 状态图应该在具有以下两个特性的属性上建模: 1. 属性拥有较少的可能取值 2. 属性在这些值之间的转移有一定的限制
例如,如果类SellableItem有两个属性 salePrice和status,其中salePrice的类型为 Money,取值范围为正实数,status的类型为 枚举类型,取值为received, inInspection, accepted, rejected这4个中的某一个,则应 根据属性status建立状态图
一个状态图只能有一个初态,但终态可以有一
个或多个,也可以没有终态。
每个状态图都应该有一个初始状态,它代表状
条件、动作3部分,根据实际情况,这3部分可 以省略一部分或全部省略。
一般状态之间的转移是由事件触发的,因此应在转移上标出 触发转移的事件表达式。 如果转移上未标明事件,则表示在源状态的内部活动执行完 毕后自动触发转移。 对于一个给定的状态,最终只能产生一个转移,因此从相同 的状态出来的、事件相同的几个转移之间的条件应该是互斥 的。
3. 事件的类型 ② 变化事件:因满足某种条件而引起的事件,变化条件用 when表示。
事件
修改事件包含由一个布尔表达式指定的条件,
事件没有参数。这种事件隐含一个对条件的连 续的测试。 当表达式的值从假到真时事件就发生。事件再 次发生时必须先将值变成假,再假到真。 注意:小心使用改变事件,因为它表示了一种 具有事件持续性、可能涉及全局的计算过程。 它使修改系统潜在值和最终效果的活动之间的 因果关系变得模糊。如果可能要话,应费很大 的代价测试变化事件,因为原则上变化时间是 持续不断的。
状态图所描述的对象往往具有多个属性,一般 状态图应该在具有以下两个特性的属性上建模: 1. 属性拥有较少的可能取值 2. 属性在这些值之间的转移有一定的限制
例如,如果类SellableItem有两个属性 salePrice和status,其中salePrice的类型为 Money,取值范围为正实数,status的类型为 枚举类型,取值为received, inInspection, accepted, rejected这4个中的某一个,则应 根据属性status建立状态图
一个状态图只能有一个初态,但终态可以有一
个或多个,也可以没有终态。
每个状态图都应该有一个初始状态,它代表状
面向对象分析与设计课件第7章 状态图与活动图建模

7.1 状态图的构成元素
统一建模语言中,状态图主要由状态和迁移两大类模型元素组成。对于图中 的每个状态,还定义了状态图主体对象在该状态下需要完成的各个动作及其触发 原因或机制。对于每个迁移,状态图还定义了迁移的触发事件、迁移条件以及迁 移时所要完成的动作。
状态图还对状态进行了多种分类,同时也为这些分类提供了必要的支持。如 把状态按照时间顺序分为初态、终态和中间态。按照状态的层次结构划分为简单 状态、复合状态和子状态。对于子状态,还可以根据它们是否参与了并发活动而 划分为串行子状态和并发子状态。另外,为简单地表达某种复杂语义,状态图中 还定义了历史子状态等这样的特殊模型元素。为了表示不同状态与其行为之间的 关系,UML还为每个状态和迁移定义了若干种相关的动作。
状态名可以是任何一个满足UML命名规则的字符串,其内容 可以由用户指定。
每个动作中,则包含了触发动作的事件、事件参数、守卫 条件以及伴发的动作序列。
7.1.1 状态
所有这些动作可分成入口动作(on Entry)、出口动作(On Exit)、 事件动作(On Event)和动作(Do)等四种类型。
其中,入口动作(on Entry)和出口动作(On Exit)分别指对象在 进入和离开当前状态时需要完成的动作。
7.1.2 转换与事件
例如,在Java语言中,事件处理机制的主要内容如下: 1)事件:一种用于封装事件属性(事件相关信息)的对象,其内容还应 包括为事件响应者提供的服务。 2)事件源:即产生事件的对象。当事件发生时,它负责创建事件信号并 调用事件激活程序,向事件订阅者们发出事件信号(事件对象)。 3)事件响应者:需要对事件做出相应的对象。一个事件可以有多个事件 响应者。
对于任何对象来说,对象的状态取决于它的各种行为不断积累所 产生的结果。在任何给定的时间点,对象的当前状态就包括它所具有 的所有特性、所处的具体情形、满足的条件以及其属性的当前值。
UML状态图和活动图ppt课件

UML 状态图
1
课程目标
• 掌握状态图的定义、符号 • 掌握状态图的动作和事件 •掌握状态图的建模方法 •掌握活动图的定义、符号、条件 •掌握活动图的建模方法
2
本讲内容
• 状态图的定义、符号 • 状态图的动作和事件 • 状态图的建模方法 • 活动图的定义、符号、条件 • 活动图的建模方法
3
3
状态图的定义
12
状态图的符号
下面的示例演示了银行帐户中的转移及其有效状态,如下图 所示。
13
状态图的符号
3.决策点 决策点在建模状态图时提供了方便,因为它通过在中心位 置分组转移到各自的方向,从而提高了状态图的可视性,如下
图所示。
14
状态图的符号
4.同步 状态图中使用同步条是为了说明并发工作流的分叉与联合
表达式。如下图所示。
条件 19
练习: 阅读一个电梯系统的状态图 步骤:
1)标识出状态。 2)标识出转移。 3)标识出事件和动作。
20
21
状态图的建模方法
状态图建模需要执行以下步骤: 1)标识出需要进一步建模的实体。 2)标识出每一个实体的开始状态和结束状 态。 3)确定与每一个实体相关的事件。 4)从起始状态开始创建状态图。
22
状态图的建模方法
1.标识出需要进一步建模的实体 首先要标识出哪些实体需要使用状态图进
一步建模。状态图应该用于复杂的实体,而不 必用于具有复杂行为的实体。对于有复杂行为 的实体,使用活动图可能会更加适合。具有清 晰、有序的状态实体最适合使用状态图进一步 建模。后面将会建模一个Grade对象,尤其是 它的保存功能。
下图所示。
27
状态图的建模方法(续)
练习: 建模航班状态图 创建一个状态图来描述航班如何从提出申请、 制定航班计划、售票、起飞、飞行、到着陆的状态
1
课程目标
• 掌握状态图的定义、符号 • 掌握状态图的动作和事件 •掌握状态图的建模方法 •掌握活动图的定义、符号、条件 •掌握活动图的建模方法
2
本讲内容
• 状态图的定义、符号 • 状态图的动作和事件 • 状态图的建模方法 • 活动图的定义、符号、条件 • 活动图的建模方法
3
3
状态图的定义
12
状态图的符号
下面的示例演示了银行帐户中的转移及其有效状态,如下图 所示。
13
状态图的符号
3.决策点 决策点在建模状态图时提供了方便,因为它通过在中心位 置分组转移到各自的方向,从而提高了状态图的可视性,如下
图所示。
14
状态图的符号
4.同步 状态图中使用同步条是为了说明并发工作流的分叉与联合
表达式。如下图所示。
条件 19
练习: 阅读一个电梯系统的状态图 步骤:
1)标识出状态。 2)标识出转移。 3)标识出事件和动作。
20
21
状态图的建模方法
状态图建模需要执行以下步骤: 1)标识出需要进一步建模的实体。 2)标识出每一个实体的开始状态和结束状 态。 3)确定与每一个实体相关的事件。 4)从起始状态开始创建状态图。
22
状态图的建模方法
1.标识出需要进一步建模的实体 首先要标识出哪些实体需要使用状态图进
一步建模。状态图应该用于复杂的实体,而不 必用于具有复杂行为的实体。对于有复杂行为 的实体,使用活动图可能会更加适合。具有清 晰、有序的状态实体最适合使用状态图进一步 建模。后面将会建模一个Grade对象,尤其是 它的保存功能。
下图所示。
27
状态图的建模方法(续)
练习: 建模航班状态图 创建一个状态图来描述航班如何从提出申请、 制定航班计划、售票、起飞、飞行、到着陆的状态
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(状态图活动图)PPT课件

[onHook]
7
10.1.4入口/出口动作(entry/exit action)
• 表示进入/退出这个状态所执行的动作。 • 入口动作:entry/ XX action • 出口动作:exit/ XX action
• 动作:可以是原子动作,也可以是动作系 列。
2020/10/13
8
10.1.5内部转换
[TimeOut] [inv alidNumber]
Ringing
[ca llPh o n e An sw e rs]
Connected
2020/10/13
[onHook]
[callPhoneHangup] D isco n n e cte d
Warning
TimeOut
Re co rd e M e ssa g e
• 为了方便,可以用关键字else来标记一个离去转换,它表 示如果其他监护条件都不为真时所执行的路径。
2020/10/13
15
10.2.5分叉和汇合
• 简单的和具有分支的顺序转换是活动图中 最常见的路径。然而,对业务过程的工作 流建模时,可能会遇到并发流。在UML中 用一个同步棒(一条粗的水平或垂直的线) 来说明这些并行控制流的分叉和汇合。
talking
6
Idle
[offHook] D ia lTo n e
[digital(n)]
[digital(n)] D ia lin g
busyTone
[v alidNumber]
[numberBusy] Connecting
FastBusyTone
[trunkBusy]
[routed]
[TimeOut]
2020/10/13
状态图和活动图ppt课件

第7章 状态图和活动图
7.1 概述
• 状态机Statechart • 用于描述一个对象在其生存期间的动态行为,表现对象响应事件所经历的状态序 列以及伴随的动作。 • 状态机是用于描述状态与状态转换的。
状态图(Statechart Diagram)
• 状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的 状态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action)。
7.1.1 状态图的组成
(1) 状态图中的事物
• 状态 state • 转换/迁移 transition
接到订 单
记账
7.1.2 状态(state)
• 什么是状态? • 状态是指在对象的生命期中满足某些条件、执行某些活动或
等待某些事件时的一个条件或状况。
• 下面一些例子形象地说明了对象和状态。
1.入口动作 (entry action),用来指定进入状态时发 生的动作。
语法形式: entry/动作名 2.出口动作(exit action),用来指定离开该状态时发
生的动作。 语法形式: exit/动作名
注意:由于入口动作和出口动作是隐式 地激活,因此它们既没有参数也没有守 卫条件。
3.内部转移(internal transition) ---用于标记内部活动,用来指定处于该状态时执行的动作。不导致状态改变的转换,不会
顺序子状态图----IC卡电话的使用
• 顺序子状态与并发子状态的区别在于后者在同一 层次给出两个或多个顺序子状态,对象处于同一 层次中来自每个并发子状态的一个时序状态中。
4. 历史状态(History state)
• 当离开一个组合状态重新进入此状态时,不希望从 它的初始状态开始执行,而是希望直接进入上次离 开组合状态时的最后一个子状态,这种情况下就要 用到历史状态。
7.1 概述
• 状态机Statechart • 用于描述一个对象在其生存期间的动态行为,表现对象响应事件所经历的状态序 列以及伴随的动作。 • 状态机是用于描述状态与状态转换的。
状态图(Statechart Diagram)
• 状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的 状态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action)。
7.1.1 状态图的组成
(1) 状态图中的事物
• 状态 state • 转换/迁移 transition
接到订 单
记账
7.1.2 状态(state)
• 什么是状态? • 状态是指在对象的生命期中满足某些条件、执行某些活动或
等待某些事件时的一个条件或状况。
• 下面一些例子形象地说明了对象和状态。
1.入口动作 (entry action),用来指定进入状态时发 生的动作。
语法形式: entry/动作名 2.出口动作(exit action),用来指定离开该状态时发
生的动作。 语法形式: exit/动作名
注意:由于入口动作和出口动作是隐式 地激活,因此它们既没有参数也没有守 卫条件。
3.内部转移(internal transition) ---用于标记内部活动,用来指定处于该状态时执行的动作。不导致状态改变的转换,不会
顺序子状态图----IC卡电话的使用
• 顺序子状态与并发子状态的区别在于后者在同一 层次给出两个或多个顺序子状态,对象处于同一 层次中来自每个并发子状态的一个时序状态中。
4. 历史状态(History state)
• 当离开一个组合状态重新进入此状态时,不希望从 它的初始状态开始执行,而是希望直接进入上次离 开组合状态时的最后一个子状态,这种情况下就要 用到历史状态。
第6章状态图和活动图PPT课件

产生的数据(建模业务流时则可表示产生或者 消耗的资源)
54
8 引脚
• 对fibonacci函数值的计算过程建模
55
8 引脚
• 简化后的,看起来更简洁
56
9 扩展区
• 表示重复或循环
57
10 辅助活动图
• 当活动图过于复杂时可以用
58
例子:表现软件开发过程的活动图
59
60
61
6.2.4 绘制活动图
50
6 对象流
对象流: 反映活动与对象之间的依赖关系,表示对 象对活动的作用或活动对对象的影响,用依赖关系表示。
对象流
51
6 对象流
• 带对象流的活动图
52
7 信号发送和接收
• 发送信号与接收信号
53
8 引脚
Pin • 是一个对象节点,代表活动连接输入、输出值
的连接点 • 用来标明每个活动节点所需输入的数据或者所
也可作为交互中一个的消息发送。
21
状态的类型
状态的类型 ① 初始状态/结束状态
初始状态
• 显示状态图中状态机中的执行的开始。 • 一个状态机只能有一个初态,因为每一个执行都是从相同的地方开
始的。如果一个状态机用多张图描述,则多张图用一个初态;
结束状态
• 表示一个最后的或者终端状态; • 终态的数目可以不确定。
63
1 工作流建模
• 建模策略(续):
– 识别工作流初始节点的前置条件和活动终点的后 置条件,这可有效地实现对工作流的边界进行建 模
– 从该工作流的初始节点开始,说明随时间发生的 动作和活动,并在活动图中把它们表示成活动节 点
– 将复杂的活动或多次出现的活动集合归到一个活
54
8 引脚
• 对fibonacci函数值的计算过程建模
55
8 引脚
• 简化后的,看起来更简洁
56
9 扩展区
• 表示重复或循环
57
10 辅助活动图
• 当活动图过于复杂时可以用
58
例子:表现软件开发过程的活动图
59
60
61
6.2.4 绘制活动图
50
6 对象流
对象流: 反映活动与对象之间的依赖关系,表示对 象对活动的作用或活动对对象的影响,用依赖关系表示。
对象流
51
6 对象流
• 带对象流的活动图
52
7 信号发送和接收
• 发送信号与接收信号
53
8 引脚
Pin • 是一个对象节点,代表活动连接输入、输出值
的连接点 • 用来标明每个活动节点所需输入的数据或者所
也可作为交互中一个的消息发送。
21
状态的类型
状态的类型 ① 初始状态/结束状态
初始状态
• 显示状态图中状态机中的执行的开始。 • 一个状态机只能有一个初态,因为每一个执行都是从相同的地方开
始的。如果一个状态机用多张图描述,则多张图用一个初态;
结束状态
• 表示一个最后的或者终端状态; • 终态的数目可以不确定。
63
1 工作流建模
• 建模策略(续):
– 识别工作流初始节点的前置条件和活动终点的后 置条件,这可有效地实现对工作流的边界进行建 模
– 从该工作流的初始节点开始,说明随时间发生的 动作和活动,并在活动图中把它们表示成活动节 点
– 将复杂的活动或多次出现的活动集合归到一个活
第七章 状态图和活动图

II.3 小 结
活动图的优点和缺点; 何时可使用活动图; 何时不应使用活动图;
UML活动图元语小结。
活动图的优点和缺点
优点:最适合支持并行行为,而且也是支持
多线程编程的有力工具。
缺点:很难清楚地描述动作与对象之间的关
系。虽然在活动旁标出对象名或者采用泳道 技术可以定义这种关系,但仍然没有交互图 简单直接。
转移
注释体 注释连接
II 活动图的基本要素
引
言;
活动图的基本要素;
小结。
II.1 引 言
基本概念;
活动图示例;
活动图的元模型。
基本概念
来源:
活动图主要来源于 Jim Odell 的事件图、 SDL状态建模技术和 Petri 网技术。 成活动图。
从概念层看,活动表示需要由人或计算机来
活动图的核心符号是活动,通过连接将活动组
完成的任务。图中描述了“人找饮料喝”这 一过程。
从说明层或实现层看,活动表示类中的方
法。图中描述了名字为“人”的对象类中一 个关于“找饮料喝”的方法。
活动图示例
人 找饮料
判断条件
[没有咖啡] [找到咖啡]
判定活动
[没有可口可乐] [找到可 口可乐]
相连,说明该注释体是针对该实体所进行 的描述。
活动图例子
活动图例子
课堂作业
某公司的设备采购流程设置为: A、由业务部门提出需求设备清单; B、将需求设备清单交采购部门建立采购采买单据; C、采购部门建立采购单据后,交财务部门,向财务部门 申请款项,预支零用金; D、财务部门建立应付帐款单据后:核支款项; E、采购部门在收到款项后,进行采买; F、采买完成后,执行: (1)发票和剩余款项交财务部: (2)设备交业务部门; G、(a)采购部门:采购单据结案; (b)财务部门:帐款冲销结案;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
状态中的基本概念
子状态:嵌套在另一个状态中的状态。 组合状态:含有子状态的状态。
子状态
简单状态是没有子结构的状态。 具有子状态(嵌套状态)的状态被称为复
合状态。子状态可能被嵌套到任意级别。 嵌套的状态机最多可能有一个初始状态和
一个终止状态。
子状态
状态图中的基本概念
历史状态是一个伪状态,其目的是记住从 组合状态中退出时所处的子状态。当再次 进入组合状态时,可直接进入这个子状态, 而不是再次从组合状态的初态开始。
内部转移 在不使状态发生变更的情况下进行的转移。
子状态
延迟的事 件
状态的嵌套结构,包括不相连的(依次处于活动 状态的)或并行的(同时处于活动状态的)子状 态。
未在该状态中处理但被延迟处理(即列队等待由 另一个状态中的对象来处理)的一系列事件。
事件触发器
在状态机环境中,事件是指可触发状态 转移的激励的发生。事件可能包括信号、调 用、时间推移或状态变更。信号或调用可能 具有其值可用于转移的参数,其中包括警戒 条件和操作的表达式。也可能会有无触发器 的转移,这样的转移没有事件触发器。这种 转移也被称为完成转移,它们在源状态完成 其活动后将被隐含触发。
所有对象都具有状态,状态是对象执行了 一系列活动的结果,当某个事件发生后, 对象的状态将发生变化。
一个状态包括:状态名、进入/退出动ห้องสมุดไป่ตู้、 内部转移、子状态、延迟事件。
状态具有的特征
名称
将一个状态与其他状态区分开来的文本字符串; 状态也可能是匿名的,这表示它没有名称。
进入/退出 在进入和退出状态时所执行的操作 操作
动作是一个不可中断的最小单元。
基本概念-状态
状态可以细分为不同的类型,如初态、终 态、中间状态、组合状态、历史状态等。
一个状态图只能有一个初态,但终态可以 有一个或多个,也可以没有终态。
中间状态包括两个区域:名字域和内部转 移域,内部转移域是可选的。
状态图中的基本概念
状态:在对象的生命周期中的某个条件或 状况,在此期间对象将满足某些条件、执 行某些活动或等待某些事件。
第八章 状态图和活动图
江西财大软件学院
状态图概述
状态图主要用于描述一个对象在其生存 期间的动态行为,表现一个对象所经历的状 态序列、引起状态转移的事件,以及因状态 转移而伴随的动作。
用一个状态机对一个对象的生命周期建 模,状态图是用于显示状态机的,重点在于 描述状态之间的控制流。
状态图概述
状态图是对类的一种补充描述,展示了此类对象 所具有的可能状态以及某些事件发生时其状态的 转移情况。
状态机
状态机由状态组成,各状态由转移连接 在一起。状态是对象执行某项活动或等待某 个事件时的条件。转移是两个状态之间的关 系,它由某个事件触发,然后执行特定的操 作或评估并导致特定的结束状态。图 1 描绘 了状态机的各种元素。
对象可能会在有限的时间长度内保持某 一状态 。
状态图建模
在具有以下两个特性的属性上建模: 属性拥有较少的可能取值; 属性在这些值之间的转移有一定的限制。
状态图用于显示状态机(它指定对象所在 的状态序列)、使对象达到这些状态的事 件和条件、以及达到这些状态时所发生的 操作。
状态机
状态机用于对模型元素的动态行为进行建 模,即,对系统行为中受事件驱动的方面进 行建模。状态机专门用于定义依赖于状态的 行为(依据元素所处的状态而有所变化的行 为)。其行为不会随着其元素状态发生变化 的模型元素不需要用状态机来描述其行为。
进入和退出操作
每当进入或退出状态时,进入和退出操作将 分别允许发出同一操作。这可以通过进入和 退出操作来顺利地完成,而不必明确地将操 作放在每个输入或输出转移上。进入和退出 操作可能没有实参或警戒条件。位于模型元 素的状态机顶层的进入操作可能具有特定的 参数,这些参数代表了在创建该模型元素时 状态机所接收到的实参。
状态图例子
状态图中的元素
状态(包括初始状态、结束状态和中间状 态、子状态、组合状态、历史状态等);
事件(四类事件); 转移;
什么是状态?
状态表示的是一个对象或交互过程中的一 个特定阶段:满足了某一个条件,进行某 项活动或等待某个事件的发生,状态对应 一段有限的时间。状态对应于一组对象属 性的值
浅历史状态表示只记住最外层组合状态的 历史。深历史状态表示可记住任何深度的 组合状态历史。
如果一个组合状态到达了其终态,则会丢 失历史状态中的信息。
基本概念-转移
转移是两个状态之间的关系,它表示当 发生指定事件并且满足指定条件时,第一个 状态中的对象将执行某些操作并进入第二个 状态。当发生这种状态变更时,即“触发” 了转移。在触发转移之前,可认为对象处于 “源”状态;在触发转移之后,可认为对象 处于“目标”状态。
内部转移
内部转移使事件可以在不退出状态的情 况下在状态内得到处理,从而可避免触发进 入或退出操作。
延迟的事件
延迟的事件是其处理过程被推迟的事件, 它们的处理过程要到事件不被延迟的状态 被激活时才会执行。当该状态被激活时, 将触发该事件,同时可能导致转移(好象 该事件刚刚发生)。要实施延迟的事件, 需要有事件的内部队列。如果事件已发生 但被列为延迟,它就会被添加到队列中。 当对象进入了不会使事件延迟的状态时, 将立即从该队列中取出这些事件。
警戒条件
当转移的触发事件发生时,将对警戒条 件进行求值。只要警戒条件不重叠,就可能 会有来自同一源状态并具有同一事件触发器 的多个转移。在事件发生时,只为转移进行 一次警戒条件求值。
操作
操作是可执行的、不可分割的计算过程,这 意味着,它不会被事件中断,而会一直运行 到结束为止。它与活动正好相对,因为活动 可能被其他事件中断。操作可以包括操作调 用(调用状态机的拥有者以及其他可见对 象)、创建或破坏其他对象、或者向另一个 对象发送信号。
在状态图中,状态由圆角矩形表示。状态的改变 称作转移,状态转移由箭头表示,箭头旁可以标 出转移发生的条件。状态转移可以伴随有某个动 作,它表明当转移发生时系统要做什么。
状态图概述
状态图是描述一个实体基于事件反应的动 态行为,显示了该实体如何根据当前所处 的状态对不同的事件做出反应的。
通常我们创建一个UML状态图是为了以下 的目的:研究类、角色、子系统、或组件 的复杂行为。