UML教程08_-_状态图.ppt
文本预览下载声明
第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 状态图 一个状态图表示一个状态机。 状态图表现从一个状态到另一个状态的控制流。 状态图由表示状态的节点和表示状态之间转换的带箭头的直线组成。 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 初始状态 初始状态代表状态图的起始位置,只能作为转换的源,而不能作为转换的目标。 初始状态在一个状态图中只允许有一个,它用一个实心的圆表示。 8.2.4 终止状态 终止状态是模型元素的最后状态,是一个状态图的终止点。 终止状态只能作为转换的目标,而不能作为转换的源。 终止状态在一个状态图中可以有多个,它用一个套有一个实心圆的空心圆表示。 8.2.5 判定 判定在状态图中的位置:工作流在此处按监护条件的取值而发生分支。 判定用空心小菱形表示。 8.2.5 判定 因为监护条件为布尔表达式,所以通常条件下的判定只有一个入转换和两个出转换。 根据监护条件的真假可以触发不同的分支转换。 8.3 状态 8.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 Action) 8.3.2 状态名 状态名表示状态的名字,通常用字符串表示。 一个状态的名称在状态图所在的上下文中应该是唯一的。不过,状态允许匿名。 状态的名字通常放在状态图标的顶部 8.3.3 内部转换 内部转换只有一个源状态而没有目标状态,因此转换激发的结果并不改变状态本身。 如果一个内部转换带有动作,动作也要被执行,但是由于没有状态改变发生,因此不需要执行入口和出口动作。 内部转换和自转换不同,虽然两者都不改变状态本身,但是自转换会激发入口动作和出口动作的执行,而内部转换却不会。 8.3.4 入口动作与出口动作 入口动作和出口动作表示进入或退出这个状态所要执行的动作。 入口动作用“entry/要执行的动作”表达,而出口动作用“exit/要执行的动作”表达。 8.3.5 简单状态 简单状态是指不包含其他状态的状态。 简单状态没有子结构,但它可以具有内部转换、入口动作和出口动作等。 8.3.6 组成状态 组成状态是可以包含一些嵌套的子状态的状态。 组成状态可以使用“与”关系分解为并发子状态,或者通过“或”关系分解为互相排斥的顺序子状态。 组成状态的一个入转换代表对其嵌套子状态区域内的初始状态的入转换;对嵌套子状态区域内的终结状态的转换代表包含它的终止状态的相应活动的完成。 8.3.6 组成状态 1. 顺序子状态 2. 并发子状态 1. 顺序子状态 如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。 当状态机通过转换从某种状态转入组成状态时,此转换的目的可能是这个组成状态本身,也可能是这个组成状态的子状态。 2. 并发子状态 有时组合状态有两个
显示全部