uml建模第十章-状态机图
UML状态机图介绍

UML状态机图1.状态机图的作用状态机图是用来为对象的状态及造成状态改变的事件建模。
UML的状态机图主要用于建立对象类或对象的动态行为模型,表现一个对象所经历的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。
状态机图也可用于描述Use Case,以及全系统的动态行为。
状态机图表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,响应事件,执行某些动作,引起转移到新状态,又在新状态下响应事件,执行动作,引起转移到另一个状态,如此继续,直到终结状态。
2.状态机图的基本元素状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。
状态图由状态(state,圆角矩形)与转换(transition,连接状态的箭头)组成。
引起状态改变的触发器(trigger)或者事件(event)沿着转换箭头标示。
如图所示灯光有2个状态:off与on。
当lift switch或者lower switch事件被触发时,灯光状态会改变。
图表1 状态图的基本元素状态图通常有初始伪状态(initial pseudostate)和最终状态(final state),分别表示状态机的开始和结束。
初始状态用实心圆表示,终止状态用牛眼表示。
图表2状态图中的初始伪状态与最终状态2.1状态(state)状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。
一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成。
图表3 带分栏的状态在状态图的下面部分可以标识内部活动,包括事件和动作(event/action)。
Entry和exit事件是标准的,任何一个进入状态的转换都将会调用entry动作,任何一个退出状态的转换都将会调用exit动作,而且也可以添加自己的事件。
与do行为不同,进入和退出行为是无法被中断的。
图表4状态的内部行为例如,咖啡机正在煮咖啡的状态(Brewing),并且可以把行为写在状态内。
UML的状态机图

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

初始状态的表示
终止状态 终止状态是对象的最后状态,是一个状态图的终止点。 终止状态只能作为转换的目标,而不能作为转换的源。 终止状态在一个状态图中可以有多个,它用一个套有 一个实心圆的空心圆表示。
终止状态的表示
状态
对象属性值的集合标识了一个对象的状态。表示对象状态的图标由一 个带圆角的矩形表示。它包含个三部分: 名称:给对象所处状态取的名字,名字用一个字符串表示,在一个图 中,名字应该是唯一的。 内部转换:对象响应外部事件所执行的动作。内部转换发生时,不改 变对象的状态,但是,当进入该状态时,可以包含进入动作;当退出 该状态时,可以包含退出动作。我们把内部转换标识在状态框的第二 栏;用一条实线箭头来标识外部转换,外部转换是指一种状态到另一 种状态的转换。 嵌套状态 :状态图中的状态可以包含两种状态:一种是简单状态, 简单状态不包含其它状态;一种是组合状态,组合状态包含了子状态。 即状态图的某些状态本身也是状态图。
Agenda
• • • • •
状态和状态机 如何阅读状态机图
如何绘制状态机图
状态机图应用说明 本章小结
阅读最简单的状态图
•
最为核心的元素无外乎是两个:一个是用圆角矩形表示 的状态(初态和终态例外);另一个则是在状态之间的、
包含一些文字描述的有向箭头线,这些箭头线称为转换
Hale Waihona Puke 初始状态 初始状态代表状态图的起始位置,只能作为转换的源, 而不能作为转换的目标。初始状态在一个状态图中只 允许有一个,它用一个实心的圆表示
状态机图
知识图谱
Agenda
• • • • •
状态和状态机 如何阅读状态机图
如何绘制状态机图
状态机图应用说明 本章小结
UML状态机图的建模分析

这个对象的单独行为。一个状态机可以依附于一个类,用来描述 类的实例的状态及状态转换,并对接收到的事件做出的响应[1]。 状态机也可以依附于用例、操作、协作等元素,描述它们的 执行过程。使用状态机考虑问题时,习惯将对象与外部世界分 离,适合对局部、细节进行建模。
二孩”下中产家庭的隔代抚养与儿童照顾[J].探索与争鸣,2017,(7):8187,96.
(上接第24页)
不能正常运转。滤波电解容可能损坏原因:电解质老化。判别 标准:有无液体露出,静电电容的测定。电解电容寿命为4~5万 小时。用户可以根据运行时间确定更换年限。
工业控制系统中,变频器在调速精度和动态性能要求较高 的场合最重要的要求是可靠性,尽管国内与国外在变频技术上
参考文献 [1] 尹雁和,林蔚,刘德志,等.BIM技术在智能变电站运维工作中的应
用[J].电气技术与经济,2019,23(6Байду номын сангаас:125-127. [2] 李诚,马大宇,吴世斌,等.探析物联网技术在数字化变电站中的应
用[J].数字技术与应用,2019,37(6):100,102.
(上接第23页)
青睐白色与鲜艳色彩的搭配,更醒目。所以根据企业VI中的标 准色进行色彩的延展设计也是很有必要的,因为VI的设计多是 依据传统渠道,并为过多考虑新媒体传播时的传播效果,所以 在进行APP界面设计时需要对于VI中的标准色进行加工,不能 直接照搬过来用。
究[J].铁道运输与经济,2019,41(11):52-57.
相比还有差距,但已经大大缩小了。 总之五轮是进口还是国产的变频器,已经遍布各行各业的
传动系统。随着变频器技术的进一步发展,使用变频调速后的 经济效益和社会效益将会越来越显著。
UML建模工具软件StarUML从入门到精通——如何应用StarUML创建UML状态图的应用示例

2)应用转换连接“初始状态”和“注册用户”状态
(6)再添加其它的状态和 转换方式 1)“注册用户”通 过“系统登录”转换为 “会员用户”
2)会员用户通过“回帖” 而成为“回帖用户”
3)会员用户通过“发帖”而成 为“发帖用户”
4)会员用户通过“申请版主”而 成为“版主用户”
(7)最后再给出结束状态 (8)本示例最终的结果示图
(3)为单个的对象和共 同工作的对象建模 使用UML交互图可以 对共同工作的对象群体的 行为进行建模,而使用状 态图,则可以对单个的对 象行为进行建模。 因为状态图能够说明 对象在它的生命期中响应 事件所经历的状态序列以 及它们对那些事件的响应。 (4)可以了解类的动态行为 软件系统的分析人员和开发人员通过状态图能够更好地了 解系统中类的动态行为,有助于理解系统中的复杂业务逻辑。
(1)当功能行为的改变和状态有关时才需要创建出UML状态图, 因为通过状态图可以显示对象在其生命周期中依次经历的各种状 态。 (2)但如果要表示由系统内部生成的功能操作(而非外部事件 )驱动的事件流时,则一般使用UML活动图。
(3)如下给出一个Account对象的状态图示例:
5、为什么要使用UML状态图 (1)动态特性是由事件所触发的
8、与关系说明复合状态中在某一时刻可同时到达多个子 状态(称为并发子状态) 具有并发子状态的状态图称为并发状态图。
9、转移(或者转换)
(1)转换 1)转换是状态间的关联,它们用于对一个实体的不同状 态间的关系建模。 2)在UML状态图中采用带箭头的连线来表示( ),状 态的变迁通常是由事件触发而产生的,此时应在转移上 标出触发转移的事件表达式。
(3)中间状态 1)初态和终态之外的状态称为中间状态, 采用圆角矩形表示( )。 2)如下示图为在StarUML工具软件中所 提供的中间状态(简单状态Simple State)工具按钮的图示例。
UML状态机图介绍

UML状态机图1.状态机图的作用状态机图是用来为对象的状态及造成状态改变的事件建模。
UML的状态机图主要用于建立对象类或对象的动态行为模型,表现一个对象所经历的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。
状态机图也可用于描述Use Case,以及全系统的动态行为。
状态机图表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,响应事件,执行某些动作,引起转移到新状态,又在新状态下响应事件,执行动作,引起转移到另一个状态,如此继续,直到终结状态。
2.状态机图的基本元素状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。
状态图由状态(state,圆角矩形)与转换(transition,连接状态的箭头)组成。
引起状态改变的触发器(trigger)或者事件(event)沿着转换箭头标示。
如图所示灯光有2个状态:off与on。
当lift switch或者lower switch事件被触发时,灯光状态会改变。
图表1 状态图的基本元素状态图通常有初始伪状态(initial pseudostate)和最终状态(final state),分别表示状态机的开始和结束。
初始状态用实心圆表示,终止状态用牛眼表示。
图表2状态图中的初始伪状态与最终状态2.1状态(state)状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。
一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成。
图表3 带分栏的状态在状态图的下面部分可以标识内部活动,包括事件和动作(event/action)。
Entry和exit事件是标准的,任何一个进入状态的转换都将会调用entry动作,任何一个退出状态的转换都将会调用exit动作,而且也可以添加自己的事件。
与do行为不同,进入和退出行为是无法被中断的。
图表4状态的内部行为例如,咖啡机正在煮咖啡的状态(Brewing),并且可以把行为写在状态内。
UML状态机图介绍

UML狀態機圖1.狀態機圖の作用狀態機圖是用來為對象の狀態及造成狀態改變の事件建模。
UMLの狀態機圖主要用於建立對象類或對象の動態行為模型,表現一個對象所經歷の狀態序列,引起狀態或活動轉移の事件,以及因狀態或活動轉移而伴隨の動作。
狀態機圖也可用於描述Use Case,以及全系統の動態行為。
狀態機圖表示一個模型元素在其生命期間の情況:從該模型元素の開始狀態起,回應事件,執行某些動作,引起轉移到新狀態,又在新狀態下回應事件,執行動作,引起轉移到另一個狀態,如此繼續,直到終結狀態。
2.狀態機圖の基本元素狀態機圖の基本元素包括:狀態、轉移、事件、偽狀態和複合狀態。
狀態圖由狀態(state,圓角矩形)與轉換(transition,連接狀態の箭頭)組成。
引起狀態改變の觸發器(trigger)或者事件(event)沿著轉換箭頭標示。
如圖所示燈光有2個狀態:off與on。
當lift switch或者lower switch事件被觸發時,燈光狀態會改變。
圖表1 狀態圖の基本元素狀態圖通常有初始偽狀態(initial pseudostate)和最終狀態(final state),分別表示狀態機の開始和結束。
初始狀態用實心圓表示,終止狀態用牛眼表示。
圖表2狀態圖中の初始偽狀態與最終狀態2.1狀態(state)狀態是指在對象生命週期中滿足某些條件、執行某些活動或等待某些事件の一個條件和狀況。
一個狀態通常包括名稱、進入/退出活動、內部轉換、子狀態和延遲事件等五個部分組成。
圖表3 帶分欄の狀態在狀態圖の下麵部分可以標識內部活動,包括事件和動作(event/action)。
Entry和exit事件是標準の,任何一個進入狀態の轉換都將會調用entry動作,任何一個退出狀態の轉換都將會調用exit動作,而且也可以添加自己の事件。
與do行為不同,進入和退出行為是無法被中斷の。
圖表4狀態の內部行為例如,咖啡機正在煮咖啡の狀態(Brewing),並且可以把行為寫在狀態內。
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事件:退出该状态时的特定动作(出口动作) 事件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个状态机只能有一个 初态。
如果一个状态机用多张 图描述,则多张图用同 一个初态。
如果用了组合状态,则 组合状态中可有初态。
10
(2)终止状态(End State)
表示一个最后的或者终端状态。 一张图中终态可以有 多个,也可以没有。
退出动作(exit action):退出某状态时执行 的动作,用“exit/要执行的动作”表示。
7
活动
对象处于某个状态时,对象进行的一些列 动作。
表示活动的格式为“do/动作名”
8
一、状态(state)
3、状态的分类 初态 终态 简单状态(中间状态) 组合状态 历史状态
9
(1)初始状态(Start State)
26
(1)信号事件(signal event)
所谓信号,是指由一个对象异步地发送、并由另 外一个对象接收的一个已命名的对象。
信号事件表示对象接收到某个信号。 信号可以作为状态机中一个 状态转换的动作而被发送, 也可作为交互中的一个消息 发送。
27
(2)调用事件(call event)
一个对象请求调用某个对象的成员方法; 是一种同步机制。
2
10.2 状态机图基本元素
初始状态
终止状态
中间状态
转换
事件
监护条件
活动
动作
分支
图10-1 状态机图
3
一、状态(state)
1、状态
对象生命周期中的某个条件或状况,在此期间 对象将满足某些条件、执行某些活动或等待某 些事件。
说明: 对象在任何时候都会处于某种状态中,所有对 象都有状态。 对象所处的状态决定了它如何响应所检测到的 事件或所接受的消息。 通常,事件使对象从一种状态转向另一种状态 (即状态的转移)。
一个状态中执行一定的动作,并在某个特 定事件发生而且满足某个条件时进入第二 个状态。 转换进入的状态称为活动状态,转换离开 的状态变变为非活动状态。
19
二、转换(transition)
2、转换的格式
事件( 参数 )[ 条件 ] / 动作 Help[len(PSW)<>6]/verifyPSW.help() 每个转移只允许一个事件,一个事件只允许一
16
(4)组合/嵌套状态
复合状态的表示法有2两种: (1) 将子状态机嵌入表示状态的圆角矩形 中 (2) 在圆角矩形中加入加分解指示符
17
(5)历史状态
使用历史状态,则可以存储退出组合状态时所 处的子状态,则返回组合状态时可以直接回到 相应的子状态。
18
二、转换(transition)
1、转换 两个状态之间的一种关系,表示对象在第
11
(3)简单状态
组成: 状态名 进入/退出动作 内部转移----不导致状态改变的转换,不会
执行entry和exit动作。 内部活动 延迟事件----延迟到下一状态处理的事件。
12
EnterPassword
entry/ set echo * exit/ set echo normal event keypress/ handle character event help/ display help event save/ defer do/ get password
[ Condition2 ] / Action2
[ Condition5 ] / Action5 NewStat e4
[ Condition6 ] / Action6 NewStat e5
25
三、事件(Event)
1、事件 是对一个时间和空间上占有一定位置的有意义
的事情的规格说明。 2、事件的类型 信号事件 调用事件 变化事件 时间事件 延迟事件
24
(4)复合转换
复合转换由简单转换组成,通过分支判定,把 多个简单转换组合在一起。
NewStat Event1 e
[ Condition1 ] / Action1
[ Condition3 ] / Action3 NewStat e2
[ Condition4 ] / Action4 NewStat e3
Maintaining The train stop
22
(2)内部转换
有一个源状态但没有目标状态,转换后的状态 仍是它本身。
23
(3)自动转换
在没有外部事件的作用下,对象执行了某些活 动后,自然而然地完成的转换。
自动转换是离开某个状态后重新进入原先的状 态,它会激发状态的入口动作和出口动作的执 行。
个的分类 外部转换 内部转换 自动转换 复合转换
21
(1)外部转换
一种改变对象状态的转换,用从源状态到目标 状态的箭头表示。
Somebody go into Used
Somebody go into Unused
Somebody go out The train go running
4
例:CD播放器
5
一、状态(state)
2、状态的表示 状态名称 入口动作 出口动作 内部转换 内部活动 可推迟事件
状态示例
6
动作(Action)
可执行的原子计算。 不可中断,其执行时间可忽略不计。
两种特殊动作:
进入动作(entry action):进入某状态时执 行的动作,用“entry/要执行的动作”表示。
Offline logIn( UserID,Password ) Online
第10章 状态机图
10.1 状态机图概述 10.2 状态机图基本元素 10.3 建立状态机图 10.4 状态机图应用范围
小结
1
10.1 状态机图概述
状态机图用来对系统的动态行为建模; 描述单一对象在其生命期内受各种事件的
影响而发生的状态变化; 状态机图是展示状态与状态转换的图,可
以描述对象的行为,也可以描述用例、协 作和方法甚至整个系统的动态行为。
例:状态示例
13
(4)组合/嵌套状态
含有子状态的状态称为组合状态。
14
(4)组合/嵌套状态
两种类型:
顺序子状态 —复合状态包含的多个子状态之间是互斥的; —复合状态只包含一个状态机。 并发子状态 —复合状态包含两个或多个并发的子状态机。
15
(4)组合/嵌套状态
两种类型:
顺序子状态 并发子状态