第7章_状态机图资料
UML的状态机图

UML的状态机图UML(Unified Modeling Language)是一种标准化的建模语言,用于描述软件系统中的各种构建块和交互关系。
UML的状态机图是其中一个最为重要的建模图之一。
什么是状态机图?状态机图是一种用于描述对象行为的UML图表。
它以有限状态机的形式描述对象或系统在不同状态下对事件以及其他因素产生的响应。
状态机图显示了对象的状态及其之间的转换。
状态机图主要由三个部分组成:状态、转移和事件。
状态表示对象或软件系统处于的状态,转移表示状态之间的转换,事件则表示导致状态转换的触发器或条件。
状态机图的建立过程在建立状态机图之前,需要先确定对象或软件系统的状态、转移和事件。
1. 确定状态首先需要确定对象或软件系统可能出现的所有状态。
每个状态都应该有一个名称、一个描述以及一个标识符。
状态可以是“初态”(启动状态)、“终态”(结束状态)或“中间态”(中间状态)。
2. 确定转移和事件根据对象或软件系统的实际情况,确定状态之间的转移以及导致转移的事件或条件。
每个转移都应该有一个名称、一个标识符以及一个触发器。
触发器可以是一些条件,例如键盘上的一个按键或计时器到期,也可以是上一个状态完成某些任务导致的条件。
例如,在一个自动售货机的状态机图中,售货机可能处于“待机”、“已付款”、“正在出货”、“出货完成”四种状态。
当用户选择购买商品并投入硬币时,售货机会从“待机”状态转移到“已付款”状态,并且会关闭“使用硬币”事件。
当售货机完成出货并关闭接口时,它会从“正在出货”状态转移到“出货完成”状态。
状态机图的用途状态机图有很多用途。
它可以用于描述产品或系统的交互设计,也可以用于演示API和网络安全策略的行为。
一些常见的用途包括:1. 软件开发状态机图可以在软件开发过程中用于确定软件的行为、处理错误和异常情况、定义状态转换以及帮助代码实现。
通过建立状态机图,可以更好地理解软件中各个状态的流转情况,从而提高软件开发效率。
状态机图状态活动

1.初态和终态
初态(Start state)
显示状态图中状态机的执行的开始 一个状态机只能有一个初态,因为每一个执行都是从 相同的地方开始的。如果一个状态机用多张图描述, 则多张图用同一个初态 嵌套状态中可以使用新的初态
终态(End State)
表示一个最后的或者终端状态 终态的数目可以不确定
2.中间状态
状态图
状态图的作用
描述一个特定对象的所有可能状态 以及由于各种事件的发生,而引起的状态间的 转移
状态图
状态图的组成
节点是状态:包括初始状态和终止状态,用圆 角矩形表示 关系是转换(或转移):用状态之间包含一些 文字描述的有向箭头线表示
状态
状态的几种类型
1.初态和终态 2.中间状态 3.组合状态 4.历史状态
绘制状态机图的步骤
寻找主要的状态 确定状态之间的转换 细化状态内的活动与转换 用复合状态来展开细节
状态图(购物网站)
当从状态“结账”和“显示购物车”返回子状态“显示索 引信息”时,将进入的是离开时的历史状态。 也就是说,转到购物或结账区之后,再回到“浏览目录” 的页面时,其中的内容是不变的,仍保留原来的信息。
历史状态是一种伪状态 可以存储退出组合状态时所处的子状态,则返回 组合状态时可以直接回到相应的子状态
转换的五要素
源状态(Source State):转换激发之前对象所处的状态 目标状态(Target State) :转换完成后对象所处的状态 触发事件(Trigger Event) :引起转换发生的事件 监护条件(Guard Condition) :方括号括起来的布尔表达 式,用于决定是否激活转换 动作(Action) :转换激活时对象执行的操作
细化状态内的活动与转换
状态机图(精品)

状态机图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)伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。
它是一个瞬时状态,用于构造转换的细节。
当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。
第7章状态机图

7 第章状态图
7.6 并发状态
7.6.1 并发状态的含义 7.6.2 同步状态
7.6.1 并发状态的含义
并发状态:在一个状态机或一个复合状态中,如果同时存 在相互可以独立的几组状态,则称这几组状态是并发状态 (concurrent state)。
例如:
7.6.2 同步状态
同步状态:指多个并发区间中的状态在转换过程彼此存在 同步关系,一个区间中的一个转换需要等到另一个区间中的 某个转换发生后才能进行。 例如:
• 初始状态表示一个状态机从此结点开始,但事物不会此状态 停留,会立即转换到初始状态所连接的第下一个状态。
• 初始状态只有输出,没有输入。
7.7.2 分叉与汇合
• 分叉 (fork) :指将一个转换分成两个或多个转换,用来描述 需要并发的状态。
• 汇合 (join) :指将从并发状态来的转换合并形成一个转换, 用来描述多个并发状态的控制同步。
7.8.5 状态机与其他的图比较
1)状态机图用于事物状态及其变换的建模;活动图用于过 程流程建模 。 2)状态结点表示事物一个状态,活动结点表示一个过程中 的一个动作。 3)交互图用于多个对象为完成一个任务的交互关系,状态 机图表示一个事物所处的状态,及其变换。 4)可以用状态机描述一个交互过程中所处的状态及其转换, 用活动图描述一个交互执行的流程。
3 交互状态建模:一个交互描述为完成某项功能,系统中 若干个对象相互交互消息的过程。一个交互过程也会存在 多种状态,及其状态的转换,可以用状态机图来描述交互 状态的转换。
订货交互的状态机:
7.8.2 状态机的用途
4 构件状态建模:构件封装了多个类,构件在其生命周期 中也会存在不同状态,可以用状态机对构件的状态及其转 换进行建模。
UML与系统分析设计 第07章 状态机图

7.2 状态机图
2.转移 转移用实箭线表示,箭尾连接出发状态,即源状态,箭头 连接到达状态,即目标状态。 在箭线上可以标示与该转移有关的选项:事件、保安条件 (Guard Condition)和动作。 当处于源状态的对象接收到一个事件,并且保安条件得到 满足(如果有保安条件的话)时,则执行相应的动作,并 从源状态转移到目标状态。如果在转移箭线上不标示触发 转移的事件时,则从源状态转移到目标状态是自动进行的。 状态转移的图形表示如图7.3所示。
Home
第7章 状态机图
7.1 7.2 7.3 状态机 状态机图 状态
7.4
7.5 7.6
Home
转移
并发状态机图 状态机图的应用
7.1 状态机
在计算机技术中,状态机的概念和使用由来已久。 在程序设计语言的编译技术中,用有限状态机描述词法分 析过程; 在操作系统中,进程调度、缓冲区调度等都可以采用状态 机描述(参见图7.1 )。 UML用状态机对系统的动态特征建模。 UML定义状态机是一个行为(Behavior),它说明一个模 型元素在其生命期间的状态的序列,及其对事件的响应。 状态机表示一个模型元素在其生命期间的情况:从该模型 元素的开始状态起,响应事件,执行某些动作,引起转移 到新状态,又在新状态下响应事件,执行动作,引起转移 到另一个状态,如此继续,直到终结状态。
Home
7.3.2 组合状态
例:一个表示网 上商店处理送货 过程的状态机图, 如图7.7所示。它 是一个带有组合 状态的状态机图。
图7.7 组合状态机图示例
Home
7.3.2 组合状态
组合状态可以包含有顺序子状态或并发子状态。 一个组合状态从理论上说可以嵌套任意层次,而外部组 合状态本身可以作为一个简单状态来对待。 采用组合状态可以简化对复杂行为的建模。 更为重要的是组合状态清楚地表达了状态的结构关系, 便于分清主次,分别对待。 如果状态图中的状态比较多,若不采用组合状态,则转 移线的交叉现象会不可避免,图面将凌乱不堪。 例如,图7.8的送货处理状态机图是图7.7的另一个版本, 其中没有采用组合状态。在图7.8的状态机图中出现了转 移线交叉。
状态机图PPT

新状态
开始
பைடு நூலகம்
结束
转换
状态机的各种元素
初始状态
最终状态
开始
结束
关闭 首页面
entry/ 播放音乐()
<<类型>>
事件( 参数 )[ 监护条件 ] / 动作
入口动作
事件、动作、参数、警戒(监护条件)
状态
嵌套状态
转换
NewState2
NewState 4
NewState 3
NewState 5
NewState 6
状态图的概念和内容
• 状态图是UML中对系统动态方面建模的图之一。 • 状态图是一种特殊种类的图形,它拥有所有其他图一样的
公共特性,即名称和投影在一个模型上的图形。状态图和 其他图的区别在于它的内容。状态图通常包括如下内容: (1)状态(2)转换 • 在UML中,图形上每一个状态图都有一个初始状态(实心 圆),用来表示状态机的开始还有一个终止状态(半实心 圆),用来表示状态机的终止,其他的状态用一个圆角的 矩形表示
• 工作任务:完成系统状态建模 交付的工作产品:系统状态图
6.1状态机(State Machine)
• 状态机用于对具有事件驱动的特性的动态行为建模。 • 状态机是展现状态与状态转换的图。 • 状态机由状态组成,各状态由转移链接在一起。状态时对
象执行某项活动或等待某个事件时的条件。转移时两个状 态之间的关系,它由某个事件触发,然后执行特定的操作 或者评估,并导致特定结束状态。
状态机图
State Machine Diagram
需求阶段工作任务回顾
• 在需求分析阶段中,我们进行了用户访谈、领域分析,需求分析,需 求规格说明,以及需求评审交付了以下工作产品:
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)。
Chapter 07-状态机图(状态图与活动图)

说明对象对生存周期内可能检测到事件的响应描述对象随时间变化的动态行为描述对象在外部事件作用下的状态状态图:以状态为中心,对系统的动态方面建模活动图:以活动为中心,对计算流程和工作流程建模简单状态不包含子状态具有内部转换、入口动作和出口动作初次进入复合状态,要从嵌套的子状态的初始状态开始执行离开复合状态,再次进入时,希望从离开时所处于的子状态(历6组合状态的分类与表示复合状态被激活时,只能有一个子状:外部作用于对象,触发对象状态改变根据时间流逝,触对象处在某状态时,外部事件已产生,但没有执行(相应)事件,而是延迟到其他状态响应15外部转换改变对象的状态离开状态,执行状态的出口动作电水壶的状态图自动激发状态的入口动作或出口动作通过分支判断,将若干个简单转换组Copyright By Chd.Wang ,E-Mail :Chdwang@ 17向不同的目标状态表示:菱形框活动图是描述系统或业务的一序列活动构成的控制流,它描述了系统从一种活动转换到另一种活描述业务或软件系统的活动轨迹对业务过程、工作流和用例实现进行建模初始节点、终点、活动节点、转换、分支、分岔与汇合活动节点是活动图中最主要的元素之一表达式描述活动节点Chdwang@ 27进入转换”和“一个种条件时才执行该转换订单处理的活动图每个活动都是既没有标识活动的执行者,也没有标识活动执行过程中创建了哪三个活动节点“供应商送货”、“修改订单项状态”以有效地表示各个活动的通过泳道,不仅体现了整个活动控制流,还体现出”和“打印机”两个活动执行者30在活动图中,标识对象与活动节点的关系标识哪些对象从活动节点中输出标识对象流的活动图分钟轮不到,就去隔壁的肯德基假设小张排在最前面信号,执行“进入必胜客”活动;否则小,E-Mail:Chdwang@标识扩展区的活动图表示一个活动需要活动“收款”是一个子活动图订单处理的活动图扩展区表示活动节点的循环执行”,通过分支表”,更“供应商送货”、“修改订单项以及分支“所有订单项已送货完毕”都完整状态图建模完整状态图建模P173图10.13状态,drawer)若此时按下装入Copyright By Chd.Wang,E-Mail:Chdwang@10.4参考答案参考答案不需要从历史状态默认的转换,当CD机启动时,直接10.6参考答案参考答案 参考答案Copyright By Chd.Wang ,E-Mail :Chdwang@,E-Mail :Chdwang@ 63不考虑初态和终态状态和关闭事件状态和打开事件Dim 状态和变暗事件E-Mail :Chdwang@ 64初步分析E-Mail :Chdwang@ 65Copyright By Chd.Wang ,E-Mail :Chdwang@ 6610.13参考答案Copyright By Chd.Wang ,E-Mail :Chdwang@ 67(b)Copyright By Chd.Wang ,E-Mail :Chdwang@ 68(c)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
play
H
play
playing
pausing
pause
2019/5/14
24
5、历史状态
例
当从状态“结账”和“显示购物车”返回子状态“显示 索引信息”时,将进入的是离开时的历史状态。 也就是说,转到购物或结账区之后,再回到“浏览目录” 的页面时,其中的内容是不变的,仍然保留原来的信息。
2019/5/14
C 对象图
D 用例图
教学进程
?问题:
2、下面( )建模元素不能在协作图 中表示出来。(多选)
A 状态
B 消息
C 活动
D 多对象
教学进程
?问题:
3、下面说法错误的是: A 顺序图和协作图都反映对象之间发 送的消息 B 顺序图和协作图在语义上是等价的 C 顺序图强调发送和接收消息的对象 之间的结构组织关系 D ROSE可以实现顺序图和协作图之间 的等价转换
2019/5/14
17
3、复合状态
含有子状态的状态被称为复合(组合)状态。
2019/5/14
18
3、复合状态
顺序复合状态图(表示方法1)
2019/5/14
19
3、复合状态
顺序复合状态图(表示方法2)
2019/5/14
20
并发复合状态图
3、复合状态
2019/5/14
21
4、子状态机
将子状态机单独定义,并对其进行命名(通常以大 写字母开头),然后在需要使用的地方来引用它
对象生命期中的某个条件或状况,在此期间对象将满足 某些条件、执行某些活动或等待某些事件。
理解
对象在任何时候都会处于某种状态中,所有对象都有状 态。 对象所处的状态决定了它如何响应所检测到的事件或所 接收的消息。 通常,事件使对象从一个状态转向另一个状态(即状态 的转移)
2019/5/14
17
7.1 概述
状态机
用于描述一个对象在其生存期间的动态行为,表现对象 响应事件所经历的状态序列以及伴随的动作。
状态图(State Machine Diagram)
用来显示状态机,一个状态机可用多张状态图描述。
2019/5/14
8
7.1 概述
状态机图与交互图的区别:
交互图不显示对象所有可能的动态行为,只显示特定交 互(一个具体的用例)中对象的行为。 状态机图可以显示对象所有的动态行为。
25
6、入口点和出口点
入口点
状态内的一个外部可见的伪状态,外部转换可以将它作 为目标,从而被有效连接到指定状态上。
出口点
状态内的一个外部可见的伪状态,外部转换可以将它作 为源,代表状态内的一个终点。
2019/5/14
26
7.2.2 转换
Transition
两个状态之间的一种关系,表示对象在第一个状态中执 行一定的动作,并在某个特定事件发生而且满足某个条 件时进入第二个状态。每个转换只允许一个事件,一个 事件只允许一个动作
2019/5/14
16
2、一般状态
延迟事件
是一种特殊的事件,它是指该事件不会触发状态的转换, 当对象处于该状态时事件不会丢失,但会被延迟执行。 例如,当E-mail程序中正在发送第一封邮件时,用户下 达发送第二封邮件执令就会被延迟,但第一封邮件发送 完成后,这封邮件就会被发送。这种事件就属于延迟事 件
嵌套状态中可以使用新的初态;
NewState
终态(End State)
表示一个最后的或者终端状态; 终态的数目可以不确定。
NewState2 NewState3
NewState4
2019/5/14
15
2、一般状态
中间状态的组成:
状态名(name) 进入/退出动作(entry/exit action) 内部转换(internal transition)
UML基础与Rose建模案例
● 讲授24学时, 2学时/次, 共12次 ● 上机24学时, 2学时/次, 共12次 ●考试形式: 作业+纪律+上机+卷面 ●作业提交: 书写
?问题: 1、下面4种图中,( )可以描述一个 用例中多个对象之间的相互协作关系 以及协作过程中的行为次序关系.
A 交互图
B 状态图
教学进程
?问题:
4、从严格意义上讲,下列四个选项中 不属于顺序图的内容是( )
A 对象
B 参与者
C 消息
D 控制焦点
教学进程
第7章 状态图和活动图
信息工程学院
本章内容
7.1状态图概述
7.2状态图基本组成
状态
转换
事件
7.3 绘制状态机图
7.4状态机图应用
7.5活动图
概述
组成
用途
状态图机与活动图的区别:
状态机图只建模一个对象的行为,活动图可以建模多个 对象的活动 活动图中也允许建模特定活动中对象的某个状态
2019/5/14
Copy Right
9
7.2 基本组成
状态 转换 事件
2019/5/14
10
7.2 基本组成
2019/5/14
11
7.2.1 状态
什么是状态(state)
2019/5/14
13
几种类型:
初态 终态 中间状态 组合状态 历史状态
7.2.1 状态
2019/5/14
14
1、初态和终态
初态(start state)
显示状态图中状态机的执行(execution)的开始。
一个状态机只能有一个初态,因为每一个执行都是从相 同的地方开始的。如果一个状态机用多张图描述,则多 张图用同一个初态;
2019/5/14
22
4、子状态机
例:
2019/5/14
23
5、历史状态
History state
一种伪状态。可以存储退出组合状态时所处的子状态, 则返回组合状态时可以直接回到到相应的子状态。
play[ no cd ]
power on
close
power off
stop close
running
不导致状态改变的转换,不会执行 entry 和 exit 动作。
子状态(substate)
嵌套在另外一个状态中的状态。
延迟事件(deferred event)
延迟到下一状态中处理的事件。
lighting
entry/ turnOn do/ blankFiveTimes event power off/ powerSupplySelf exit/ turnOff event self/ defer
转换的五要素
源状态 目标状态 触发事件 监护条件 动作
2019/5/14
27
1、复杂转换
转换类型
描述
外部转换 对事件做出响应,引起状态变化或 自身转换,同时引发一个特定动作,如 果离开或进入状态将引发进入转换、离 开转换