第10章 状态机图讲解

合集下载

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

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

产品经理产品设计-产品之术一目了然的状态机图

产品经理产品设计-产品之术一目了然的状态机图

产品之术一目了然的状态机图什么状态机图,它的使用情景是什么?文章为你解读。

做产品的时候,直觉我们当遇到一些比较复杂的逻辑问题。

比如状态的转换,字段状态的确认,权限的控制,状态的对应。

而普通的流程图,或时序图,相当侧重于流程特技和动作的描述,对于第三类和状态的解读缺乏准确直观。

这里我们推荐一种方式,就是图表画一个简单的状态机图:那么什么是状态机呢?状态机我们将的一般是指有限状态机:有限状态机,(英语:Finite-statemachine,FSM),又称有限状态自动机,简称状态机,是步法表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

[1]有限状态机,又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间动作转移和的等行为的数学模型。

[1]有限状态机可以将复杂的逻辑简化为有限个稳定状态,在稳定状态中判断事件。

其中有限不是指有限是非次处理,而是有限个稳定状态,并且有限状态机是一个闭环系统,可以用有限的初始状态处理无尽有限的事务。

有限状态机是一种用来进行对象行为建模的工具,其作用主要积极作用是描述对象在它的生命周期内所历经的状态序列,以及如何响应来自外界的各种事件。

在计算机科学中,非常有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。

基本元素当你需要描绘一个对象或系统的行为状态时,相比于直接的语言描述,更推荐使用状态机表或状态机图的形式。

首先我们看一下基本元素:做需求时,至少要了解以下三种元素:起始、终止、状态、历史状态。

再加上动作和条件,我们就可以完成一个状态机图了:所以对于数据类型图来说,基本要用到6个元素:对于历史相态的使用,我们可以参考资料下面的案例。

比如我们举个简单的例子,一个洗衣机的快洗净模式状态图:遇到断电的时候,机器是有缓存的,所以跳出流程恢复操作方法流程之后,是会回到历史竞技状态。

状态机表怎么画?首先我们看得出来下下面这张状态机图,展示了一张简单的单审批人的状态流转情况。

第十章 状态机图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社

第十章 状态机图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社
事件包含一个参数列表(可能为空),用于从事件的产生者向其接 收者传递信息。
对应于触发器转换,没有明确的触发器的转换成为结束转换或无触 发器转换,是在状态的内部活动执行完毕后隐式触发的。
转换——事件
能够在触发器中接收的事件有以下四种:
调用事件:调用事件表示对象接收到一个调用操作的请求。其期待的结 果是事件的接收者触发一个转换并执行相应的操作。
改变事件:改变事件的发生依赖于事件中某个表达式所表达的布尔条件。 改变事件没有参数,要一直等到条件被满足才能发生。
信号事件:信号由一个对象准确地送给另一个或一组对象。发送给一组 对象的信号可能触发每个对象的不同转换。
时间事件:时间事件的发生依赖于事件中的一个时间表达式。比如,可 以让对象进入某状态后经过一段给定的时间或到达某个绝对时间后发生 该事件。
转换——事件
stm 订单类 Unselected
click(posX, posY) [posX==x and posY==y]
Selected
(a)
SingleSelectionMode shiftKeyUp MultiSelectionMode shiftKeyDown (c)
状态机图
状态机 状态机图
状态机图的基本概念
状态机
状态机是一种行为,它说明对象在其生命周期中响应事件所经历的 状态变化序列以及对那些时间的响应。
一般情况下,一个状态机依附于一个类,用来描述这个类的实例的 状态及其转换,和对接收到的事件所做出的响应。此外,状态机也可 以依附于用例、操作、协作等元素上,描述它们的执行过程。
等待支付
[立即支付] 审核完成
[及时支付]
[超出支付时限]
审核失败
状态机图

UML图详解(八)——状态机(状态图和活动图)

UML图详解(八)——状态机(状态图和活动图)

UML图详解(⼋)——状态机(状态图和活动图)⼀、概念状态图和活动图是状态机的两种表现形式。

利⽤状态机可以精确地描述对象的⾏为。

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

⼆、状态图状态图(State Diagram)=状态(State)+迁移(Transition)⼀个状态图描述⼀个状态机。

状态图表现从⼀个状态到另⼀个状态的控制流。

<1>状态图的语法1>除了状态中的初始状态(实⼼圆)和终⽌状态(⽜眼形状),其它状态⽤⼀个圆⾓矩形表⽰转换表⽰状态间可能的路径,⽤箭头表⽰事件/动作写在由它们触发引起的转换上<2>状态2>状态⼀般是给定类对象中的⼀组属性值,在其所在的上下⽂中应该唯⼀,但可以匿名。

在对系统建模时,我们可以只关⼼那些明显影响对象⾏为的属性以及由他们表达的对象状态,⽽不⽤理睬那些于对象⾏为⽆关的状态。

表⽰⽅式:状态由⼀个带圆⾓的矩形表⽰。

应⽤标签标⽰状态的内部活动。

语法:标签/活动表达式UML提供的标签:1. entry:当进⼊⼀个状态的时候被⾃动触发,该活动在状态中其它任何活动之前被⾃动触发。

2. do:当状态处于激活时执⾏do活动,do活动在进⼊活动之后执⾏,并且⼀直运⾏到它本⾝完成为⽌。

3. exit:当离开⼀个状态的时候被⾃动触发,该活动在该状态结束之前、所有其它活动都完成后被触发。

状态可以嵌套状态图,此时状态称为组成状态,否则为简单状态。

⼊⼝事件表⽰⼀个⼊⼝的动作序列,它在进⼊状态时执⾏。

⼊⼝事件的动作是原⼦的,并且先于⼈和内部活动或转换。

出⼝事件表⽰⼀个出⼝的动作序列,它在退出状态时执⾏。

出⼝事件也是原⼦的,它跟在所有的内部活动之后,但是先于所有的出⼝转换。

1. 简单状态(Simple State)2. 复合状态(Composite State)复合状态可以有多组状态图,每组⽤虚线分割开来。

状态机图(精品)

状态机图(精品)

状态机图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)伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。

它是一个瞬时状态,用于构造转换的细节。

当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。

状态机讲义

状态机讲义

Digital System Design12011/6/21Computer Faculty of Guangdong University of Technology大部分数字系统都可以划分为控制单元和数据单元(存储单元)两个组成部分,通常,控制单元的主体是一个状态机,它接收外部信号以及数据单元产生的状态信息,产生控制信号序列。

Digital System Design22011/6/21Computer Faculty of Guangdong University of Technology有限状态机特别适合描述那些发生有先后顺序或者有逻辑规律的事情(其实这就是状态机的本质)。

状态机的本质就是对具有逻辑顺序或时序规律事件的一种描述方法,即“逻辑顺序”和“时序规律”就是状态机所要描述的核心和强项,换言之,所有具有逻辑顺序和时序规律的事情都适合用状态机来描述。

Digital System Design32011/6/21Computer Faculty of Guangdong University of Technology1、基本概念有限状态机(Finite State Machine ,FSM )是表示实现有限个离散状态及其状态之间的转移等行为动作的数学模型。

(关注Matlab 的Stateflow )(1)状态:也叫状态变量。

在逻辑设计中,使用状态划分逻辑顺序和时序规律。

状态名称、状态编码、进入/退出操作、内部转移、子状态、延迟事件Digital System Design42011/6/21Computer Faculty of Guangdong University of Technology(2)转移:指两个状态之间的关系,表示当发生指定事件且满足指定条件时,第一个状态中的对象将执行某些操作并进入第二个状态,即“触发”了转移。

将触发转移之前的状态定义为“源”状态(初始状态),而触发转移之后的状态定义为“目标”状态(次态)。

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)。

状态机FSM设计PPT课件

状态机FSM设计PPT课件
作用
状态机在软件设计、硬件设计、控制 系统等领域中广泛应用,用于实现复 杂的逻辑控制、错误处理、通信协议 等功能。
状态转换原理
状态转换条件
状态机从一个状态转换到另一个状态需要满足一定的条件,这些条 件可以是外部输入、内部状态或时间等。
状态转换过程
当满足状态转换条件时,状态机会从当前状态跳转到下一个状态, 同时执行相应的动作或操作。
3
使用子状态机
将复杂状态机拆分为多个子状态机,提高可管理 性。
提高代码可读性和可维护性
规范化命名
为状态和转换使用清晰、一致的命名规则。
添加注释
在关键部分添加注释,解释状态和转换的意 图。
模块化设计
将状态机实现为独立的模块,方便复用和测 试。
调试和测试方法分享
日志记录
在关键状态转换处添加日志记录,便于跟踪 和调试。
断点调试
使用断点调试工具,逐步执行状态机代码, 观察状态变化。
单元测试
编写针对状态机的单元测试,确保每个状态 和转换的正确性。
集成测试
将状态机与其他模块集成,进行整体测试, 验证系统功能的正确性。
06 总结与展望
本次课程回顾与总结
状态机基本概念
介绍了状态机的定义、组成要素、工 作原理等基本概念。
度,使程序更易于理解和扩展。
有限状态机在软件架构中的作用
有限状态机的定义
有限状态机(Finite State Machine,FSM)是一种具有有限个 状态的系统,它在外部事件的驱动下发生状态转移。
FSM在软件架构中的位置
在软件架构中,FSM可作为核心组件,用于控制系统的行为和流程。
FSM对软件架构的影响
使用Verilog或VHDL等硬件描述语言,可以方便地描述和实现状态机。通过定义状态、 输入、输出以及状态转移条件,可以构建出功能强大的状态机。

第10章 状态图

第10章 状态图

第10章状态图在一个交互中,可能发送给单个对象一个或多个消息,并且,这些消息以特定的顺序被接收。

但是,在另外的交互中,同一个对象可能接收完全不同的消息。

根据各个交互的详细情况,特定消息发送到对象的顺序也可能根据情况的不同而改变。

通过考虑对象能够参与的所有可能的交互,我们可以看到,在一个对象的整个生存期中,它必须能够合理地响应次序变动范围相当大的消息。

在第8章,我们已经看到,对象图不是用来详细说明系统所有可能的状态的。

首先,的确存在着太多的状态,不能用文档穷举;其次,除了要知道可能的状态是什么,我们还需要知道哪些状态是不可能,或者不合法的。

出于完全相同的原因,顺序图和协作图也不是用来描述对象能够参与的所有可能交互的视图。

对这两种情况,解决方案是相同的,即使用表示法的更抽象的形式详细说明系统,而不是举例说明。

在UML中,对象的行为规格说明是通过为对象定义状态机来给出的。

状态机说明了对象对它在生存期期间可能检测到的事件的响应。

在UML中,状态机通常是用一种称为状态图的图来文档化的。

交互图和状态机给出的是系统动态行为的两个互补的视图。

交互图显示了在较短的一段时间在系统中的对象之间传递的消息,通常是在单个用户产生的事务期间,因此这些图必需描述很多对象,即特定事务中所涉及的那些对象。

另一方面,状态图自始至终在一个单个对象的整个生存期中跟踪该对象,指定该对象能够接收的所有可能的消息序列,以及它对这些消息的响应。

10.1 依赖状态的行为许多对象展现出了依赖状态的行为。

不严密地说,这意味着对象在不同时间将对相同的刺激做出不同的响应。

例如,考虑一个简单的CD播放机的行为,播放机包括一个装CD的抽屉,如果当前有播放的CD,就放在抽屉里。

还包括一个界面,界面包含三个按钮,标明“装入(load)”、“播放(play)”和“停止(stop)”。

如果当前抽屉关着,装入按钮使之打开,如果是打开的,则使之关闭。

停止按钮使播放机停止正在进行的播放。

状态图本章首先介绍状态图的基本概念并具体讲解状

状态图本章首先介绍状态图的基本概念并具体讲解状

UML建模语言
3. 内部转换 状态可能包含一系列的内部转换,内部转换因为只 有源状态而没有目标状态,所以内部转换的结果 并不改变状态本身。 4. 入口和出口动作 状态可能具有入口和出口动作。这些动作的目的是 封装这个状态,这样就可以不必知道状态的内部 状态而在外部使用它。 5. 历史状态 组成状态可能包含历史状态(History State), 历史状态本身是个伪状态,用来说明组成状态曾 经有的子状态。
UML建模语言
9.3 组 成 状 态 组成状态(Composite State)是内部嵌套有 子状态的状态。可包括一系列子状态。之间 可用“与”或“或”关系。 一个系统在同一时刻可以包含多个状态。
UML建模语言
1. 顺序组成状态 如果一个组成状态的多个子状态之间是互斥、不能同时存 在的,则这种组成状态称为顺序组成状态。 一个顺序组成状态最多可以有一个初始状态和一个终态, 同时也最多可以有一个浅(Shallow)历史状态和一个深 (Deep)历史状态。
UML建模语言
9.5.2 标识实体 的各种状态 对于一个学生账号 来说,它的状态主 要包括以下几种:
初始状态。 终止状态。 可选课状态。 不可选课状态。 账号被删除状态。
UML建模语言
9.5.3 标识相 关事件并创建 状态图
当确定了需要 建模的实体并 找出了实体的 初始状态、终 找相关 止状态以及其 事件和 他相关状态后, 转换 就可以着手创 建状态图。
(4)终止状态
终止状态是一个状态图的终点,一个状态图可以拥有 一个或者多个终止状态。用含实心圆的空心圆表示.
(5)判定
活动图和状态图中 都有需要根据给定 条件进行判断,然 后根据不同的判断 结果进行不同的转 换的情况。

uml建模状态机图PPT专业课件

uml建模状态机图PPT专业课件
4
例:CD播放器
5
一、状态(state)
2、状态的表示 状态名称 入口动作 出口动作 内部转换 内部活动 可推迟事件
状态示例
6
动作(Action)
可执行的原子计算。 不可中断,其执行时间可忽略不计。
两种特殊动作:
进入动作(entry action):进入某状态时执 行的动作,用“entry/要执行的动作”表示。
34
10.3 建立状态机图
1.寻找主要的状态 飞机票有以下4种状态:无预订、部分预订、
预订完、预订关闭。 (1)在刚确定飞行计划时,显然没有任何预订,
且在顾客预订机票之前都将处于“无预订”状态。 (2)对于订座而言,有“部分预订”和“预订完”
两种状态。 (3)当航班快要起飞时,要“预订关闭”。
35
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
Maintaining The train stop
22
(2)内部转换
有一个源状态但没有目标状态,转换后的状态 仍是它本身。
23
(3)自动转换
在没有外部事件的作用下,对象执行了某些活 动后,自然而然地完成的转换。

UML状态图详解

UML状态图详解

状态图的组成要素
Stylish templates can be a valuable aid to creative professionals.
状态
转换 判定 同步 事件 初始和终止状态
状态是状态图的重要组成部分,它描述了一
个类对象生命周期中的一个时间段。
状态包含的内容
如何建模状态图
Stylish templates can be a valuable aid to creative professionals.
创建一个状态图的步骤如下:
标识出建模实体。 标识出实体的各种状态。 创建相关事件并创建状态图。
创建状态图的原则:
一般来说,不需要给所有的类都创建状态图 ,只有具有重要动态行为的类才需要。
判定示例
无判定示例
同步是为了说明并发工作流的分支与汇合。
状态图和活动图中都可能用到同步
同步
同步示例
一个事件的出现可以触发状态改变
事件可分为:信号事件、时间事终止状态是状态图中的两个特殊
状态。初始状态代表着状态图的起点,终止 状态代表着状态图的终点。

案例 某建筑公司合同审批的流程如下,首先由相关 文员起草合同,起草后的合同送交相关主管进 行审核,审核通过后合同送交法律顾问进行审 核,法律审核后的合同如果金额小于50万,直 接送交项目经理审批后完成流程;如果合同金 额大于50万,合同先经过项目经理审核,然后 再由公司财务总监、总工程师共同会签,最后 送交公司总经理审批。
根据图书管理系统,分析主要业务的实体和状 态,进行状态图的建模。 要求: 1.首先编写主要业务流程说明,各项命名必须 规范合理 2.状态图需要有完整的状态名、内部活动、转 换条件的说明

类图、时序图、状态图-ATM系统PPT课件

类图、时序图、状态图-ATM系统PPT课件

编写脚本内容: 描写既可以包括系统中发生的全部事件,也可 以只包括由某些特定对象触发的事件。
对于每个事件,都应该指明触发该事件的动作对象(系统、用 户或其他事物)、接受事件的目标对象以及该事件的参数。
编写步骤:
▪编写正常情况的脚本。
▪考虑特殊情况,例如输入或输出的数据为最大值(或最小值)。
▪考虑出错情况,例如,输入的值为非法值或响应失败。
精品ppt
17
10.3 建立对象模型
10.3.4 确定属性
➢ 属性是对象的性质或特征 ➢ 注意在分析阶段不要用属性来表示对
象间的关系,使用关联能够表示两个 对象间的任何关系,而且把关系表示 得更清晰、更醒目。 ➢ 确定属性的过程包括分析和选择两个 步骤。
精品ppt
18
10.3 建立对象模型
10.3.4 确定属性
10.3.4 确定属性
➢ 分析
(1) 误把对象当作属性 同一个实体在不同应用领域中,到底应该作为对象还是
属性,需要具体分析才能确定。 例如,储户/账户.
(2) 误把关联类的属性当作对象的属性 如果某个性质依赖于某个关联链的存在,则该性质是关
联类的属性,不应该把它作为一般对象的属性。 例如,带宽是体现关联的属性而不是ATM的
精品ppt
27
1. 分解“现金兑换卡”类
“现金兑换卡”有两个相对独立的功能,它 既是鉴别储户及使用ATM的权限的卡,又是 ATM获得分行代码和卡号等数据的数据载体。
因此,把“现金兑换卡”类分解为“卡权限” 和“现金兑换卡”两个类,将使每个类的功 能更单一:前一个类标志储户访问账户的权 限,后一个类是含有分行代码和卡号的数据 载体。
隐含的关联 总行由各个分行组成。 分行保管账户。 总行拥有中央计算机。 系统维护事务日志。 系统提供必要的安全性。 储户拥有现金兑换卡。 中央计算机与分行通信

状态机图

状态机图

1 基本概念

1.4 状态机操作
– 创建一个状态模型: • 单击Browse>State Machine Diagram, 在左边的“State Machine”下面选择新 创建的状态模型所要放置的位置: • 双击New: • 在Title文本框中为图命名; • 指定要创建的图类型:活动图(Activity) 或状态图(Statechart); • 单击OK按钮。
2 状态机图中的模型元素

2.3 状态转移 – 状态转移通常采用如下的语法进行标记: 事件名(参量)[监护条件]/动作 – 转移及转移动作
转移种类 入口动作 出口动作 外部转移 含 义
进入某一状态时执行的动作 离开某一状态时执行的动作 引起状态改变的转移或自身转移,同时执行一个 具体的动作,包括引起入口动作和出口动作被 执行的转移 引起一个动作的执行但不改变状态或不引起入口 动作和出口动作的执行
8 判断规范

8.1 General标签


8.2 Transitions标签
8.3 Swimlanes标签
9 同步规范

9.1 General标签 9.2 Transitions标签
1 基本概念
--对象的每一种状态通过对象的一个属性 或几个属性的值来表达。
--分析状态的目的:为了认识对象的行为 规律,为了看清在不同的状态下对象将 呈现哪些行为,这些行为将遵循什么规 律和约束,以及通过什么行为能使对象 从一种状态转移到另一种状态,从而确 切地定义这个对象。
--认识对象状态的抽象原则:划分状态等价类
帐号输入状态 entry/清空输入框
(2)exit:出口动作,用来指定状态被另一个状态取代时发生 的动作。出口动作的语法形式:exit/动作名。 帐号输入状态

第10章 状态图讲解

第10章 状态图讲解

构成状态图的元素
外部转换
外部转换是一种改变状态的转换,也是最普通最常见的一 种转换。在UML中,它用从源状态到目标状态的带箭头的 线段表示,其他属性以文字串附加在箭头旁。
构成状态图的元素
内部转换
内部转换只有源状态,没有目标状态,不会激发入口和出 口动作,因此内部转换激发的结果不改变本来的状态。如 果一个内部转换带有动作,它也要被执行。内部转换常用 于对不改变状态的插入动作建立模型。要注意的是内部转 换的激发可能会掩盖使用相同事件的外部转换。
状态图的组成
2. 并发组成状态
在一个组成状态中,可能有两个或者多个并发的子状态机, 我们称这样的组成状态为并发组成状态。每个并发子状态 还可以进一步分解为顺序组成状态。
一个并发组成状态可能没有初始状态,终态,或者历史状 态。但是嵌套在它们里的任何顺序组成状态可包含这些伪 状态。
创建状态图
要创建状态图,首先要标识出哪些实体需要使用状态图进 一步建模。虽然我们可以为每一个类、操作、包或用例创 建状态图,但是这样做势必浪费很多的精力。一般来说, 不需要给所有的类都创建状态图,只有具有重要动态行为 的类才需要。
从另一个角度看,状态图应该用于复杂的实体,而不必用 于具有复杂行为的实体。使用活动图可能会更加适合那些 有复杂行为的实体。具有清晰、有序的状态实体最适合使 用状态图进一步建模。
实际就是工作流在此处按监护条件的取值发生 分支,在UML中判定用空心菱形表示。
状态图的概念
2. 状态图的作用
(1)状态图清晰的描述了状态之间的转换顺序,通过状 态的转换顺序也就可以清晰的看出事件的执行顺序。如果没 有状态图我们就不可避免的要使用大量的文字来描述外部事 件的合法顺序。

第10章活动图 UML

第10章活动图 UML

UML建模语言
10.1.1 活动 图的定义 活动图是一种 用于描述系统 行为的模型视 图,它可用来 描述动作和动 作导致对象状 态改变的结果, 而不用考虑引 发状态改变的 事件。
UML建模语言
10.1.2 活动图的作用 *描述一个操作执行过程中所完成的工作,说明角 色、工作流、组织和对象是如何工作的。 *活动图对用例描述尤其有用,它可建模用例的工 作流、显示用例内部和用例之间的路径。 *显示如何执行一组相关的动作,以及这些动作如 何影响它们周围的对象。 *活动图可以画出工作流用以描述业务,有利于与 领域专家进行交流。通过活动图可以明确业务处 理操作是如何进行的,以及可能产生的变化。 *描述复杂过程的算法,在这种情况下使用的活动 图和传统的程序流程图的功能是相似的。
UML建模语言
10.3.6 创建分 叉与结合 单击工具栏中的 Horizontal Synchronization 图标按钮,在绘 制区域单击鼠标 左键。
UML建模语言
10.3.7 创建分 支与合并 首先单击工具栏 中的Decision图标 按钮,然后在绘制 区域单击鼠标左键。
UML建模语言
10.3.8 创建泳道 首先需要单击工具栏中的Swimlane图标按钮, 然后在绘制区域单击鼠标左键,就可以创建新 的泳道。
UML建模语言
10.2.6 泳道 为了对活动的职 责进行组织而在 活动图中将活动 状态分为不同的 组,称为泳道 (Swimlane)。 每个泳道代表特 定含义的状态职 责部分。
UML建模语言
10.2.7 对象流 对象流(Object Flow)是将对象流 状态作为输入或输 出的控制流。在活 动图中,对象流描 述了动作状态或者 活动状态与对象之 间的关系,表示了 动作使用对象以及 动作对对象的影响。

如何绘制状态图

如何绘制状态图

学习绘制状态图•状态和状态机状态、状态表示法及状态机•状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况•一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成•状态机是计算机科学理论的一部分,但UML中的状态机模型主要是基于David Harel所做的扩展,是用来展示状态与状态之间转换的图•如何阅读状态机图阅读最简单的状态图•最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换转换的五要素•源状态:即受转换影响的状态•目标状态:当转换完成后对象的状态•触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件•监护条件:布尔表达式,决定是否激活转换、•动作:转换激活时的操作读图小结•与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。

如果对象收到事件turnOn,那么将判断壶中是否有水;如果[没水],则仍然处于off状态;如果[有水]则转为on状态,并执行“烧水”动作•而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了复杂转换转换类型描述语法外部转换对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作,如果离开或进入状态将引发进入转换、离开转换事件(参数)[监护条件]/动作内部转换对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换事件(参数)[监护条件]/动作进入转换当进入某一状态时,执行相应活动entry/活动退出转换当离开某一状态时,执行相应活动exit/活动阅读带有复杂转换的状态图只有动作描述,进入和退出和操作方法写在了里面各种转换的区别•进入和退出转换:当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。

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

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

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


状态是指在对象生命周期中满足某些条件、执行某些活 动或等待某些事件的一个条件和状况
一个状态通常包括名称、进入/退出活动、内部转换、 子状态和延迟事件等五个部分组成

状态机是计算机科学理论的一部分,但UML中的状态 机模型主要是基于David Harel所做的扩展,是用来展示 状态与状态之间转换的图
状态机图描述从状态到状态的控制流程,常用来对系 统的动态特怔进行建模。在大多数情况下,它用来对 反应型对象(外部事件触发对象,对象接受到事件后产生 响应)的行为模型。 状态机图常用来描述业务或软件系统中的对象在外部 事件的作用下,对象的状态从一个状态到另一个状态 的控制流。利用状态图可以精确地描述对象在生命周 期内的行为特征。
事件:就是外部作用于一个对象,能够触发对象状态 改变的一种现象。事件可以分为调用、改变、信号、 时间四类事件。 1).信号事件 对象之间通过发送信号和接收信号实现通信。信号是 一种异步机制。在计算机中,鼠标和键盘的操作均属 于此类事件。对于一个信号而言,对象一般都有相应 的事件处理器,如onMouseClick()等。 2).调用事件 调用某个对象的成员方法就是调用事件,它是一种同 步的机制。例如在图中,turnOn就是一种调用事件, 用来将开关置于“On”状态。
活动 当对象处于一个状态时,它一般是空闲的,在等待一 个事件的发生。但是某些时间,对象正在执行一序列 动作,即,对象做着某些工作,并一直继续到被某个 外部事件的到来,才中断这些工作,我们把对象处于 某个状态时进行的一序列动作称为活动。 如果对象处于某个状态进行一些动作,可能会需要一 些时间,我们可以用活动来描述这一序列动作。表示 活动的方法是,在状态的转换分栏中添加一行“活动 描述”,其格式为“do/动作名”。 活动用来描述对象处于某个状态时,对象进行的一 序列动作。
动作分为入口动作和出口动作。当转换发生时,进入 某个状态时发生的动作称为入口动作;离开某个状态 时发生的动作称为出口动作。 1).入口动作 入口动作表示对象进入某个状态所要执行的动作。入 口动作用“entry/要执行的动作”表示。 2). 出口动作 出口动作表示对象退出某个状态所要执行的动作。出 口动作用“exit/要执行的动作”表示。 入口动作和出 口动作都标识在状态视图的第二栏中。
状态视图的表示
转换
转换是指对象在外部事件的作用下,当满足特定的条 件时,对象执行一定的动作,进入目标状态。转换用 带箭头的直线表示,箭尾连接源状态(转出的状态), 箭头连接目标状态(转入的状态)。 转换关系到的内容包括:源状态、目标状态、外部事 件、监护条件和执行的动作。
转换的五要素
• • •
源状态:即受转换影响的状态 目标状态:当转换完成后对象的状态 触发事件:用来为转换定义一个事件,包括调用、改变、 信号、时间四类事件
• •
监护条件:布尔表达式,决定是否激活转换、
动作:转换激活时的操作
源状态 对于一个转换来说,转换前对象所处的状态,就是源 状态。源状态是个相对的概念,即,相对当前状态而 言,它的前一个状态就是源状态。 目标状态 转换完成后,对象所处的状态就是目标状态 。当前状 态相对它的前一个状态而言,当前状态就是目标状态。 源状态和目标状态都是相对某个转换而言的。
监护条件 监护条件是一个布尔表达式,当布尔表达式的值为真 时,转换才能够完成。只有在触发事件发生时,才计 算一次监护条件的值,当监护条件的值为真时,转换 才发生。如果转换发生后,监护条件才由假变为真, 那么转换也不会被触发。
动作 当转换被激活后,如果定义了相应的动作,那么就将 执行这个动作。动作可以是一个赋值语句、简单的算 术运算、发送信号、调用操作、创建和销毁对象、读 取和设置属性的值,甚至是一个包含多个动作的活动。 例如,在图中,当turnOn事件发生,就测试监护条件 [有水],如果有水,就会执行“烧水”的动作。
3).改变事件 改变事件是指某个指定属性值为真时,事件得到触发。 它与监护条件不同,在对象生命周期内,一直在计算 改变事件中的属性值,当属性值为真时,事件触发, 计算停止。 4).时间事件 当时间流逝到某个时刻,触发事件对对象起作用。时 间事件代表时间的流逝。它可以指定为绝对形式(每 天的某时,例如after(12:00)),也可以指定为相对 形式(从某一指定事件发生开始所经过的时间,例如 after(2seconds))。对于前一种形式,也可以使用 变化事件来描述:when(12:00)。
相关文档
最新文档