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事件:退出该状态时的特定动作(出口动作) 事件
uml建模-状态图和活动图
l 使用状态图的最常见的是对反应型对象、尤其是对类、 用例或整个系统的实例的行为建模。反应型对象是指 这个对象可能处于的稳定状态、从一个状态到另一个 状态之间的转换所需的触发事件,以及每个状态改变 时发生的动作。反应型对象具有如下的特点:
活动图的符号集与状态图中使用的符号集类似。像状态图 一样,活动图也从一个连接到初始活动的实心圆开始。 活动是通过一个圆角矩形(活动的名称包含在其内)来 表示的。活动可以通过转换线段连接到其他活动,或者 连接到判断点,这些判断点连接到由判断点的条件所保 护的不同活动。结束过程的活动连接到一个终止点(就 像在状态图中一样)。活动图中的基本要素包括状态、 转移、分支、分叉和汇合、泳道、对象流等。
l ⑹把动作附加到这些转换上,并且附加到这些状态上; l ⑺考虑通过使用子状态、分支、汇合和历史状态,来简化状态图; l ⑻核实所有的状态都是在事件的某种组合下可达的; l ⑼核实不存在死角状态,即不存在那种不能转换出来的状态; l ⑽通过手工或通过使用工具跟踪状态机,核对所期望的事件序列以及它
们的响应。
::new book 借书
::availห้องสมุดไป่ตู้ble 还书
::delete
一个图书对象从它的起始点 开始,首先是“新书”状态
(new book),然后是“可 以借阅”(available)的状 ::borrowed 态,如果有读者将书借走, 则该书的状态为“已借出”
状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于
uml建模第十章-状态机图
例:CD播放器
5
一、状态(state)
2、状态的表示 状态名称 入口动作 出口动作 内部转换 内部活动 可推迟事件
状态示例
6
动作(Action)
可执行的原子计算。 不可中断,其执行时间可忽略不计。
两种特殊动作:
进入动作(entry action):进入某状态时执 行的动作,用“entry/要执行的动作”表示。
47
34
10.3 建立状态机图
1.寻找主要的状态 飞机票有以下4种状态:无预订、部分预订、
预订完、预订关闭。 (1)在刚确定飞行计划时,显然没有任何预订,
且在顾客预订机票之前都将处于“无预订”状态。 (2)对于订座而言,有“部分预订”和“预订完”
两种状态。 (3)当航班快要起飞时,要“预订关闭”。
35
第10章 状态机图
10.1 状态机图概述 10.2 状态机图基本元素 10.3 建立状态机图 10.4 状态机图应用范围
小结
1
10.1 状态机图概述
状态机图用来对系统的动态行为建模; 描述单一对象在其生命期内受各种事件的
影响而发生的状态变化; 状态机图是展示状态与状态转换的图,可
以描述对象的行为,也可以描述用例、协 作和方法甚至整个系统的动态行为。
无预订 部分预订
预订完 预订关闭
退订()事件发生 后,使预订人=0 不直接转换
无转换
预订()
退订() 无转换
不直接转换 关闭()
预订(), 无空座
关闭()
关闭()
无转换
37
10.3 建立状态机图
确定了状态之间的有效转换,绘制出相应的状态机 图,如图10-18所示。
38
UML面向对象建模基础答案(徐峰、陈暄-中国水利水电出版社)
UML不是方法论。它仅仅是一种描述模型的标准语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。
7. 请简要说明UML和面向软件开发之间的关系。
UML和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。但是由于在UML的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。
4. 请说明蓝图和草图的区别,并简单描述其适用的场景。
蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。
对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中
8. 标记值的作用是什么?它的表示法和约束的表示法有什么异同?在UML模型中如何区分它们?
标记值是用来为事物添加新特性的。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。
9. 构造型的作用是什么?如果我们采用一个自定义的图标来表示它,那么可能遇到的主要问题是什么?
UML面向对象建模基础(徐峰、陈暄)
第1章 UML概述
1. 请指出UML的三个主要的特性。
1)UML是一种语言
2)UML是用来建模的
3)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.对反应型对象 建模
UML动态建模中的UML状态图
7、状态的转移(或 者转换) (1)转换 转换(Transition) 是状态间的关联,它 们用于对一个实体的 不同状态间的关系建 模;
(2)UML中的表示方式 在状态图中采用带箭头的 连线来表示(状态的变迁通 常是由事件触发的,此时应在 转移上标出触发转移的事件 表达式; 如果转移上未标明事件 (活动),则表示在源状态的 内部活动执行完毕后自动触 发转移)。 (3)转换的组成——在UML中,转换由五个部分组成:
UML动态建模中的UML状态图
UML动态建模---状态图
在本讲您能了解如下内容 状态机和状态 状态图中的状态类型 复合状态的说明 状态的转移 状态图的建模过程和示例 在Rose中创建状态图
1、UML状态图及状态 (1)状态图——它是展示对象的状态与状态之间转换的图, 用来描述一个特定对象(或者是参与者)的所有可能状态及 其引起状态转移的事件。 (2)状态 状态是状态图的重要组成部分,所有的对象都具有特 定的状态,状态是对象执行了一系列有关活动后的结果。 当某个事件发生后,对象的状态一般将发生变化。
要点:提供条件判断 3、什么场合下应该 采用状态图 (1)当系统中的某 个特定对象行为的改 变和状态有关时才创 建出状态图。 (2)应用示例 右面表示一个图书销 售业务中的“销售记 录”的状态图,随着 用户产生不同的行为, 该“销售记录”的状 态也发生变化
4、为什么要使用状态图 (1)了解某个类对象的动态行为 通过状态图能够更好地了解类的动态行为,使编码前 能讨论了解和建立复杂逻辑关系和条件依据——为详细设 计中的条件判断以及数据库设计做好铺垫。 (2)建模实时系统 状态图在实时系统中应 用的比较多,也可以用于辅 助设计用户界面。 5、状态图中定义的状态类型 (1)状态图中定义的状态有 初态 终态 中间状态 复合状态
UML学习复习—状态图
• Transition图例
说明: 状态的之间的转移通常是由事件触发的,此时应在转
Signal event的语法格式和Call event一样。 信号事件是一个异步事件,调用事件一般是一
个同步事件。
•
Signal(信号)
一个信号表示由一个对象异步地发送、并 由另一对象接收的一个已命名的对象。
说明:
信号用版型为<<signal>>的类图标表示。 信号之间可以具有泛化关系,形成层次结构。 在UML中,例外(exception)是信号的一种。
•
4.1 入口事件
入口事件表示一个入口的动作序列,它 在进入状态时执行。
入口事件的动作是原子的,并且先于内 部活动或转换。
•
4.2 出口事件
出口事件表示一个出口的动作序列,它 在退出状态时执行。
出口事件也是原子的,它跟在所有的内 部活动之后,但是先于所有的出口转换 。
•
4.3 动作事件
3.5 简单状态
简单状态是指不包含其他状态的状态。 简单状态没有子结构,但它可以具有内
部转换、入口动作和出口动作等。
•
3.6 组成状态
组成状态是可以包含一些嵌套的子状态 的状态。
组成状态可以使用“与”关系分解为并发子 状态,或者通过“或”关系分解为互相排斥 的顺序子状态。
•
3.6 组成状态
UML学习复习—状态图
•
状态图
1 状态机 2 状态图 3 状态 4 事件 5 转换 6 状态图建模技术 7 实例——图书馆管理系统的状态图
•
1 状态机
状态机是展示状态与状态转换的图,包含了一 个类的对象在其生命期间所有状态的序列以及 对象对接受到的事件所产生的反应。
UML建模之状态图(Statechart Diagram)
状态图目录:一、状态图简介(Brief introduction)二、状态图元素(State Diagram Elements)1、状态(States)2、转移(Transitions)3、动作(State Actions)4、自身转移(Self-Transitions)5、组合状态(Compound States)6、进入节点(Entry Point)7、退出节点(Exit Point)8、历史状态(History States)9、并发区域(Concurrent Regions)三、状态图案例分析(State Diagram Example Analysis)四、总结(Summary)一、状态图简介(Brief introduction)状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。
一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流。
如下图例子,状态机描述了门对象的生存期间的状态序列,引起转移的事件,以及因状态转移而伴随的动作(Action).状态有Opened、Closed、Locked。
事件有Open、Close、Lock和Unlock。
注意:1、并不是所有的事件都会引起状态的转移,比如当门是处于【Opened】状态,不能进行【Lock】事件。
2、转移(Transition)有警备条件(guard condition),比如只有doorWay->isEmpty 条件满足时,才会响应事件。
二、状态图元素(State Diagram Elements)1、状态(States)指在对象的生命周期中的某个条件或者状况,在此期间对象将满足某些条件、执行某些活动活活等待某些事件。
UML建模之状态图(Statechart Diagram)
状态图目录:一、状态图简介(Brief introduction)二、状态图元素(State Diagram Elements)1、状态(States)2、转移(Transitions)3、动作(State Actions)4、自身转移(Self-Transitions)5、组合状态(Compound States)6、进入节点(Entry Point)7、退出节点(Exit Point)8、历史状态(History States)9、并发区域(Concurrent Regions)三、状态图案例分析(State Diagram Example Analysis)四、总结(Summary)一、状态图简介(Brief introduction)状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。
一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流。
如下图例子,状态机描述了门对象的生存期间的状态序列,引起转移的事件,以及因状态转移而伴随的动作(Action).状态有Opened、Closed、Locked。
事件有Open、Close、Lock和Unlock。
注意:1、并不是所有的事件都会引起状态的转移,比如当门是处于【Opened】状态,不能进行【Lock】事件。
2、转移(Transition)有警备条件(guard condition),比如只有doorWay->isEmpty 条件满足时,才会响应事件。
二、状态图元素(State Diagram Elements)1、状态(States)指在对象的生命周期中的某个条件或者状况,在此期间对象将满足某些条件、执行某些活动活活等待某些事件。
- 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)组合/嵌套状态
两种类型:
顺序子状态 并发子状态