状态机图

合集下载

状态机图(状态活动)汇总课件

状态机图(状态活动)汇总课件
do/启动发货 发货
已发货
收到货物[缺部分商品]
检查完[缺部分商品]
等待
收到货物[商品齐全]
取消
取消 取消
取消订单
状态图(订单处理3)
检查 do/检查商品
订单处理
收到货物[缺部分商品]
检查完[缺部分商品]
等待
检查完[商品齐全]
办理发货 do/启动发货
收到货物[商品齐全]
已发货
发货
取消 取消订单
状态图(航班预订1)
无预定
预定/已预订数+=预订数
部分预定
event 预 定 [ 预 订 数 < 空 位 数 ] event退 订 [ 退 定 数 < 已 预 订 数 ] /
取消航班
关闭
预定关闭
关闭 关闭
退订/已预订数-=退定数
预定完
预定[无空位]
状态图(航班预订3)
使用复合状态
预定中 退订[已预订人数==0]/已预订数=退定数
action)
Action 可执行的原子计算。 不可中断,其执行时间可忽略不计。
两种特殊动作:
进入动作 (entry action) 进入状态时执行的动作;Entry/ setMode(onTrack)
退出动作 (exit action)
退出状态时执行的动作;Exit /setMode(offTrack)
●例如:在烧水器的状态图中, turnOn 就是一种调用事 件,用来将开关置于“0n” 状态。
触发事件的四种类型
改变事件
● 某个指定属性值为真时,事件得到触发。 ●在对象生命周期内, 一直在计算改变事件中的属性值。
当属性值为真时,事件触发,计算停止 ●例如: when(temperature>100)/alerm()

第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.终止状态
• 终止状态是对象的最后状态,是一个状态图的终止点。 • 终止状态只能作为迁移的目标节点。在一个状态图中可以

UML的状态机图

UML的状态机图

UML的状态机图UML(Unified Modeling Language)是一种标准化的建模语言,用于描述软件系统中的各种构建块和交互关系。

UML的状态机图是其中一个最为重要的建模图之一。

什么是状态机图?状态机图是一种用于描述对象行为的UML图表。

它以有限状态机的形式描述对象或系统在不同状态下对事件以及其他因素产生的响应。

状态机图显示了对象的状态及其之间的转换。

状态机图主要由三个部分组成:状态、转移和事件。

状态表示对象或软件系统处于的状态,转移表示状态之间的转换,事件则表示导致状态转换的触发器或条件。

状态机图的建立过程在建立状态机图之前,需要先确定对象或软件系统的状态、转移和事件。

1. 确定状态首先需要确定对象或软件系统可能出现的所有状态。

每个状态都应该有一个名称、一个描述以及一个标识符。

状态可以是“初态”(启动状态)、“终态”(结束状态)或“中间态”(中间状态)。

2. 确定转移和事件根据对象或软件系统的实际情况,确定状态之间的转移以及导致转移的事件或条件。

每个转移都应该有一个名称、一个标识符以及一个触发器。

触发器可以是一些条件,例如键盘上的一个按键或计时器到期,也可以是上一个状态完成某些任务导致的条件。

例如,在一个自动售货机的状态机图中,售货机可能处于“待机”、“已付款”、“正在出货”、“出货完成”四种状态。

当用户选择购买商品并投入硬币时,售货机会从“待机”状态转移到“已付款”状态,并且会关闭“使用硬币”事件。

当售货机完成出货并关闭接口时,它会从“正在出货”状态转移到“出货完成”状态。

状态机图的用途状态机图有很多用途。

它可以用于描述产品或系统的交互设计,也可以用于演示API和网络安全策略的行为。

一些常见的用途包括:1. 软件开发状态机图可以在软件开发过程中用于确定软件的行为、处理错误和异常情况、定义状态转换以及帮助代码实现。

通过建立状态机图,可以更好地理解软件中各个状态的流转情况,从而提高软件开发效率。

状态机图

状态机图

状态机图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页]

体建模。

②考虑是否为重要的业务的履行者建立一个泳道。

③建立初始状态和终止状态,并识别该业务过程的前置条件和后置条件。

④从初始状态开始,说明随着时间发生的动作,并在活动图中表示它们。

⑤如果涉及重要的对象,则把它们也加入到活动图中。

如果有必要,可展示对象的属性值和状态。

⑥连接这些动作的控制流和对象流。

如果需要,使用分支和合并来描述条件路径和迭代,使用分岔和汇合来描述并发的动作流。

⑦若动作较为复杂,则它可调用一个活动,在该活动中描述其细节。

由于业务过程所描述的功能有些是要由软件系统来完成的,若针对这样的功能建立了活动模型,也可以说是对软件系统的(局部)功能建立了活动模型。

(2)对操作建模用活动图对操作建模是指把活动图作为流程图来对操作的算法细节建模。

与传统的流程图不同的是,活动图能够展示并发。

在OOA阶段,仅用活动图对关键的复杂操作进行建模。

除非想直接从模型自动生成代码,即使在OOD阶段也并不要求用活动图对每个操作的算法都建立模型。

对一个操作建模时,应遵循如下策略。

①收集该操作所涉及的事物,包括操作的参数、可能的返回类型、它所属于的类以及与之相关的类的特征。

②识别操作的前置条件和后置条件以及操作所属的类在操作执行期间必须保持的不变式。

③从该操作的初始状态开始,按照时间顺序设立动作。

④如果需要,使用分支和合并来描述条件路径和迭代。

⑤仅当这个操作属于主动类时,才在必要时用分岔和汇合来描述并发的控制流。

8.3.3 状态机图在现实世界中的事物通常都有自己的生命周期。

通过对它们的观察,可以得出如下结论。

①大多数事物在其生命周期中经历了不同的状态,且这些状态是通过对现实的理解(建模)而定义的。

②一个事物在各时期内所处的状态是明确的。

③在一个状态内,事物要完成一定的任务。

④在现实世界存在着引起事物的状态发生变化的事件。

⑤事物在其状态间按次序转化。

⑥事物从一个状态到另一个状态的转化通常是即时的。

⑦当事件发生时,事物可能需要采取一些动作。

第7章状态机图

第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 构件状态建模:构件封装了多个类,构件在其生命周期 中也会存在不同状态,可以用状态机对构件的状态及其转 换进行建模。

第10章 状态机图讲解

第10章 状态机图讲解

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

最为核心的元素无外乎是两个:一个是用圆角矩形表示 的状态(初态和终态例外);另一个则是在状态之间的、
包含一些文字描述的有向箭头线,这些箭头线称为转换
Hale Waihona Puke 初始状态 初始状态代表状态图的起始位置,只能作为转换的源, 而不能作为转换的目标。初始状态在一个状态图中只 允许有一个,它用一个实心的圆表示
状态机图
知识图谱
Agenda
• • • • •
状态和状态机 如何阅读状态机图
如何绘制状态机图
状态机图应用说明 本章小结

6.状态机图(状态+活动)

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)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

历史状态
历史状态只是一个伪状态(Pseudo State)的图形标
记,只能作为一个组合状态中的子状态,不能在顶层 状态机图中使用。
例题:网上购物车结账
c
广东药学院 · 医药信息工程学院
历史状态
历史状态的分类
同级别子状态:浅历史 含下级子状态:深历史
c
广东药学院 · 医药信息工程学院
对确定对象的状态有重要意义的属性称为状态属
性;
在建立状态机模型时,需要正确地找出一个对象
的全部状态属性,根据它们的值划分对象状态;
c
广东药学院 · 医药信息工程学院
状态
UML对一个状态的描述包含以下信息
名字(允许状态匿名) 入口活动 出口活动
内部转移
子状态 延迟事件
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
例题:网上商店送货处理状态机图 (简单状态表示的)。
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
例题:网上商店送货处理状态机图(复合状态表示)。
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
可以将复合状态整体视为一个简单状态; 采用复合状态可以简化对复杂行为的建模,清楚地表
特殊状态
初态(实心圆)
终态(圈内实心圆)
c
广东药学院 · 医药信息工程学院
状态机
状态机计算机科学理论的一部分。

编译技术:用有限状态机描述词法分析过程; 操作系统:进程调度、缓冲区调度等都可采用状态机描述。
UML用状态机对系统的动态特征建模。
状态机一般用于对一个模型元素建立行为模型,模型
状态机图
状态和状态机 如何阅读状态机图 如何绘制状态机图 状态机图应用说明
c
广东药学院 · 医药信息工程学院
状态
状态(对象的状况)

从原则上讲,对象属性的任何一个值的组合就是一个状态, 全部的状态构成一个对象的状态空间;

对象在其生命周期中的状态数量是有限的;

对象的状态在满足某些条件、执行某些活动或发生某些事
状态机
例如:UNIX操作系统中的进
程的生命周期可用状态机简 略表示如下。
c
广东药学院 · 医药信息工程学院
第10章 状态机图
状态和状态机 如何阅读状态机图 如何绘制状态机图 状态机图应用说明
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
状态机图的组成

状态(State):表示一个模型元素在生存期的一种状况。一 个状态在一个有限的时间段内存在。 转移(Transition):表示一个模型元素的不同状态之间的 联系。在事件的触发下,一个状态可以转移到另一个状态。
元素通常是一个对象类(或实体),也可以是Use Case 甚至整个系统。用以说明一个模型元素在其生命期间 的状态转换规律及其对事件的响应。

从模型元素的开始状态起,响应事件,执行某些动作,引 起转移到新状态,又在新状态下响应事件,执行动作,引 起转移到另一个状态,如此继续,直到终结状态。
c
广东药学院 · 医药信息工程学院
延迟事件:延迟事件是一种特殊的事件,它是指该
事件不会触发状态的转换,当对象处于该状态时事
件不会丢失,但会被延迟执行。
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
包含复合状态的状态机图
复合状态由状态或子状态(多层嵌套)组成。 每个子状态继承了其所属的复合状态的全部转换。 每个复合状态的区域可能有一个初态,进入复合状态边 界的转换意味着进入复合状态内的初态上的转换。 复合状态可以有终态,到了终态的转换会触发复合状态 上的完成转换。

这个对象可能处于的稳定状态、从一个状态到另一个状态 之间的转换所需的触发事件,以及每个状态改变时发生的 动作。
状态机图既可以用来表示一个业务领域的知识,也可
以用来描述设计阶段对象的状态变迁。
c
广东药学院 · 医药信息工程学院
练习:建模航班状态图
创建一个状态图来描述航班如何从提出申请、制定航
退出转换 当离开某一状态时,执行相应活动
c
事件(参 数)[监护条 件]/动作
事件(参 数)[监护条 件]/动作
entry/活动
exit/活动
广东药学院 · 医药信息工程学院
如何阅读状态机图
包含复杂转换的状态机图-举例:
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
各种转换的区别
进入和退出转换:当进入一个状态时,执行某个动
作;或当退出某个状态时,执行什么动作。这时就
可以使用进入和退出转换来表示.
内部转换:用来处理一些不离开该状态的事件 .
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
活动与延迟事件
活动:当对象处于一个状态时,它一般是空闲的,
在等待一个事件的发生。此时若需要,也能让它一
直进行某一活动,直到被某个事件中断。
达状态的结构关系;
理论上说一个复合状态可以嵌套任意层次; 复合状态可以包含有顺序复合状态或并发复合状态。
c
广东药学院 · 医药信息工程学院
顺序复合状态机图
顺序状态:又称为不相交状态,这些状态一个一个顺
序转移,无并发存在。 例题:表示IC卡电话机工作的部分状态机图。
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
简单状态机图
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
触发事件的种类
事件类型
描述
语法 方法名(参数)
调用事件 接收一对象的方法的调用
改变事件
信号事件
对布尔表达式值的修改
接收对象间异步通信
When(表达式)
信号名(参数) After(时间)
时间事件 绝对时间的到达或相对时 间的消耗
若当离开一个复合状态后,又重新进入该复合状态,
但是不希望从它的子初始状态开始运作,而是直接进 入到上次离开该复合状态时的最后一个子状态。
历史状态(History State)代表上次离开组合状态
时的最后一个活动子状态。
历史状态用一个含有字母“H”的小圆圈表示。
c
广东药学院 · 医药信息工程学院
广东药学院 · 医药信息工程学院
如何绘制状态机图-航班机票预定案例
确定状态间转换

目标
无预订
部分预订 预订()
预订完 不直接转换
预订关闭 关闭()
无预订
部分预订 退订(),使预订人=0
预订完 预订关闭 不直接转换 无转换 退订() 无转换
预订(),无空座
无转换
关闭()
关闭()
c
广东药学院 · 医药信息工程学院
件后会产生转换(转移);

状态是指在对象生命周期中满足某些条件、执行某些活动 或等待某些事件的一个条件和状况;

对象处于每个状态的持续时间也是有限的。
c
广东药学院 · 医药信息工程学院
状态
状态(对象的状况)
对系统或对象建立动态行为模型时,只关心那些
明显影响行为的属性和属性值,以及由它们表达 的状态;


事件(Event):是一个有意义的出现(Occurrence)。该出 现在某个时间和空间点发生,并且能立即触发一个状态的 转移。
监护条件(Conduction):通常为已布尔表达式。 动作(Action):一个可执行的原子计算,或者一个非原 子的执行,甚至可以是包含多个动作的活动。
c

广东药学院 · 医药信息工程学院
顺序复合状态机图
例题:建立网络连接的
复合状态机图。
c
广东药学院 · 医药信息工程学院
并发复合状态机图
并发复合状态机图用于表示两个以上状态机并行执行
的情况。
并发复合状态机图用于描述一个对象在某个时刻有多
个并发的子状态机的情况,并发复合状态机图是这些 子状态机图的组合。
并发复合状态机图中的子状态机图各自有自己的初始
如何阅读状态机图
子状态机的应用
状态机图中复合状态太多,将降低其可读性; 单独定义子状态机,并对其进行命名(通常以大写字 母开头),然后在需要使用的地方来引用它。
c
广东药学院 · 医药信息工程学院
如何绘制状态机图
绘制步骤
寻找主要的状态; 确定状态之间的转换; 细化状态内的活动与转换; 用复合状态来展开细节。
c
广东药学院 · 医药信息工程学院
如何阅读状态机图
包含复杂转换的状态机图
转换类型
描述
语法
外部转换 对事件做出响应,引起状态变化 或自身转换,同时引发一个特定 动作,如果离开或进入状态将引 发进入转换、离开转换 内部转换 对事件做出响应,并执行一个特 定的活动,但并不引起状态变化 或进入转换、离开转换 进入转换 当进入某一状态时,执行相应活动
举例:航班机票预定
c
广东药学院 · 医药信息工程学院
如何绘制状态机图-航班机票预定案例
寻找主要状态

在刚确定飞机计划时,显然是没有任何预订的,并且在有 人预订机票之前都将处于这种“无预订”状态;

对订座而言显然有“部分预订”和“预订完”两种状态;

而当航班快要起飞时,显然要“预订关闭”。
c
班计划、售票、起飞、飞行、到着陆的状态过程。
c
广东药学院 · 医药信息工程学院
练习:建模航班状态图
相关文档
最新文档