第8章状态图.ppt

上传人:本田雅阁 文档编号:3133902 上传时间:2019-07-15 格式:PPT 页数:55 大小:255.02KB
返回 下载 相关 举报
第8章状态图.ppt_第1页
第1页 / 共55页
第8章状态图.ppt_第2页
第2页 / 共55页
第8章状态图.ppt_第3页
第3页 / 共55页
第8章状态图.ppt_第4页
第4页 / 共55页
第8章状态图.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《第8章状态图.ppt》由会员分享,可在线阅读,更多相关《第8章状态图.ppt(55页珍藏版)》请在三一文库上搜索。

1、第8章 状态图,8.1 状态机 8.2 状态图 8.3 状态 8.4 事件 8.5 转换 8.6 状态图建模技术 8.7 实例图书馆管理系统的状态图,8.1 状态机,状态机是展示状态与状态转换的图。 状态机包含了一个类的对象在其生命期间所有状态的序列以及对象对接受到的事件所产生的反应。 利用状态机可以精确地描述对象的行为。,8.1 状态机,组成: 状态(State) 转换(Transition) 事件(Event) 活动(Activity) 动作(Action),8.2 状态图,一个状态图表示一个状态机。 状态图表现从一个状态到另一个状态的控制流。 状态图由表示状态的节点和表示状态之间转换的带

2、箭头的直线组成。,8.2 状态图,组成: 状态(State) 转换(Transition) 初始状态(Start State) 终结状态(End State) 判定(Decision),8.2 状态图,示意图:,8.2 状态图,8.2.1 状态 8.2.2 转换 8.2.3 初始状态 8.2.4 终止状态 8.2.5 判定,8.2.1 状态,状态由一个带圆角的矩形表示。 状态图标可以分为三部分: 名称 内部转换 嵌套状态,8.2.2 转换,转换用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。 转换可以标注与此转换相关的选项如事件、动作和监护条件。,8.2.3

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

4、.3.1 概述 8.3.2 状态名 8.3.3 内部转换 8.3.4 入口动作与出口动作 8.3.5 简单状态 8.3.6 组成状态 8.3.7 历史状态,8.3.1 概述,状态图中的状态一般是给定类对象中的一组属性值,这组属性值是对象所有属性的子集。 在对系统建模时,我们可以只关心那些明显影响对象行为的属性以及由他们表达的对象状态,而不用理睬那些于对象行为无关的状态。,8.3.1 概述,状态种类: 简单状态(Simple State) 组成状态(Composite State) 状态组成: 状态名(Name) 活动(Activity) 入口动作(Entry Action) 出口动作(Exit

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

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

7、对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。 当状态机通过转换从某种状态转入组成状态时,此转换的目的可能是这个组成状态本身,也可能是这个组成状态的子状态。,2. 并发子状态,有时组合状态有两个或者多个并发的子状态机,此时称组成状态的子状态为并发子状态。 顺序子状态与并发子状态的区别在于后者在同一层次给出两个或多个顺序子状态,对象处于同一层次中来自每个并发子状态的一个时序状态中。,8.3.7 历史状态,历史状态代表上次离开组成状态时的最后一个活动子状态,它用一个包含字母“H”的小圆圈表示。 每当转换到组成状态的历史状态时,对象

8、便恢复到上次离开该组成状态时的最后一个活动子状态,并执行入口动作。,8.4 事件,事件表示在某一特定的时间或空间出现的能够引发状态改变的一种运动变化。 事件是一个激励的出现,它定义一个触发子以触发对象改变其状态,任何影响对象的事物都可以是事件。,8.4 事件,事件种类: 入口事件 出口事件 动作事件 信号事件 调用事件 修改事件 时间事件 延迟事件,8.4.1 入口事件,入口事件表示一个入口的动作序列,它在进入状态时执行。 入口事件的动作是原子的,并且先于人和内部活动或转换。,8.4.2 出口事件,出口事件表示一个出口的动作序列,它在退出状态时执行。 出口事件也是原子的,它跟在所有的内部活动之

9、后,但是先于所有的出口转换。,8.4.3 动作事件,动作事件也称为“do事件”,它表示对一个嵌套状态机的调用。 与动作事件相关的活动必定引用嵌套状态机,而非引用包含它的对象的操作。,8.4.4 信号事件,信号的接收是信号接受对象的一个事件。 信号分为异步单路通信和双路通信。 在异步单路通信中,发送者是独立的。 在双路通信模型中,至少在每个方向上都要有一个信号。 在信号事件中,发送者和接受者可以是同一个对象。,8.4.5 调用事件,调用事件是一个对象对调用的接收。 调用事件至少涉及两个以上的对象。 调用事件既可以为同步调用,也可以为异步调用。,8.4.6 修改事件,修改事件依靠特定属性值的布尔表

10、达式所表示的条件的满足来触发状态的转换。 修改事件表示了一种具有时间持续性的并且可能是涉及全局的计算过程。,8.4.6 修改事件,监护条件与修改事件的区别: 监护条件只是在引起转换的触发器事件触发时和事件接收者对事件进行处理时被赋值一次。 修改事件则可以被多次赋值直到条件为真,多次赋值满足条件后转换也会被激发。,8.4.7 时间事件,时间事件代表时间的流逝。 时间事件既可以被指定为绝对形式(天数),也可以被指定为相对形式(从某一指定事件发生开始所经历的时间)。 时间事件可以描述一个通知信息,自进入状态以来某个时间期限已到,时间事件就会激发状态的转换,8.4.8 延迟事件,延迟事件是在本状态不处

11、理,要推迟到另外一个状态才处理的事件。,8.5 转换,转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。 转换进入的状态为活动状态,转换离开的状态变为非活动状态。,8.5 转换,8.5.1 外部转换 8.5.2 内部转换 8.5.3 完成转换 8.5.4 复合转换 8.5.5 触发事件 8.5.6 监护条件 8.5.7 动作,8.5 转换,转换种类: 外部转换 内部转换 完成转换 复合转换,8.5 转换,转换组成: 源状态 目标状态 触发事件 监护条件 动作,8.5.1 外部转换,外部转换是一种改变对象状态的转

12、换,是最常见的一种转换。 外部转换用从源状态到目标状态的箭头表示。,8.5.2 内部转换,内部转换有一个源状态但是没有目标状态,它转换后的状态仍旧是它本身。 内部转换的激发规则和改变状态的外部转换的激发规则相同。 内部转换用于对不改变状态的插入动作建立模型。,8.5.2 内部转换,内部转换和自转换(完成转换)不同: 自转换是离开本状态后重新进入该状态,它会激发状态的入口动作和出口动作的执行。 内部转换自始至终都不离开本状态,所以没有出口或入口事件,也就不执行入口和出口动作。,8.5.3 完成转换,完成转换又称为自转换。 完成转换是因为没有标明触发器事件的转换是由状态中的活动的完成引起的,是自然

13、而然地完成的转换。 完成转换也可以带一个监护条件,这个监护条件在状态中的活动完成时被赋值,而非活动完成后被赋值。,8.5.4 复合转换,复合转换由简单转换组成,这些简单转换通过分支判定、分叉或接合组合在一起。 除了两个分支的判定,还有多条件的分支判定。 多条件的分支判定有分为链式的和非链式的分支。,8.5.4 复合转换,链式分支: 非链式分支:,8.5.5 触发事件,触发事件是能够引起状态转换的事件。 触发事件可以是信号、调用、时间段等。,8.5.6 监护条件,监护条件是触发转换必须满足的条件,它是一个布尔表达式。 监护条件只能在触发事件发生时被赋值一次,如果在转换发生后监护条件才由假变为真,

14、那么转换也不会被触发。 从一个状态引出的多个转换可以有同样的触发器事件,但是每个转换必须具有不同的监护条件。,8.5.7 动作,动作是一组可执行语句或者计算处理过程。 动作可以包括发送消息给另一个对象、操作调用、设置返回值、创建和销毁对象等。 动作是原子的,不可中断的,动作或动作序列的执行不会被同时发生的其他动作影响或终止。 整个系统可以在同一时间执行多个动作。,8.6 状态图建模技术,建模步骤: 找出适合用模型描述其行为的类。 确定对象可能存在的状态。 确定引起状态转换的事件。 确定转换进行时对象执行的相应动作。 对建模的结果进行相应的精化和细化。,8.7 实例图书馆管理系统的状态图,8.7.1 使用Rational Rose绘制状态图的步骤 8.7.2 图书馆管理系统的状态图,8.7.1 使用Rational Rose绘制状态图的步骤,1. 创建状态图 2. 状态图工具栏按钮简介 3. 加入初始状态和终止状态 4. 增加状态 5. 增加转换 6. 增加历史状态,8.7.2 图书馆管理系统的状态图,1. 书的状态图 2. 借阅凭证的状态图,1. 书的状态图,2. 借阅凭证的状态图,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1