第10章 状态机图[课堂课资]
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精制知识
2
2
为什么要建模状态机图
• 对象可能会有不同的状态,某些行为依赖于这些状 态。例如,按下开关按钮时,电灯将改变当前的状 态(由关变开或由开变关),因此: – 需要记录对象当前的状态 – 发生了某种事件才会引起状态间的转移 – 由一个状态转到另一个状态的过程通常通过方法 调用实现
• 状态机图通常作为对类图的补充
– 初始状态 • 初始状态代表状态机图的起始位置,只能作为转换的源,而不 能作为转换的目标。初始状态在一个状态机图中只允许有一个, 它用一个实心的圆表示。
– 终止状态 – 终止状态是对象的最后状态,是一个状态机图的终止点。终止状
态只能作为转换的目标,而不能作为转换的源。终止状态在一个 状态机图中可以有多个,它用一个套有一个实心圆的空心圆表示。
精制知识
5
状态机图的概念
• 状态机图的作用
– 状态机图常用来描述业务或软件系统中的对象在外部事 件的作用下,对象的状态从一个状态到另一个状态的控
制流。利用状态机图可以精确地描述对象在生命周期内 的行为特征。
• 状态机图的组成元素
– 状态机图的组成元素包括:初始状态、终止状态、状态、 转换。其中,转换将各种状态连接在一起,构成一个状 态机图。
• 状态机
– 在整个生命周期内,描述对象处于各种状态的图,该图
必须完整包括:初始状态、终止状态、状态、转换。状
态机图不一定完整包含初始状态、终止状态、状态、转
换等状态 。
精制知识
6
状态机图的基本符号
精制知识
7
状态机图的表示
• 一个状态机图包含的元素有初始状态、终止状态、状态、转换、分支。 • 状态的表示
个相对的概念,即,相对当前状态而言,它的前一个状态就是源状态。 • 2.目标状态 • 转换完成后,对象所处的状态就是目标状态 。当前状态相对它的前一
个状态而言,当前状态就是目标状态。源状态和目标状态都是相对某 个转换而言的。
精制知识
13
状态机图的表示
• 3.事件
• 事件就是外部作用于一个对象,能够触发对象状态改变的一种现象。
• 3).改变事件
• 指某个指定属性值为真时,事件得到触发。与监护条件不同,在对象生 命周期内,一直在计算改变事件中的属性值,事件触发,计算停止。
• 4).时间事件
• 当时间流逝到某个时刻,触发事件对对象起作用。例如,after (12:00)),after(2seconds)),when(12:00)。
• 5).延迟事件
• 指对象处在在本状态时外部事件产生了,但没有执行事件,要推迟到另
外一个状态才执行的事件。 精制知识
14
状态机图的表示
• 4.监护条件 • 监护条件是一个布尔表达式,当布尔表达式的值为真时,转换才能够
完成。只有在触发事件发生时,才计算一次监护条件的值,当监护条 件的值为真时,转换才发生。如果转换发生后,监护条件才由假变为 真,那么转换也不会被触发。
精制知识
3
状态机图:电梯 状态机图主要显示以下3种内容: 对象在生命周期中所经历的状态 序列; 诱发对象从一个状态转移到另一 个状态的事件; 状态改变所导致的动作。
精制知识
4
状态机图的概念
• 状态机图描述对象在整个生命周期内,在外部事 件的作用下,从一种状态转换到另一种状态的关 系图。这种图的节点是状态(包括初始状态和终止 状态),关系是转换。
• 1).信号事件
• 对象之间通过发送信号和接收信号实现通信。信号是一种异步机制。对 于一个信号而言,对象一般都有相应的事件处理器,如onMouseClick()。
• 2).调用事件
• 调用某个对象的成员方法就是调用事件,它是一种同步的机制。例如 turnOn是一种调用事件,用来将开关置于“On”状态。
烧水器的状态机图
精制知识
11
转换的五要素
• 源状态:即受转换影响的状态 • 目标状态:当转换完成后对象的状态 • 触发事件:用来为转换定义一个事件,包括调用、改变、
信号、时间四类事件
• 监护条件:布尔表达式,决定是否激活转换、 • 动作:转换激活时的操作
精制知识
12
状态机图的表示
• 1.源状态 • 对于一个转换来说,转换前对象所处的状态,就是源状态。源状态是
LOGO
《UML 统一建模》
第10章 状态机图
1
精制知识
对象和状态
• 对象是某个状态下的对象,而状态则是描述 当前对象。所有的对象均有状态,状态可改 变
• 下面一些例子说明了对象和状态 – (1)支票(对象)已付(状态) – (2)汽车(对象)已启动(状态) – (3)小王(对象)睡着了(状态) – (4)小红(对象)未婚(状态)
退出动作, 当离开该状态 时执行该动作.
延迟响应事件, 在该状态出现该事件时, 不在本 状态响应,而是延迟到其他状Fra Baidu bibliotek响应.
精制知识
10
状态机图的表示
• 转换的表示 • 转换是指对象在外部事件的作用下,当满足特定的条件时,对象执行
一定的动作,进入目标状态。转换用带箭头的直线表示,箭尾连接源 状态(转出的状态),箭头连接目标状态(转入的状态)。 • 转换关系到的内容包括:源状态、目标状态、外部事件、监护条件和 执行的动作。下图描述了烧水器的状态机图。 • 注意:用实线箭头表示的转换都是外部转换。
精制知识
15
状态机图的表示
• 5.动作 • 当转换被激活后,如果定义了相应的动作,那么就将执行这个动作。动
作可以是一个赋值语句、简单的算术运算、发送信号、调用操作、创建 和销毁对象、读取和设置属性的值,甚至是一个包含多个动作的活动。 例如,当turnOn事件发生,就测试监护条件[有水],如果有水,就会执 行“烧水”的动作。 • 动作分为入口动作和出口动作。 • 1).入口动作 • 入口动作表示对象进入某个状态所要执行的动作。入口动作用“entry/ 要执行的动作”表示。 • 2). 出口动作 • 出口动作表示对象退出某个状态所要执行的动作。出口动作用“exit/要 执行的动作”表示。
精制知识
8
状态机图的表示
• 状态 – 对象属性值的集合标识了一个对象的状态。表示对象状态的图标 由一个带圆角的矩形表示。它包含三部分:
• 名称:给对象所处状态取的名字,名字用一个字符串表示,在一 个图中,名字应该是唯一的。
• 内部转换:对象响应外部事件所执行的动作。内部转换发生时, 不改变对象的状态,但是,当进入该状态时,可以包含进入动作; 当退出该状态时,可以包含退出动作。
• 嵌套状态 :状态机图中的状态可以包含两种状态:一种是简单状 态,简单状态不包含其它状态;一种是组合状态,组合状态包含 了子状态。即状态机图的某些状态本身也是状态机图。
精制知识
9
状态机图的表示
状态名
入口动作, 进入该状 态时执行该动作.
动作,处于该状态 时执行的动作.
内部转换,该状态中出现 特定事件时执行的动作.