《UML面向对象建模基础》_第1页
《UML面向对象建模基础》_第2页
《UML面向对象建模基础》_第3页
《UML面向对象建模基础》_第4页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、状态和状态机状态和状态机如何阅读状态机图如何阅读状态机图如何绘制状态机图如何绘制状态机图状态机图应用说明状态机图应用说明本章小结本章小结状态和状态机状态和状态机如何阅读状态机图如何阅读状态机图如何绘制状态机图如何绘制状态机图状态机图应用说明状态机图应用说明本章小结本章小结状态是指在对象生命周期中满足某些条件、执行某些活状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况动或等待某些事件的一个条件和状况 一个状态通常包括名称、进入一个状态通常包括名称、进入/退出活动、内部转换、子退出活动、内部转换、子状态和延迟事件等五个部分组成状态和延迟事件等五个部分组成状态机是计算

2、机科学理论的一部分,但状态机是计算机科学理论的一部分,但UML中的状态中的状态机模型主要是基于机模型主要是基于David Harel所做的扩展,是用来展示所做的扩展,是用来展示状态与状态之间转换的图状态与状态之间转换的图 状态和状态机状态和状态机如何阅读状态机图如何阅读状态机图如何绘制状态机图如何绘制状态机图状态机图应用说明状态机图应用说明本章小结本章小结最为核心的元素无外乎是两个:一个是用圆角矩形表示最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转

3、换包含一些文字描述的有向箭头线,这些箭头线称为转换源状态:即受转换影响的状态源状态:即受转换影响的状态目标状态:当转换完成后对象的状态目标状态:当转换完成后对象的状态 触发事件:用来为转换定义一个事件,包括调用、改变、触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件信号、时间四类事件监护条件:布尔表达式,决定是否激活转换、监护条件:布尔表达式,决定是否激活转换、动作:转换激活时的操作动作:转换激活时的操作与状态与状态off相关的转换有两个,其触发事件都是相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件只不过其监护条件不同。如果对象收到事件

4、turnOn,那,那么将判断壶中是否有水;如果么将判断壶中是否有水;如果没水没水,则仍然处于,则仍然处于off状状态;如果态;如果有水有水则转为则转为on状态,并执行状态,并执行“烧水烧水”动作动作而与状态而与状态on相关的转换也有两个,如果相关的转换也有两个,如果“水开了水开了”就执就执行行turnOff,关掉开关;如果烧坏了,就进入了终态了,关掉开关;如果烧坏了,就进入了终态了 转换类型描述语法外部转换 对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作,如果离开或进入状态将引发进入转换、离开转换事件(参数)监护条件/动作内部转换 对事件做出响应,并执行一个特定的活动,但并不引起

5、状态变化或进入转换、离开转换事件(参数)监护条件/动作进入转换 当进入某一状态时,执行相应活动entry/活动退出转换 当离开某一状态时,执行相应活动exit/活动进入和退出转换:当进入一个状态时,执行某个动作;进入和退出转换:当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使用或当退出某个状态时,执行什么动作。这时就可以使用进入和退出转换来表示进入和退出转换来表示内部转换:用来处理一些不离开该状态的事件内部转换:用来处理一些不离开该状态的事件 活动:当对象处于一个状态时,它一般是空闲的,在等活动:当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。但是某些

6、时间,你可能希望描述个待一个事件的发生。但是某些时间,你可能希望描述个正在进行的活动。在处于一个状态的同时,对象做着某正在进行的活动。在处于一个状态的同时,对象做着某些工作,并一直继续到被某个事件中断些工作,并一直继续到被某个事件中断延迟事件:延迟事件是一种特殊的事件,它是指该事件延迟事件:延迟事件是一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不会丢不会触发状态的转换,当对象处于该状态时事件不会丢失,但会被延迟执行。例如,当失,但会被延迟执行。例如,当E-mail程序中正在发送程序中正在发送第一封邮件时,用户下达发送第二封邮件执令就会被延第一封邮件时,用户下达发送第二

7、封邮件执令就会被延迟,但第一封邮件发送完成后,这封邮件就会被发送。迟,但第一封邮件发送完成后,这封邮件就会被发送。这种事件就属于延迟事件这种事件就属于延迟事件“一个圆圈中加上字母一个圆圈中加上字母H”,用来表示历史状态的。它的,用来表示历史状态的。它的含义是:当从状态含义是:当从状态“结账结账”和和“显示购物车显示购物车”返回子状返回子状态态“显示索引信息显示索引信息”时,将进入的是离开时的历史状态。时,将进入的是离开时的历史状态。也就是说,转到购物也就是说,转到购物车或结账区之后,车或结账区之后,再回到再回到“浏览目录浏览目录”的的页面时,其中的内容页面时,其中的内容是不变的,仍然保留是不变

8、的,仍然保留原来的信息。原来的信息。 将子状态机单独定义,并对其进行命名(通常以大写字将子状态机单独定义,并对其进行命名(通常以大写字母开头),然后在需要使用的地方来引用它母开头),然后在需要使用的地方来引用它 状态和状态机状态和状态机如何阅读状态机图如何阅读状态机图如何绘制状态机图如何绘制状态机图状态机图应用说明状态机图应用说明本章小结本章小结绘制状态机图的理想步骤是:寻找主要的状态,确定状绘制状态机图的理想步骤是:寻找主要的状态,确定状态之间的转换,细化状态内的活动与转换,用复合状态态之间的转换,细化状态内的活动与转换,用复合状态来展开细节来展开细节寻找主要状态:对于航班机票预订系统而言,

9、显然包括寻找主要状态:对于航班机票预订系统而言,显然包括的状态主要有的状态主要有 - 在刚确定飞机计划时,显然是没有任何预订的,并在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种且在有人预订机票之前都将处于这种“无预订无预订”状态状态 - 对订座而言显然有对订座而言显然有“部分预订部分预订”和和“预订完预订完”两种两种状态状态 - 而当航班快要起飞时,显然要而当航班快要起飞时,显然要“预订关闭预订关闭”总结一下,主要有四种状态:无预订、部分预订、预订总结一下,主要有四种状态:无预订、部分预订、预订完以及预订关闭完以及预订关闭 确定状态间转换确定状态间转换源目标无预订

10、部分预订预订完预订关闭无预订预订()不直接转换关闭()部分预订退订(),使预订人=0预订(),无空座关闭()预订完不直接转换退订()关闭()预订关闭无转换无转换无转换细化状态内的活动与转换细化状态内的活动与转换使用复合状态使用复合状态状态和状态机状态和状态机如何阅读状态机图如何阅读状态机图如何绘制状态机图如何绘制状态机图状态机图应用说明状态机图应用说明本章小结本章小结对对象生命周期建模:主要描述对象能够响应的事件、对对象生命周期建模:主要描述对象能够响应的事件、对这些事件的响以及过去对当前行为的影响对这些事件的响以及过去对当前行为的影响 对反应型对象建模:这个对象可能处于的稳定状态、从对反应型

11、对象建模:这个对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,以一个状态到另一个状态之间的转换所需的触发事件,以及每个状态改变时发生的动作及每个状态改变时发生的动作 状态机图既可以用来表示一个业务领域的知识,也可以状态机图既可以用来表示一个业务领域的知识,也可以用来描述设计阶段对象的状态变迁用来描述设计阶段对象的状态变迁状态和状态机状态和状态机如何阅读状态机图如何阅读状态机图如何绘制状态机图如何绘制状态机图状态机图应用说明状态机图应用说明本章小结本章小结首先介绍了首先介绍了“状态状态”的概念和的概念和UML表示法,然后引入表示法,然后引入了状态机的概念了状态机的概念 通过三个例子逐一说明简单状态机图、包含复杂转换的通过三个例子逐一说明简单状态机图、包含复杂转换的状态机图以及包含复合状态的状态机图的阅读方法状态机图以及包含复合状态的状态机图的阅读方法,紧接着通过一个航班机票预订系统来阐述了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论