状态机图

合集下载

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

状态机图(状态活动)汇总课件
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)。

状态图课件

状态图课件

延迟事件:该事件不会触发状态的转换,当对
象处于该状态时事件不会丢失,但会被延 迟执行。例如,当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)是一个可执行的原子计算,它导致状态的变更或返回一个值。 通常一个状态机依附于一个类,并且描述一个类的实例。状态机包含了一个对 象在其生命周期所有状态的序列以及对象对接收到的事件所产生的反应。

第八章 状态机图

第八章   状态机图

构成:状态名称、入口和出口动作、内部转 换、内部活动和可推迟事件等。
状态名称
Enter Password
entry / set echo * exit / set echo normal keypress / handle character help / display help save / defer do / get password
组件符号
4.2 接口
• 定义:也是一种类元,是对一组公共特性 的声明,包括属性和操作,但不包括其实 现。 • 分类: 供给接口:组件实现了该接口,可以对外提 供该接口中的所有操作。 需求接口:组件需要从其他组件中获得的功 能
4.3 工件
• 定义:是系统中的一个物理单元,
<<artifact>> ChatWindow . jar
状态机图 第八章 状态机图
• • • • •
状态机图概述 状态机图基本元素 状态机图基本元素 复合状态 复合状态 子机状态 子机状态 历史状态
1.状态机图概述 状态机图概述
状态机图是描述单一对象在其生命期内受 各种事件的影响而发生的状态变化。 状态机图是展示状态与状态转换的图,它 不仅可以描述对象的行为,也可以用来描述 用例、协作和方法的动态行为。
2. 复合结构图基本元素
• 部件、连接器、端口 部件、连接器、
FriendList
角色名 类型 连接器 多重性 offlineMessage: Message[*] 1 部件 结构化类FriendList 图9.1 结构化类 *
Friend: Client[*]
FriendList
friend : Client [*]
工件符号
协作示例

第6章 状态机图

第6章 状态机图

14
例1:子状态之间“or”关系的例子。
例2:子状态之间“and”关系的例子。
15
History State(历史状态)


History State: A pseudostate whose activation restores the previously active state within a composite state. 使用历史状态,可以记住从组合状态中退出时 所处的子状态,当再次进入组合状态时,可直 接进入到这个子状态,而不是再次从组合状态 的初态开始。
7
状态(State)


定义:A state is a condition or situation during the life of an object during which it satisfies some condition, performs some activity, or waits for some event. 一个状态是指在对象的生命期中的一个条件或 状况,在此期间对象将满足某些条件、执行某 些活动或等待某些事件。
22


说明: 在UML中,事件分为四类: (1) Call event (调用事件) (2) Change event (变化事件) (3) Time event (时间事件) (4) Signal event (信号事件)
23
(1) Call event: The event of receiving a call for an operation that is implemented by actions on state machine transitions. Call event的语法格式如下: 事件名 ( [逗号分隔的参数列表] ) 其中参数列表中的参数格式为: 参数名:类型 例:

UML 状态图 StateChart Diagram

UML 状态图 StateChart Diagram

A、State Diagram(状态图)、State Machine Diagrams(状态机图)状态机图是说明一个元素(通常是类)能在不同状态之间变动。

状态机图的其它方面进一步描述和解释其运动和行为。

状态图主要用来描述对象、子系统、系统的生命周期。

通过状态图可以了解到一个对象所能到达的所有状态以及对象收到的事件(收到消息,超时,错误,条件满足)对对象状态的影响等。

状态所有对象都有状态,状态是对象操作的前一次活动的结果。

类的状态由类中的指定属性来说明。

事件当某些事情发生时对象的状态发生改变,我们称改变对象状态的事情为事件。

B、状态图的模型元素B.1、Initial(起点)初始态Initial元素是伪状态用于表明一个复合状态的默认状态。

可以在每一个复合状态的区域有一个初始顶点。

B.2、Final(终点)终态B.3、State(状态)State描述一些不变条件成立的情形。

这个条件可以是静态的(等待某个事件)也可以是动态的(正在执行一组活动)。

状态建模通常用于阐述类。

你可以适用State的operation(操作)来定义enter(进入)、internal(内部)、exit(退出)动作。

State 也可以有Attributes(属性)。

B.3、State Machine(状态机)状态机是一组相关状态元素的容器。

你可以创建状态机图的各个部分。

B.4、Synch(同步)Synch状态用于描述状态机的并发部分同时发生。

在同步发生后Synch状态的新兴过滤路径将合并。

B.5、Choice(选择)Choice伪状态用于组成复制过滤路径,例如:在状态机图中一个过滤的路径取决于一个动态的运行时的条件。

这个运行时的条件是由状态机路径选择决定的。

B.5、Junction(汇合)Junction伪状态用于设计复杂过滤路径。

一个Junction可以用来汇合或组合多个过滤路径为一个过滤路径。

另外一个Junction可以把一个进来的路径分割成多个路径。

UML之状态机图

UML之状态机图

UML之状态机图状态机图基本概念: 状态机图,UML 1.x规范中称状态图,是⼀个展⽰状态机的图。

状态机图基本上就是⼀个状态机中元素的投影,这也就意味着状态机图包括状态机的所有特征。

状态机图显⽰了⼀个对象如何根据当前状态对不同事件做出反应的动态⾏为。

状态机图主要由状态和转换两种元素组成。

状态机 状态机是⼀种⾏为,它说明对象在其⽣命周期中响应事件所经历的状态变化序列以及对那些时间的响应。

⼀般情况下,⼀个状态机依附于⼀个类,⽤来描述这个类的实例的状态及其转换,和对接收到的事件所做出的响应。

此外,状态机也可以依附于⽤例、操作、协作等元素上,描述它们的执⾏过程。

状态机从对象的初始状态开始,响应事件并执⾏某些动作,从⽽引起状态的转换;在新状态下⼜继续响应事件并执⾏动作,如此循环进⾏到对象的终结状态。

状态机主要由状态、转换、事件、动作和活动5部分组成。

1)状态表⽰对象的⽣命周期中的⼀种条件或情况。

2)转换表⽰两种状态间的⼀种关系。

3)事件表⽰在某⼀时间与空间下所发⽣的有意义的事情。

4)动作表⽰⼀个可执⾏的原⼦操作,是UML能够表达的最⼩计算单元5)活动表⽰状态机中的⾮原⼦执⾏,⼀般由⼀系列动作组成。

状态机图作⽤:状态机图⽤于对系统的动态⽅⾯进⾏建模,适合描述⼀个对象在其⽣命周期中的各种状态及状态的转换。

状态机图的作⽤主要体现在以下⼏点:1)状态机图描述了状态转换时所需的触发事件和监护条件等因素,有利于开发⼈员捕捉程序中需要的事件。

2)状态机图清楚地描述了状态之间的转换及其顺序,这样就可以⽅便地看出事件的执⾏顺序,状态机图的使⽤节省了⼤量的描述⽂字。

3)清晰的事件顺序有利于开发⼈员在开发程序时避免出现事件错序的情况。

4)状态机图通过判定可以更好地描述⼯作流在不同的条件下⽽出现的分⽀。

状态机图的组成: 简单状态、转换、伪状态。

简单状态 状态是状态机图的重要组成部分,它描述了⼀个对象稳定在的某⼀个持续过程或所处状况,与动态⾏为的执⾏所产⽣的结果。

状态机图优选全文

状态机图优选全文
注:当事件有多个动作发生时,它们之间用,隔开。如: entry/Initial(),Check(),UpdateCheck()
4 组合状态
4.1 组合状态
--把若干个状态组织在一起可构成一个组合状态;组合状态内 所包含的状态称为该组合状态的子状态。把内容不包含其他 状态的状态称为简单状态。
--组合状态中包含的子状态可以是顺序子状态,也可以是并发 的子状态。
– 1) On Event
• Event:对一个在时间和空间 上占有一定位置的有意义事 情的规格说明
• Arguments:由所有与事件相 关的可选参量组成
• Condition:可能包含一个条 件布尔表达式
7 转换规范
7.1 General标签
7.2 Detail标签
• 监护条件(Guard Condition)
1 基本概念
1.2 状态Βιβλιοθήκη 模--通过分析系统(或者其构成元素)的状态以及它们之 间的转移,并以状态、转移等概念来建立系统模型称 为状态建模。
1 基本概念
1.3 状态机图
– 状态机图描述了一个对象在其生命周期内所经 历的各种状态,状态之间的转移,发生转移的 动因、条件以及转移中所执行的活动。
图书状态机图
借阅者状态机图
5 状态规范
– 状态(起始状态和终止状 态)和活动的规范窗口都 包含下列标签:
• General标签 • Actions标签 • Transitions标签 • Swimlanes标签
– 1) General标签
• 复选标记State/activity history:状态/活动历史, 历史提供了一种通过子 状态直接转换到最近访 问过的状态的机制。
– 图形表示:

状态机图

状态机图

9.2 状态图的表示
6.活动 活动
当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。 当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。但 是某些时间,对象正在执行一序列动作, 对象做着某些工作, 是某些时间,对象正在执行一序列动作,即,对象做着某些工作,并一 直继续到被某个外部事件的到来,才中断这些工作,我们把对象处于某 直继续到被某个外部事件的到来,才中断这些工作, 个状态时进行的一序列动作称为活动。 个状态时进行的一序列动作称为活动。 如果对象处于某个状态进行一些动作,可能会需要一些时间, 如果对象处于某个状态进行一些动作,可能会需要一些时间,我们可以 用活动来描述这一序列动作。表示活动的方法是, 用活动来描述这一序列动作。表示活动的方法是,在状态的转换分栏中 添加一行“活动描述” 其格式为“ 动作名” 添加一行“活动描述”,其格式为“do/动作名”。 动作名 活动用来描述对象处于某个状态时,对象进行的一序列动作。 活动用来描述对象处于某个状态时,对象进行的一序列动作。
9.2 状态图的表示
7.理解简单状态图 理解简状态图
例如,我们描述一个烧水器在工作时的行为状态变化。可以采用如图 例如,我们描述一个烧水器在工作时的行为状态变化。可以采用如图96所示进行描述。 所示进行描述。 所示进行描述
•图9-6 烧水器的状态变化图 图
9.2 状态图的表示
9.2.3 分支的表示
9.1 状态机图的概念
1.状态机图 状态机图
状态机图描述对象在整 个生命周期内, 个生命周期内,在外部 事件的作用下,从一种 事件的作用下, 状态转换到另一种状态 的关系图。 的关系图。这种图的节 点是状态(包括初始状 点是状态 包括初始状 态和终止状态), 态和终止状态 ,关系 是转换。图9-1是一个 是转换。 典型的状态机图。 典型的状态机图。

[UML]UML系列——状态机图statechartdiagram

[UML]UML系列——状态机图statechartdiagram

[UML]UML系列——状态机图statechartdiagram系列⽂章引⾔状态机图和顺序图、通信图有哪些区别?顺序图、通信图:描述多个对象间的交互状态机图:描述单个对象的状态及引起状态变化的原因实例分析:⼤学⽣学籍管理系统按国家招⽣规定录取的新⽣,持录取通知书,按学校有关要求和规定的期限到校办理⼊学⼿续。

因故不能按期⼊学者,应当向学校请假,假期⼀般不得超过2周。

未请假、请假未准或者请假逾期者,除因不可抗⼒等正当事由意外,视为放弃⼊学资格。

新⽣⼊学后,学校在三个⽉内按照国家招⽣规定对其进⾏复查。

复查合格者予以注册,取得学籍。

复查不合格者,学校区别情况予以处理,直⾄取消⼊学资格。

......学⽣有如下情况之⼀者,应予休学:(⼀)因伤病经学校指定医院诊断,须停课治疗、休养⼀学期1/3时间;(⼆)⼀学期请假缺课超过该学期总学时的1/3;(三)传染性肝炎、肺结核等传染性疾病;(四)因某种特殊原因,学校认为必须休学。

.....学⽣休学⾄少⼀学期,⼀般以⼀年为限。

学⽣复学后,休学之前已记⼊成绩档案的考核成绩继续有效,并作为学籍处理依据.学⽣复学按下列规定办理:(⼀)学⽣因伤病休学申请复学时,须持有⼆级甲等以上医院诊断书,证明⾝体健康,并经学校指定医院复查合格,⽅可复学;(⼆)学⽣休学期满后应于学期的注册期内持有关证明,经教务处核准后编⼊原专业相应班级选课学习;........学⽣有下列情况之⼀者,应予退学:(⼀)学⽣在读期间,3次出现在⼀学期中取得的课程学分不⾜10学分(不含重修和补考学分;毕业学期除外;第⼀次提出警告,第⼆次提出退学警告,由教务处公布名单,院系负责通知学⽣家长);(⼆)休学、保留学籍期满,在规定期限内不办理复学⼿续;(三)休学累计满⼆年,经复查不合格;(四)因伤病需要休学,经学校动员后仍不办理休学⼿续;(五)经学校指定医院确诊患有疾病,或意外伤残⽆法继续在校学习;(六)未请假离校连续2周末参加学校规定的教学活动;(七) 超过学校规定期限未注册⽽⼜⽆正当事由;(⼋)本⼈要求退学。

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

anwser[ in 30s ] / connet
Connecting
Talking
2013-7-25
25
9.2.3 转移
复合转移

只是外部转移的一个变种
Busy Ringing
anwser [ out 30s ] / fail connect [ in 30s ] / connect
Hung Up Talking
[ students.length>=maxStudents ] In Schedule [ after this term ]
locked [ after this term ]
状态机图PK 状态机

2013-7-25
31
9.3 状态机图
如何使用状态机图

状态机图只是一种辅助模型,根据实际需要使用。 使用时要注意以下问题:
9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 何时使用状态机图 使用状态机图的哪些概念 如何识别对象的状态 如何认识和描述转移 如何为类图提供有用的信息
Talking
2013-7-25
23
9.2.3 转移
转移的种类
1. 2.
外部转移

复合转移
内部转移 3. 完成转移
2013-7-25
24
9.2.3 转移
外部转移
Busy 外部转移是一种改变对象状态的转移,是最常见的 一种转移。 Ringing Hung Up ♂ 外部转移用从源状态到目标状态的箭头表示。

2013-7-25
29
9.2 相关概念
状态机的相关概念
9.2.1 状态机 9.2.2 状态 9.2.3 转移 9.3 状态机图
监护条件
事件触发器
动作
2013-7-25 30
9.3 状态机图
状态机图

显示了一个对象的状态机,它强调从状态到状态的 控制流 同一件事物的两种不同概念,状态机的图形表示即 为状态机图
对象一般没有Do动作 ♂ 表示入口动作执行完之后执行的动作 ♂ 等同于入口/出口动作

Dialing
do/ receiveInput
2013-7-25 11
9.2.2 状态
状态的组成—内部转移(On Event动作)
内部转移的结果并不改变状态本身 ♂ 是对象接收到指定事件时执行On Event动作,但执 行的结果并不改变对象状态
网上选课系统的状态机图
网上选课系统的状态机图
1. 何时使用状态机图 2. 使用状态机图的哪些概念 3. 如何识别对象的状态

对象有哪些有意义的状态 不同状态下的行为规则不同 同一状态下的行为规则一致
4. 如何认识和描述转移 5. 如何为类图提供有用的信息
网上选课系统的状态机图
一个课程对象(Course类对象)的状态变化过程:

2013-7-25
14
9.2.2 状态
组成状态之顺序子状态
如果一个组成状态的子状态对应的对象在其生命期 内的任何时刻都只能处于一个子状态,即多个子状 态之间是互斥的,不能同时存在,这种子状态称为 顺序子状态。 ♂ 当状态机通过转移从某种状态转入组成状态时,此 Running 转移的目的可能是这个组成状态本身,也可能是这 Forward 个组成状态的子状态。 Backword
动作
2013-7-25 19
9.2.3 转移
转移(transition)


转移是两个状态之间的一种关系,表示当一个特 定事件发生或者某些条件得到满足时,对象在第1 个状态(源状态)下执行了一定的动作,并进入第2 个状态(目标状态) 一个转移分为5部分
源状态 2. 事件触发器 3. 监护条件 4. 动作 5. 目标状态

2013-7-25
15
9.2.2 状态
组成状态之并发子状态
有时组合状态有两个或者多个并发的子状态机,此 时称组成状态的子状态为并发子状态。 ♂ 顺序子状态与并发子状态的区别在于后者在同一层 Running 次给出两个或多个顺序子状态,对象处于同一层次 Forward Backword 中来自每个并发子状态的一个时序状态中。
6
9.2.2 状态

初态和终态
初态
终态
2013-7-25
7
9.2.2 状态
状态的组成
♂ ♂

♂ ♂
状态名 入口/出口动作 Do动作 内部转移(On Event动作) 子状态
2013-7-25
8
9.2.2 状态
状态的组成—状态名
状态名的首字母大些 ♂ 一个状态的名称在状态图所在的上下文中应该是唯 一的,状态允许匿名 ♂ 状态的名字通常放在状态图标的顶部

2013-7-25
9
9.2.2 状态
状态的组成—入口/出口动作
入口动作和出口动作表示进入或退出这个状态所要 执行的动作 ♂ 入口动作用“entry/要执行的动作”表达,而出口 动作用“exit/要执行的动作”表达

State
entry/ exit/
2013-7-25 10
9.2.2 状态
状态的组成—Do动作
dial event1
Idle Talking
exit/
2013-7-25
28
9.2.3 转移
自身转移

原状态和目标状态相同的转移
自身转移和内部转移的不同
自转移是离开本状态后重新进入该状态,它会激发 状态的入口动作和出口动作的执行。 ♂ 内部转移自始至终都不离开本状态,所以没有出口 或入口事件,也就不执行入口和出口动作。
Busy
2013-7-25
22
9.2.3 转移
动作
Busy 动作表示在转移过程中需要做什么事情,在/后给 出活动名称,可以省略 Ringing Hung Up ♂ 动作可以包括计算、发送信号给另一个对象、操作 调用、创建和销毁对象等。

anwser[ in 30s ] / connet
Connecting
1. 课程对象被创建,添加到数据库中 2. 管理员可以删除、修改课程信息 3. 课程被开设 4. 学生可以选择课程 5. 如果选修人数超过指定人数,就不再允许学会选这门课 6. 学期结束,课程的状态结束
网上选课系统的状态机图
creat[ good ] / creat course Created
entry/ get course info

2013-7-25
5
9.2.2 状态
状态(state)

UML的解释:对象生命周期的一种条件或情形, 在此期间它满足某些条件、执行某些活动或者等待 某些事件。 ♂ 面向对象语言的理解:对象在其生命周期内的属性 值。(划分等加状态)
Busy
Connecting
2013-7-25
Hanging
Connecting
1.
2013-7-25
20
9.2.3 转移
事件触发器
事件触发器是能够引起状态转移的事件 ♂ 事件可以是信号、调用、时间推移

2013-7-25
21
9.2.3 转移
监护条件

监护条件是触发转移必须满足的条件,它是一个布 Ringing Hung 尔表达式,放在事件触发器的后面 Up ♂ 监护条件只能在事件触发时被计算1次 ♂ 从一个状态引出的多个转移可以有同样的触发器事 anwser[ in 30s ] / connet 件,但是每个转移必须具有不同的监护条件 Talking ♂ 可以被省略 Connecting
26
Connecting
2013-7-25
9.2.3 转移
内部转移

一旦处于某一个状态内,遇到在不想离开该状态下 的处理的事件,此时发生的转移叫做内部转移
Dialing
event dial/ du~du~
2013-7-25
27
9.2.3 转移
自身转移

自身转移是没有标明触发器事件的转移,是由状态 中的活动的完成引起的,是自然而然地完成的转移。 完成转移也可以带一个监护条件,这个监护条件在 状态中的活动完成时被赋值,而非活动完成后被赋 值。

Hight Speed Low Speed
2013-7-25
16
9.2.2 状态
组成状态之历史状态
历史状态代表上次离开组成状态时的最后一个活动 Active 子状态,它用一个包含字母“H”的小圆圈表示。 Forward Pause ♂ 每当转移到组成状态的历史状态时,对象便恢复到 Stop Play 上次离开该组成状态时的最后一个活动子状态,并 执行入口动作。 Back
2013-7-25
32
9.3.1 何时使用状态机图
一个状态机图只适合描述一类对象 不必对每一类对象都进行状态建模 把状态建模和对象建模进行结合
通过状态机图帮助发现和定义对象的操作 ♂ 通过定义对象的操作,完善状态机图

2013-7-25
33
9.3.2 使用状态机图的哪些概念
充分运用状态机图的基本概念

Dialing Talking
event dial/ du~du~
2013-7-25
12
9.2.2 状态
状态的2种情况
简单状态 ♂ 组成状态

♀ 顺序子状态 ♀ 并发子状态 ♀ 历史状态
2013-7-态
简单状态是指不包含子状态。 ♂ 简单状态没有子结构,但它可以具有状态名、入口 /出口动作、Do动作、On Event动作、内部转移。
Deleted
相关文档
最新文档