- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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章 状态图 8.1 状态机 8.2 状态图 8.3 状态 8.4 事件 8.5 转换 8.6 状态图建模技术 8.7 实例 8.2 状态图 一个状态图表示一个状态机,主要用于状态图表现从一个状态到另一个状态的控制流。 状态图由表示状态的节点和表示状态之间转换的带箭头的直线组成。 若干个状态由一条或者多条转换箭头连接,状态的转换由事件触发。 组成UML状态图的元素: 状态(State) 转换(Transition) 初始状态(Start State) 终结状态(End State) 判定(Decision) 8.2 状态图 8.2.1 状态 状态由一个带圆角的矩形表示。 状态图标可以分为三部分: 名称 内部转换 嵌套状态 状态有2种: 简单状态,不包含其它状态。 组合状态,包含子状态。 8.2.2 转换 转换用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。 转换可以标注与此转换相关的选项如事件、动作和监护条件 当源状态接收到一个事件,并且监护条件得到满足,则执行相应的动作,同时从源状态转换到目的状态。 如果转换上没有标触发转换的事件,则表示此转换为自动进行。 8.2.3 初始状态 初始状态代表状态图的起始位置,只能作为转换的源,而不能作为转换的目标。 初始状态在一个状态图中只允许有一个,它用一个实心的圆表示。 8.2.4 终止状态 终止状态是模型元素的最后状态,是一个状态图的终止点。 终止状态只能作为转换的目标,而不能作为转换的源。 终止状态在一个状态图中可以有多个,它用一个套有一个实心圆的空心圆表示。 8.2.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) 状态组成: 状态名(Name) 活动(Activity) 入口动作(Entry Action) 出口动作(Exit Action) 8.3.2 状态名 状态名表示状态的名字,通常用字符串表示。 一个状态的名称在状态图所在的上下文中应该是唯一的。不过,状态允许匿名。 状态的名字通常放在状态图标的顶部 8.3.3 内部转换 内部转换只有一个源状态而没有目标状态,因此转换激发的结果并不改变状态本身。 如果一个内部转换带有动作,动作也要被执行,但是由于没有状态改变发生,因此不需要执行入口和出口动作。 内部转换和自转换不同,虽然两者都不改变状态本身,但是自转换会激发入口动作和出口动作的执行,而内部转换却不会 8.3.4 入口动作与出口动作 入口动作和出口动作表示进入或退出这个状态所要执行的动作。 入口动作用“entry/要执行的动作”表达,而出口动作用“exit/要执行的动作”表达。 8.3.5 简单状态 简单状态是指不包含其他状态的状态。 简单状态没有子结构,但它可以具有内部转换、入口动作和出口动作等。 8.3
文档评论(0)