收藏 分享(赏)

第8章 状态图.ppt

上传人:gnk289057 文档编号:9234276 上传时间:2019-07-30 格式:PPT 页数:40 大小:198.50KB
下载 相关 举报
第8章  状态图.ppt_第1页
第1页 / 共40页
第8章  状态图.ppt_第2页
第2页 / 共40页
第8章  状态图.ppt_第3页
第3页 / 共40页
第8章  状态图.ppt_第4页
第4页 / 共40页
第8章  状态图.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、第8章 状态图,8.1 状态机 8.2 状态图 8.3 状态 8.4 事件 8.5 转换 8.6 状态图建模技术 8.7 实例,状态图是系统分析的一种常用工具,它通过建立类对象的生存周期模型来描述对象随时间变化的动态形为。 8.1 状态机 状态机是展示状态与状态转换的图。计算机科学中状态机使用普遍: 编译原理-有限状态机; 操作系统-进程间的转换; 面向对象分析与设计-状态的转换 状态机包含了一个类的对象在其生命期间所有状态的序列以及对象对接受到的事件所产生的反应。 利用状态机可以精确地描述对象的行为 从对象的初始状态开始,开始响应事件并执行某些动作,这些事件引起状态的转换;对象在新的状态下又

2、开始响应状态和执行动作,如此连续进行直到终结状态。,8.1 状态机 状态机的组成 状态(State) 转换(Transition) 事件(Event) 活动(Activity) 动作(Action),第8章 状态图,8.1 状态机 8.2 状态图 8.3 状态 8.4 事件 8.5 转换 8.6 状态图建模技术 8.7 实例,8.2 状态图 一个状态图表示一个状态机,主要用于状态图表现从一个状态到另一个状态的控制流。 状态图由表示状态的节点和表示状态之间转换的带箭头的直线组成。 若干个状态由一条或者多条转换箭头连接,状态的转换由事件触发。 组成UML状态图的元素: 状态(State) 转换(T

3、ransition) 初始状态(Start State) 终结状态(End State) 判定(Decision),8.2 状态图,8.2.1 状态 状态由一个带圆角的矩形表示。 状态图标可以分为三部分: 名称 内部转换 嵌套状态 状态有2种: 简单状态,不包含其它状态。 组合状态,包含子状态。,8.2.2 转换 转换用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。 转换可以标注与此转换相关的选项如事件、动作和监护条件 当源状态接收到一个事件,并且监护条件得到满足,则执行相应的动作,同时从源状态转换到目的状态。 如果转换上没有标触发转换的事件,则表示此转换为自

4、动进行。,8.2.3 初始状态 初始状态代表状态图的起始位置,只能作为转换的源,而不能作为转换的目标。 初始状态在一个状态图中只允许有一个,它用一个实心的圆表示。,8.2.4 终止状态 终止状态是模型元素的最后状态,是一个状态图的终止点。 终止状态只能作为转换的目标,而不能作为转换的源。 终止状态在一个状态图中可以有多个,它用一个套有一个实心圆的空心圆表示。,8.2.5 判定 判定在状态图中的位置: 工作流在此处按监护条件的取值而发生分支。 判定用空心小菱形表示。 判定的执行: 因为监护条件为布尔表达式,所以通常条件下的判定只有一个入转换和两个出转换。 根据监护条件的真假可以触发不同的分支转换

5、。,第8章 状态图,8.1 状态机 8.2 状态图 8.3 状态 8.4 事件 8.5 转换 8.6 状态图建模技术 8.7 实例,8.3.1 概述 状态图中的状态一般是给定类对象中的一组属性值,这组属性值是对象所有属性的子集。 在对系统建模时,可以只关心那些明显影响对象行为的属性以及由他们表达的对象状态,而不用理睬那些于对象行为无关的状态。 例,对“飞机”对象建模时,其属性相当多,不可能对所有的属性进行描述。 随时间的进行,其某些属性值将发生变化,则其状态也发生变化。,8.3.1 概述 状态种类: 简单状态(Simple State) 组成状态(Composite State) 状态组成:

6、状态名(Name) 活动(Activity) 入口动作(Entry Action) 出口动作(Exit Action),8.3.2 状态名 状态名表示状态的名字,通常用字符串表示。 一个状态的名称在状态图所在的上下文中应该是唯一的。不过,状态允许匿名。 状态的名字通常放在状态图标的顶部 8.3.3 内部转换 内部转换只有一个源状态而没有目标状态,因此转换激发的结果并不改变状态本身。 如果一个内部转换带有动作,动作也要被执行,但是由于没有状态改变发生,因此不需要执行入口和出口动作。 内部转换和自转换不同,虽然两者都不改变状态本身,但是自转换会激发入口动作和出口动作的执行,而内部转换却不会,8.3

7、.4 入口动作与出口动作 入口动作和出口动作表示进入或退出这个状态所要执行的动作。 入口动作用“entry/要执行的动作”表达,而出口动作用“exit/要执行的动作”表达。 8.3.5 简单状态 简单状态是指不包含其他状态的状态。 简单状态没有子结构,但它可以具有内部转换、入口动作和出口动作等。,8.3.6 组成状态 组成状态是可以包含一些嵌套的子状态的状态。 组成状态可以使用“与”关系分解为并发子状态,或者通过“或”关系分解为互相排斥的顺序子状态。 组成状态的一个入转换代表对其嵌套子状态区域内的初始状态的入转换;对嵌套子状态区域内的终结状态的转换代表包含它的终止状态的相应活动的完成。,8.3

8、.6 组成状态 1. 顺序子状态 如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。 当状态机通过转换从某种状态转入组成状态时,此转换的目的可能是这个组成状态本身,也可能是这个组成状态的子状态。,8.3.6 组成状态 2. 并发子状态 有时组合状态有两个或者多个并发的子状态机,此时称组成状态的子状态为并发子状态。 顺序子状态与并发子状态的区别在于后者在同一层次给出两个或多个顺序子状态,对象处于同一层次中来自每个并发子状态的一个时序状态中。,8.3.7 历史状态 历史状态代表上次离开组成状态时的最后一个

9、活动子状态,它用一个包含字母“H”的小圆圈表示。 每当转换到组成状态的历史状态时,对象便恢复到上次离开该组成状态时的最后一个活动子状态,并执行入口动作,第8章 状态图,8.1 状态机 8.2 状态图 8.3 状态 8.4 事件 8.5 转换 8.6 状态图建模技术 8.7 实例,8.4 事件 事件表示在某一特定的时间或空间出现的能够引发状态改变的一种运动变化。 事件是一个激励的出现,它定义一个触发子以触发对象改变其状态,任何影响对象的事物都可以是事件。 事件种类: 入口事件 出口事件 动作事件 信号事件 调用事件 修改事件 时间事件 延迟事件,8.4.1 入口事件 入口事件表示一个入口的动作序

10、列,它在进入状态时执行。 入口事件的动作是原子的,并且先于人和内部活动或转换。 8.4.2 出口事件 出口事件表示一个出口的动作序列,它在退出状态时执行。 出口事件也是原子的,它跟在所有的内部活动之后,但是先于所有的出口转换。,8.4.3 动作事件 动作事件也称为“do事件”,它表示对一个嵌套状态机的调用。 与动作事件相关的活动必定引用嵌套状态机,而非引用包含它的对象的操作。 8.4.4 信号事件 信号的接收是信号接受对象的一个事件。 信号分为异步单路通信和双路通信。 在异步单路通信中,发送者是独立的。 在双路通信模型中,至少在每个方向上都要有一个信号。 在信号事件中,发送者和接受者可以是同一

11、个对象。,8.4.5 调用事件 调用事件是一个对象对调用的接收。 调用事件至少涉及两个以上的对象。 调用事件既可以为同步调用,也可以为异步调用。 8.4.6 修改事件 修改事件依靠特定属性值的布尔表达式所表示的条件的满足来触发状态的转换。 修改事件表示了一种具有时间持续性的并且可能是涉及全局的计算过程。 监护条件与修改事件的区别: 监护条件只是在引起转换的触发器事件触发时和事件接收者对事件进行处理时被赋值一次。 修改事件则可以被多次赋值直到条件为真,多次赋值满足条件后转换也会被激发。,8.4.7 时间事件 时间事件代表时间的流逝。 时间事件既可以被指定为绝对形式(天数),也可以被指定为相对形式

12、(从某一指定事件发生开始所经历的时间)。 时间事件可以描述一个通知信息,自进入状态以来某个时间期限已到,时间事件就会激发状态的转换 8.4.8 延迟事件 延迟事件是在本状态不处理,要推迟到另外一个状态才处理的事件。,第8章 状态图,8.1 状态机 8.2 状态图 8.3 状态 8.4 事件 8.5 转换 8.6 状态图建模技术 8.7 实例,8.5 转换 转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。 转换进入的状态为活动状态,转换离开的状态变为非活动状态。 转换种类: 外部转换、内部转换、完成转换、复合转

13、换。 转换组成: 源状态、目标状态、触发事件、监护条件、动作。,8.5.1 外部转换 外部转换是一种改变对象状态的转换,是最常见的一种转换。 外部转换用从源状态到目标状态的箭头表示。,8.5.2 内部转换 内部转换有一个源状态但是没有目标状态,它转换后的状态仍旧是它本身。 内部转换的激发规则和改变状态的外部转换的激发规则相同。 内部转换用于对不改变状态的插入动作建立模型。,8.5.3 完成转换 完成转换又称为自转换。 完成转换是因为没有标明触发器事件的转换是由状态中的活动的完成引起的,是自然而然地完成的转换。 完成转换也可以带一个监护条件,这个监护条件在状态中的活动完成时被赋值,而非活动完成后

14、被赋值。 内部转换和自转换(完成转换)不同: 自转换是离开本状态后重新进入该状态,它会激发状态的入口动作和出口动作的执行。 内部转换自始至终都不离开本状态,所以没有出口或入口事件,也就不执行入口和出口动作。,8.5.4 复合转换 复合转换由简单转换组成,这些简单转换通过分支判定、分叉或接合组合在一起。 除了两个分支的判定,还有多条件的分支判定。 多条件的分支判定有分为链式的和非链式的分支。,8.5.4 复合转换 链式分支:非链式分支:,8.5.5 触发事件 触发事件是能够引起状态转换的事件。 触发事件可以是信号、调用、时间段等。 8.5.6 监护条件 监护条件是触发转换必须满足的条件,它是一个

15、布尔表达式。 监护条件只能在触发事件发生时被赋值一次,如果在转换发生后监护条件才由假变为真,那么转换也不会被触发。 从一个状态引出的多个转换可以有同样的触发器事件,但是每个转换必须具有不同的监护条件。,8.5.7 动作 动作是一组可执行语句或者计算处理过程。 动作可以包括发送消息给另一个对象、操作调用、设置返回值、创建和销毁对象等。 动作是原子的,不可中断的,动作或动作序列的执行不会被同时发生的其他动作影响或终止。 整个系统可以在同一时间执行多个动作。 UML动作的种类: 赋值、调用、创建、销毁、返回、发送、中止。,第8章 状态图,8.1 状态机 8.2 状态图 8.3 状态 8.4 事件 8

16、.5 转换 8.6 状态图建模技术 8.7 实例,8.6 状态图建模技术 建模步骤: 找出适合用模型描述其行为的类。 确定对象可能存在的状态。 确定引起状态转换的事件。 确定转换进行时对象执行的相应动作。 对建模的结果进行相应的精化和细化。,8.7 实例图书馆管理系统的状态图 8.7.1 使用Rational Rose绘制状态图的步骤 创建状态图 Logic ViewNew Statechart Diagram,8.7.1 使用Rational Rose绘制状态图的步骤 增加状态 增加入口动作 On Entry 增加出口动作 On Exit 增加活动 Do,8.7.1 使用Rational Rose绘制状态图的步骤 增加历史状态,选中,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报