第10章 状态机图[课堂课资]
第10章 状态机图
内部调用 事件
Credit
Close()
Deposit(m)/balan=balan+m
Withdrawal(m)
[balan<m]
动作
Withdrawal(m) [balan>=m]
监护条件
RejectWithdrawal entry/logRejectWithdrawal
AcceptWithdrawal entry/balan=balan-m
• 通常将入口动作(entry/action) • 出口动作(exit/action) • 活动(do/activity) • 内部迁(event/action(argument) • 标识在状态图标的第二栏,如图10-5所示。
• 内部迁移发生时对象的状态不会改变,外部迁移发生时对 象状态要发生改变。
有多个终止状态,它用一个套有一个实心圆的空心圆表示。 如图10-3所示。
图10-3 终止状态的表示
3.状态
• 同一状态有三种表示方法:
• 图10-4是状态的简单表示;
• 图10-5是状态的详细表示;
• 图10-6所示,在圆角矩形的第三栏中,绘制出了子状态 (如果该状态包含了子状态的话)。
状态名称 图10-4 简单表示
10.2.1 状态的表示
• 1.初始状态 • 初始状态代表对象的起始状态,只能作为迁移的源节点,
而不能作为迁移的目标节点。 • 初始状态在一个状态图中只允许有一个,它用一个实心的
圆表示,如图10-2所示。
图10-2 初始状态的表示 Nhomakorabea2.终止状态
• 终止状态是对象的最后状态,是一个状态图的终止点。 • 终止状态只能作为迁移的目标节点。在一个状态图中可以
10章时序逻辑电路课件
/0
010
101
/1
(b) 无效循环
32
时序图
CP Q0 Q1 Q2 Y
33
⑤ 电路功能
有效循环的6个状态分别是0~5这6个十进制数字的格雷码, 并且在时钟脉冲CP的作用下,这6个状态是按递增规律变 化的,即:
000→001→011→111→110→100→000→… 所以这是一个用格雷码表示的六进制同步加法计数器。当 对第6个脉冲计数时,计数器又重新从000开始计数,并产 生输出Y=1。
4
10.2.1 基本RS触发器
❖ 用或非门实现的基本RS触发器
(a)逻辑图
(b)逻辑符号
G1
S
≥1
Qb
S
Q
输入高电平有效
≥1
R
Qa
R
G2
由逻辑图可得逻辑表达式为:
Q 第55 章
( d )基本RS触发器的动作特点
在基本RS触发器中,输入 信号直接加在输出门上,所 以输入信号在全部作用时间 里(即:S或R为1的全部时间) 都能直接改变输出端Q和Q的 状态。
K2 Q1n K1 Q0n K0 Q2n
调题图
29
② 求状态方程
JK触发器的特性方程:
Qn1 JQ n KQn
将各触发器的驱动方程代入,即得电路的状态方程:
QQ12nn
1 1
J 2Q2n J1Q1n
K2Q2n Q1nQ2n Q1nQ2n Q1n K1Q1n Q0nQ1n Q0nQ1n Q0n
上升沿触发有效
Q
Q
1J C1 1K
J CP K
下降沿触发有效
16
10.3.同步时序逻辑电路的分析方法
任一时刻的输出信号不仅取决于此时刻的输入信号, 而且取决于上一个时刻的输出状态。
第10章--活动图
图10.4 泳道示例
10.2.4 对象流
用活动图描述某个对象时,可以将涉及到的对象放到活动 图中并用一个依赖将其连接到进行创建、修改和撤销的活 动或状态上,对象的这种使用方法就构成了对象流。
对象流是活动图中活动或状态与对象之间的依赖关系, 表示活动使用对象或者活动对对象的影响。
对象
对象流
表示对象是动作的输出:该活动对对象施加了一定的 影响,施加的影响包括创建、修改和撤销等。
活动图与状态机图是不同的,其实质性区别在于,活动图描述的是响应 内部处理的类的行为,状态机图描述的是类响应事件的外部行为。
活动图着重表现的是从一个活动到另一个活动的控制流,是内部处理驱 动的流程;而状态机图着重表现的是从一个状态到另一个状态的流程, 常用于有异步事件发生的情形。
活动图与交互图相比也各有侧重点。活动图着重表现的是活动的控制流, 描述在对象之间传递的操作;而交互图着重表现的是对象到对象的控 制流,描述在对象之间传递的消息。
表示对象是动作的输入:该动作使用了该对象。
10.2.4 对象流
同一个对象可以多次出现, 它的每一次出现表明该对象 正处于生存期的不同状态。
图10.5 图书管理的活动图
10.3 活动分解
一个活动可以分解成若干个子活动(Subactivity)或动作, 这些子活动或动作本身组成一个活动图。
一个不含内嵌套活动或ຫໍສະໝຸດ 作的活动,称为简单活动。 如果一个活动内嵌套了若干活动或动作,则称该活动为组
在软件系统的分析和设计中,对业务领域的工作流的分析是至关重 要的。可以使用活动图对工作流建模。
用活动图对工作流建模可以采取以下步骤: (1)找出负责实现工作流的业务对象。 (2)确定工作流的初始状态和终结状态,明确工作流的边界。 (3)从工作流的初始状态开始,找出随时间而发生的活动和动作, 把它们表示成活动状态或动作状态。 (4)对于复杂的动作或多次重复出现的一组动作,可以把它们组 成一个活动状态,并且用另外一个活动图来展开表示。 (5)给出连接活动和动作的转移(动作流)。首先处理顺序动作流, 然后处理条件分支,最后处理分叉和汇合(并发与同步)。 (6)在活动图中给出与工作流有关的重要对象,并用虚箭线把它们 与活动状态或动作状态相连接。
状态机图(精品)
状态机图1.概述状态机图(State Machine Diagram)是用来显示状态机的图,包括简单状态、转换和嵌套的复合状态等,一个典型的状态机图如图1所示:图1. 状态机图2.基本表示符号状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。
2.1状态(State)状态是对象生命周期中的一个条件或形态。
状态由对象的属性值、与其他对象的关系以及正在执行的活动来确定。
在UML中,状态用圆角矩形和状态名表示,初始状态用实心圆表示,终止状态用牛眼表示,如图2所示:图2. 状态状态可以有一个或多个分栏,这些分栏是可选的,包括名称分栏、嵌套区域、内部转换分栏等,如图3所示:图3. 带分栏的状态状态也可用圆角矩形上带有状态名称标签的方框表示,如图4所示:图4. 带有名称标签符号的状态2.2转移(Transaction)转移表示状态之间可能的路径,可以表示外部转换(用箭头表示),也可以表示内部转换(嵌套在状态内部)。
如图5所示:图5. 转移2.3事件(Event)事件是对,在特定时间和空间上,所发生的有意义的事情。
在状态机中,事件触发转移,事件或者显示在转换之上,或显示在状态以内。
共有四种类型的事件:信号事件、调用事件、时间事件、改变事件。
信号用于对象间异步传递的信息包,它没有任何操作,只有自身携带的信息。
信号事件是通过信号来触发的事件,在UML中,信号如图6所示:图6. 信号调用事件是请求在类语境的实例上调用特定的操作,在UML中,调用事件如图7所示:图7. 调用事件时间事件用关键字after表示,说明事件被触发的临界时间。
改变事件用关键字when表示,说明将事件改变所满足的条件。
如图8所示:图8. 时间事件和改变事件2.4伪状态(Pseudo State)伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。
它是一个瞬时状态,用于构造转换的细节。
当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。
第10章 状态机图讲解
初始状态的表示
终止状态 终止状态是对象的最后状态,是一个状态图的终止点。 终止状态只能作为转换的目标,而不能作为转换的源。 终止状态在一个状态图中可以有多个,它用一个套有 一个实心圆的空心圆表示。
终止状态的表示
状态
对象属性值的集合标识了一个对象的状态。表示对象状态的图标由一 个带圆角的矩形表示。它包含个三部分: 名称:给对象所处状态取的名字,名字用一个字符串表示,在一个图 中,名字应该是唯一的。 内部转换:对象响应外部事件所执行的动作。内部转换发生时,不改 变对象的状态,但是,当进入该状态时,可以包含进入动作;当退出 该状态时,可以包含退出动作。我们把内部转换标识在状态框的第二 栏;用一条实线箭头来标识外部转换,外部转换是指一种状态到另一 种状态的转换。 嵌套状态 :状态图中的状态可以包含两种状态:一种是简单状态, 简单状态不包含其它状态;一种是组合状态,组合状态包含了子状态。 即状态图的某些状态本身也是状态图。
Agenda
• • • • •
状态和状态机 如何阅读状态机图
如何绘制状态机图
状态机图应用说明 本章小结
阅读最简单的状态图
•
最为核心的元素无外乎是两个:一个是用圆角矩形表示 的状态(初态和终态例外);另一个则是在状态之间的、
包含一些文字描述的有向箭头线,这些箭头线称为转换
Hale Waihona Puke 初始状态 初始状态代表状态图的起始位置,只能作为转换的源, 而不能作为转换的目标。初始状态在一个状态图中只 允许有一个,它用一个实心的圆表示
状态机图
知识图谱
Agenda
• • • • •
状态和状态机 如何阅读状态机图
如何绘制状态机图
状态机图应用说明 本章小结
状态机图
历史状态
历史状态只是一个伪状态(Pseudo State)的图形标
记,只能作为一个组合状态中的子状态,不能在顶层 状态机图中使用。
例题:网上购物车结账
c
广东药学院 · 医药信息工程学院
历史状态
历史状态的分类
同级别子状态:浅历史 含下级子状态:深历史
c
广东药学院 · 医药信息工程学院
对确定对象的状态有重要意义的属性称为状态属
性;
在建立状态机模型时,需要正确地找出一个对象
的全部状态属性,根据它们的值划分对象状态;
c
广东药学院 · 医药信息工程学院
状态
UML对一个状态的描述包含以下信息
名字(允许状态匿名) 入口活动 出口活动
内部转移
子状态 延迟事件
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
例题:网上商店送货处理状态机图 (简单状态表示的)。
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
例题:网上商店送货处理状态机图(复合状态表示)。
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
可以将复合状态整体视为一个简单状态; 采用复合状态可以简化对复杂行为的建模,清楚地表
特殊状态
初态(实心圆)
终态(圈内实心圆)
c
广东药学院 · 医药信息工程学院
状态机
状态机计算机科学理论的一部分。
编译技术:用有限状态机描述词法分析过程; 操作系统:进程调度、缓冲区调度等都可采用状态机描述。
UML用状态机对系统的动态特征建模。
状态机一般用于对一个模型元素建立行为模型,模型
状态图课件
延迟事件:该事件不会触发状态的转换,当对
象处于该状态时事件不会丢失,但会被延 迟执行。例如,当E-mail程序中正在发送 第一封邮件时,用户下达发送第二封邮件 执令就会被延迟,但第一封邮件发送完成 后,这封邮件就会被发送。这种事件就属 于延迟事件。
四、变迁 变迁被定义为软件对象的两个状态之间的关 系,表明在指定的事件发生后,在特定的条件下 ,对象执行指定的动作,并进入另一个状态。
内部转换和自转换(完成转换)不同:
自转换: 源状态和目标状态为同一状态的转移。
五、状态图建模技术
建模步骤: 1. 找出适合用模型描述其行为的类。 2. 确定对象可能存在的状态。 3. 确定引起状态转换的事件。 4. 确定转换进行时对象执行的相应动作。
例 书的状态图
状态图的Rose建模
一、新建状态机图
状态变量 活动
在一个状态中允许有多个动作。
1. 2. 3. 4. entry:入口动作,进入状态时发生的动作 exit:出口动作,发生状态改变时执行的动作 do:标记内部活动,处于某种状态时发生的动作 event:当特定事件触发时指定相应动作的发生。
Idle entry/LockScreen() exit/closeScreenSaving() do/showScreenSaving()
状态机图
对事物所处的状态及其变迁的考虑: 大多数事物在其生命周期中经历了不同的状态; 在特定的时间,一个事物位于一个状态; 在现实世界存在着引起事物的状态发生变化的事件; 事物在其状态间按次序转化 当事件发生时,事物可能需要采取一些动作。
状态机图
状态机图(State Machine Diagrams)给出了一个状态机,强调了从状态到状态 的控制流。 状态机(State Machine)定义了对象在生命周期中响应事件所经历的状态的序列 以及对象对这些事件的响应。状态机由状态、跃迁、事件、活动、动作等组成。 状态(State)代表对象在生命周期中的一种条件或状况,在这种状况下,对象满 足某个条件,或执行某个动作、或等待某个事件。一个状态在一个有限的时间段内 存在。 事件(Event)是一个重要事件的规范,该事件在时间和空间域中有一个位置。 跃迁(Transition)是两个状态之间的关系,它表示第一个状态的对象将执行某个 动作,如果规定的事件发生或规定的条件被满足,则对象进入第二个状态。 活动(Activity)是在状态机中进行的一个非原子的执行,它由一系列的动作组成 。 动作(Action)是一个可执行的原子计算,它导致状态的变更或返回一个值。 通常一个状态机依附于一个类,并且描述一个类的实例。状态机包含了一个对 象在其生命周期所有状态的序列以及对象对接收到的事件所产生的反应。
活动图与状态图
系统分析 在系统分析系统阶段用状 态图和活动图为对象动态模型 中的状态模型建模。 系统设计 在系统设计阶段阶段对已 经建立的对象动态模型(状态 实现 图、活动图、顺序图和协作图) 采用迭代式的方式进一步细化 测试 和完善。
部署
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
10.2.2 状态图组成
2. 状态 状态是指在对象的生命期中的一个条件或状况, 在此期间对象将满足某些条件、执行某些活动或等待 某些事件。
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
10.2.2 状态图组成
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
10.1 动态建模概述
5.状态图做什么?
状态图(State Diagram)主要用来描述对象、子系统、系 统的生命周期。通过状态图可以表现系统中一个对象所具有的 各种状态和这个对象从一种状态到另一种状态的转换(迁移), 以及影响对象这些状态的事件(如收到消息、时间已到、报错、 条件为真)等。它主要描述某个对象从一个状态到另一个状态 变化迁移的控制流。
第10章 状态图与活动图
10.2.2 状态图组成
理解状态的特征: (1)进入/退出动作:对象本身的一个操作。如果在电梯里是一个 状态的话,那员工进电梯和出电梯就是状态“在电梯里”的进 入/退出动作。 (2)内部转换:例如员工在去等电梯的时候发现钥匙没带,此时 我们不用在“等电梯”以后,而是在“准备回家”的状态中就 去拿钥匙了。虽然整体的状态没有发生变化,但对于对象本身 来说,前后是不一样的,一个是有钥匙,一个是没有钥匙。 (3)子状态:如果需要进一步描述员工对象在电梯里聊天、打电 话等状态时,这些状态就是该对象的“在电梯里”状态的子状 态。 (4)延迟事件:现在不立即产生的事件,该事件是在一段时间以 后才产生的事件。员工必须等待到达17:50的时候,才能下班。
UML讲义10-状态机图
注意:状态本质上就是对象属性的值, 注意:状态本质上就是对象属性的值,状态的变化就是属性 值的变化。 值的笛卡儿积中, 所构成的笛卡儿积中,尽管 每一个元素均可广义地称为 对象的一个状态, 对象的一个状态,但软件开 发者需要认识的是这个笛卡 儿积上的每一个等价集合, 儿积上的每一个等价集合, 即使对象的操作呈现相同行 为规则的属性值的集合。 为规则的属性值的集合。把 每一个等价集 等价集称为对象的一 每一个等价集称为对象的一 种状态。 种状态。
3、时间事件 时间事件是经过一定的时间或者到达某个时间后发生的 时间事件是经过一定的时间或者到达某个时间后发生的 经过一定的时间或者到达某个时间 事件。时间事件使用after标识,其格式为: after标识 事件。时间事件使用after标识,其格式为: after(时间表达式)/动作 after(时间表达式)/动作 时间表达式)/ at(时间表达式)/动作 时间表达式)/ at(时间表达式)/动作
思考:以下动作发生的先后顺序? 思考:以下动作发生的先后顺序?
第四节 组成状态
简单状态: 简单状态:不内含嵌套状态 状态
组成状态: 组成状态:嵌套了其他状态 子状态: 子状态:被嵌套的状态
简单状态: 简单状态:A 组成状态: 组成状态:B 子状态: 子状态: C D
为什么会出现子状态? 为什么会出现子状态?
状态
状态
初始状态 终止状态
状态还可以添加活动。活动是在该状态时要执行的动作。 状态还可以添加活动。活动是在该状态时要执行的动作。
活动的格式如下: 活动的格式如下: [Entry|exit|do]/动作 [Entry|exit|do]/动作
活动有三个标准事件(参见P139): 活动有三个标准事件(参见P139): P139 entry事件:进入该状态时的特定动作(入口动作) entry事件:进入该状态时的特定动作(入口动作) 事件 exit事件:退出该状态时的特定动作(出口动作) exit事件:退出该状态时的特定动作(出口动作) 事件
第10章 状态图讲解
构成状态图的元素
外部转换
外部转换是一种改变状态的转换,也是最普通最常见的一 种转换。在UML中,它用从源状态到目标状态的带箭头的 线段表示,其他属性以文字串附加在箭头旁。
构成状态图的元素
内部转换
内部转换只有源状态,没有目标状态,不会激发入口和出 口动作,因此内部转换激发的结果不改变本来的状态。如 果一个内部转换带有动作,它也要被执行。内部转换常用 于对不改变状态的插入动作建立模型。要注意的是内部转 换的激发可能会掩盖使用相同事件的外部转换。
状态图的组成
2. 并发组成状态
在一个组成状态中,可能有两个或者多个并发的子状态机, 我们称这样的组成状态为并发组成状态。每个并发子状态 还可以进一步分解为顺序组成状态。
一个并发组成状态可能没有初始状态,终态,或者历史状 态。但是嵌套在它们里的任何顺序组成状态可包含这些伪 状态。
创建状态图
要创建状态图,首先要标识出哪些实体需要使用状态图进 一步建模。虽然我们可以为每一个类、操作、包或用例创 建状态图,但是这样做势必浪费很多的精力。一般来说, 不需要给所有的类都创建状态图,只有具有重要动态行为 的类才需要。
从另一个角度看,状态图应该用于复杂的实体,而不必用 于具有复杂行为的实体。使用活动图可能会更加适合那些 有复杂行为的实体。具有清晰、有序的状态实体最适合使 用状态图进一步建模。
实际就是工作流在此处按监护条件的取值发生 分支,在UML中判定用空心菱形表示。
状态图的概念
2. 状态图的作用
(1)状态图清晰的描述了状态之间的转换顺序,通过状 态的转换顺序也就可以清晰的看出事件的执行顺序。如果没 有状态图我们就不可避免的要使用大量的文字来描述外部事 件的合法顺序。
第10章UML状态机图
9
10.2.3 分支的表示
对象在外部事件的作用下,根据监护条件的不同值, 转向不同的目标状态,即对象的状态根据监护条件的 取值而发生分支。分支用空心小菱形表示,如图10-13 所示。
根据监护条件的真假可以触发不同的分支迁移。如图 10-14所示,对象处于状态1时,当某个事件作用于对 象,这时就要计算监护条件,当条件满足时(true),对 象的状态变为状态2;当条件不满足时(false),对象状 态变为状态3。
(1) 用户设置密码时,当前状态不会发生改变,可以把 这一动作建模为内部迁移:set/reset password。 (2) 显示帮助时,当前状态也不会改变,可以把这一动 作建模为内部迁移:help/show help。
13
10.3.3 自动迁移
自动迁移是指在没有事件 触发的情况下,当监护条件 为真时执行某些动作。它是 离开某个状态后重新进入原 先的状态,激发状态的入口 动作和出口动作的执行。
6
10.2.2 迁移的表示
迁移是指对象在事件的作用下,当监护条件为 真时执行一定的动作。迁移分四种类型(外部迁 移、内部迁移、自动迁移和复合迁移)。下面主 要介绍外部迁移的表示法。
外部迁移用带箭头的直线表示,箭尾连接源状 态(转出的状态),箭头连接目标状态(转入的状 态)。每个迁移可能包含三个要素:
22
10.4.5 建立状态机图的步骤
绘制状态机图的一般步骤如下。
(1) 寻找主要的状态。 (2) 寻找外部事件,以便确定状态 之间的迁移。 (3) 详细描述每个状态和迁移。 (4) 把简单状态图迁移为复合状态 图。
23
10.5 状态机图应用
1.对对象的生命 周期建模 2.对反应型对象 建模
第10章活动图 UML
UML建模语言
10.1.1 活动 图的定义 活动图是一种 用于描述系统 行为的模型视 图,它可用来 描述动作和动 作导致对象状 态改变的结果, 而不用考虑引 发状态改变的 事件。
UML建模语言
10.1.2 活动图的作用 *描述一个操作执行过程中所完成的工作,说明角 色、工作流、组织和对象是如何工作的。 *活动图对用例描述尤其有用,它可建模用例的工 作流、显示用例内部和用例之间的路径。 *显示如何执行一组相关的动作,以及这些动作如 何影响它们周围的对象。 *活动图可以画出工作流用以描述业务,有利于与 领域专家进行交流。通过活动图可以明确业务处 理操作是如何进行的,以及可能产生的变化。 *描述复杂过程的算法,在这种情况下使用的活动 图和传统的程序流程图的功能是相似的。
UML建模语言
10.3.6 创建分 叉与结合 单击工具栏中的 Horizontal Synchronization 图标按钮,在绘 制区域单击鼠标 左键。
UML建模语言
10.3.7 创建分 支与合并 首先单击工具栏 中的Decision图标 按钮,然后在绘制 区域单击鼠标左键。
UML建模语言
10.3.8 创建泳道 首先需要单击工具栏中的Swimlane图标按钮, 然后在绘制区域单击鼠标左键,就可以创建新 的泳道。
UML建模语言
10.2.6 泳道 为了对活动的职 责进行组织而在 活动图中将活动 状态分为不同的 组,称为泳道 (Swimlane)。 每个泳道代表特 定含义的状态职 责部分。
UML建模语言
10.2.7 对象流 对象流(Object Flow)是将对象流 状态作为输入或输 出的控制流。在活 动图中,对象流描 述了动作状态或者 活动状态与对象之 间的关系,表示了 动作使用对象以及 动作对对象的影响。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 终止状态 – 终止状态是对象的最后状态,是一个状态机图的终止点。终止状
态只能作为转换的目标,而不能作为转换的源。终止状态在一个 状态机图中可以有多个,它用一个套有一个实心圆的空心圆表示。
• 1).信号事件
• 对象之间通过发送信号和接收信号实现通信。信号是一种异步机制。对 于一个信号而言,对象一般都有相应的事件处理器,如onMouseClick()。
• 2).调用事件
• 调用某个对象的成员方法就是调用事件,它是一种同步的机制。例如 turnOn是一种调用事件,用来将开关置于“On”状态。
精制知识
5
状态机图的概念
• 状态机图的作用
– 状态机图常用来描述业务或软件系统中的对象在外部事 件的作用下,对象的状态从一个状态到另一个状态的控
制流。利用状态机图可以精确地描述对象在生命周期内 的行为特征。
• 状态机图的组成元素
– 状态机图的组成元素包括:初始状态、终止状态、状态、 转换。其中,转换将各种状态连接在一起,构成一个状 态机图。
精制知识
3
状态机图:电梯 状态机图主要显示以下3种内容: 对象在生命周期中所经历的状态 序列; 诱发对象从一个状态转移到另一 个状态的事件; 状态改变所导致的动作。
精制知识
4
状态机图的概念
• 状态机图描述对象在整个生命周期内,在外部事 件的作用下,从一种状态转换到另一种状态的关 系图。这种图的节点是状态(包括初始状态和终止 状态),关系是转换。
精制知识
2
2
为什么要建模状态机图
• 对象可能会有不同的状态,某些行为依赖于这些状 态。例如,按下开关按钮时,电灯将改变当前的状 态(由关变开或由开变关),因此: – 需要记录对象当前的状态 – 发生了某种事件才会引起状态间的转移 – 由一个状态转到另一个状态的过程通常通过方法 调用实现
• 状态机图通常作为对类图的补充
• 嵌套状态 :状态机图中的状态可以包含两种状态:一种是简单状 态,简单状态不包含其它状态;一种是组合状态,组合状态包含 了子状态。即状态机图的某些状态本身也是状态机图。
精制知识
9
状态机图的表示
状态名
入口动作, 进入该状 态时执行该动作.
动作,处于该状态 时执行的动作.
内部转换,该状态中出现 特定事件时执行的动作.
精制知识
8
状态机图的表示
• 状态 – 对象属性值的集合标识了一个对象的状态。表示对象状态的图标 由一个带圆角的矩形表示。它包含三部分:
• 名称:给对象所处状态取的名字,名字用一个字符串表示,在一 个图中,名字应该是唯一的。
• 内部转换:对象响应外部事件所执行的动作。内部转换发生时, 不改变对象的状态,但是,当进入该状态时,可以包含进入动作; 当退出该状态时,可以包含退出动作。
烧水器的状态机图
精制知识
11
转换的五要素
• 源状态:即受转换影响的状态 • 目标状态:当转换完成后对象的状态 • 触发事件:用来为转换定义一个事件,包括调用、改变、
信号、时间四类事件
• 监护条件:布尔表达式,决定是否激活转换、 • 动作:转换激活时的操作
精制知识
12
状态机图的表示
• 1.源状态 • 对于一个转换来说,转换前对象所处的状态,就是源状态。源状态是
• 3).改变事件
• 指某个指定属性值为真时,事件得到触发。与监护条件不同,在对象生 命周期内,一直在计算改变事件中的属性值,事件触发,计算停止。
• 4).时间事件
• 当时间流逝到某个时刻,触发事件对对象起作用。例如,after (12:00)),after(2seconds)),when(12:00)。
• 状态机
– 在整个生命周期内,描述对象处于各种状态的图,该图
必须完整包括:初始状态、终止状态、状态、转换。状
态机图不一定完整包含初始状态、终止状态、状态、转
换等状态 。
精制知识
6
状态机图的基本符号
精制知识
7
状态机图的表示
• 一个状态机图包含的元素有初始状态、终止状态、状态、转换、分支。 • 状态的表示
• 5).延迟事件
• 指对象处在在本状态时外部事件产生了,但没有执行事件,要推迟到另
外一个状态才执行的事件。 精制知识
14
状态机图的表示
• 4.监护条件 • 监护条件是一个布尔表达式,当布尔表达式的值为真时,转换才能够
完成。只有在触发事件发生时,才计算一次监护条件的值,当监护条 件的值为真时,转换才发生。如果转换发生后,监护条件才由假变为 真,那么转换也不会被触发。
退出动作, 当离开该状态 时执行该动作.
延迟响应事件, 在该状态出现该事件时, 不在本 状态响应,而是延迟到其他状态响示
• 转换的表示 • 转换是指对象在外部事件的作用下,当满足特定的条件时,对象执行
一定的动作,进入目标状态。转换用带箭头的直线表示,箭尾连接源 状态(转出的状态),箭头连接目标状态(转入的状态)。 • 转换关系到的内容包括:源状态、目标状态、外部事件、监护条件和 执行的动作。下图描述了烧水器的状态机图。 • 注意:用实线箭头表示的转换都是外部转换。
精制知识
15
状态机图的表示
• 5.动作 • 当转换被激活后,如果定义了相应的动作,那么就将执行这个动作。动
作可以是一个赋值语句、简单的算术运算、发送信号、调用操作、创建 和销毁对象、读取和设置属性的值,甚至是一个包含多个动作的活动。 例如,当turnOn事件发生,就测试监护条件[有水],如果有水,就会执 行“烧水”的动作。 • 动作分为入口动作和出口动作。 • 1).入口动作 • 入口动作表示对象进入某个状态所要执行的动作。入口动作用“entry/ 要执行的动作”表示。 • 2). 出口动作 • 出口动作表示对象退出某个状态所要执行的动作。出口动作用“exit/要 执行的动作”表示。
LOGO
《UML 统一建模》
第10章 状态机图
1
精制知识
对象和状态
• 对象是某个状态下的对象,而状态则是描述 当前对象。所有的对象均有状态,状态可改 变
• 下面一些例子说明了对象和状态 – (1)支票(对象)已付(状态) – (2)汽车(对象)已启动(状态) – (3)小王(对象)睡着了(状态) – (4)小红(对象)未婚(状态)
个相对的概念,即,相对当前状态而言,它的前一个状态就是源状态。 • 2.目标状态 • 转换完成后,对象所处的状态就是目标状态 。当前状态相对它的前一
个状态而言,当前状态就是目标状态。源状态和目标状态都是相对某 个转换而言的。
精制知识
13
状态机图的表示
• 3.事件
• 事件就是外部作用于一个对象,能够触发对象状态改变的一种现象。