第08章 状态图与活动图.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象分析与设计UML 第8章 状态图和活动图 8.1 什么是状态图 8.1 什么是状态图 8.1 什么是状态图 属性拥有较少的可能取值 属性在这些值之间的转移有一定的限制 8.2 状态图的基本概念 状态, state 组合状态, composite state 子状态, sub state 历史状态, history state 转移, transition 事件, event 动作, action 8.2.1 状态 8.2.1 状态 8.2.2 组合状态和子状态 8.2.2 组合状态和子状态 8.2.2 组合状态和子状态 8.2.3 历史状态 8.2.3 历史状态 8.2.4 转移 8.2.4 转移 8.2.5 事件 8.2.5 事件 8.2.5 事件 8.2.6 动作 状态和状态机 状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况? ? 一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成 ?状态机是计算机科学理论的一部分,但UML中的状态机模型主要是基于David Harel所做的扩展,是用来展示状态与状态之间转换的图 ? 如何阅读状态机图 阅读最简单的状态? 最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换 转换的五要素 源状态:即受转换影响的状态 目标状态:当转换完成后对象的状态 ?触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件 ?监护条件:布尔表达式,决定是否激活转换 ?动作:转换激活时的操作 与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,那么将判断壶中是否有水;如果[没水],则仍然处于off状态;如果[有水]则转为on状态,并执行“烧水”动作。 ??? 而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了? 各种转换的区别 ??进入和退出转换:当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使用进入和退出转换来表示 内部转换:用来处理一些不离开该状态的事件 活动与延迟事件 ?活动:当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。但是某些时间,你可能希望描述个正在进行的活动。在处于一个状态的同时,对象做着某些工作,并一直继续到被某个事件中断 ??? 延迟事件:延迟事件是一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不会丢失,但会被延迟执行。例如,当E-mail程序中正在发送第一封邮件时,用户下达发送第二封邮件执令就会被延迟,但第一封邮件发送完成后,这封邮件就会被发送。这种事件就属于延迟事件 复合状态表示法 顺序复合状态图 历史 “一个圆圈中加上字母H”,是用来表示历史状态的。 ??? 它的含义是:当从状态“结账”和“显示购物车”返回子状态“显示索引信息”时,将进入的是离开时的历史状态。也就是说,转到购物车或结账区之后,再回到“浏览目录”的页面时,其中的内容是不变的,仍然保留原来的信息 子状态机 将子状态机单独定义,并对其进行命名(通常以大写字母开头),然后在需要使用的地方来引用它 绘制状态机图 绘制状态机图的理想步骤是:寻找主要的状态,确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节 航班机票预订系统 寻找主要状态:对于航班机票预订系统而言,显然包括的状态主要有 -- 在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态 ??-- 对订座而言显然有“部分预订”和“预订完”两种状态? ??-- 而当航班快要起飞时,显然要“预订关闭” 主要有四种状态:无预订、部分预订、预订完以及预订关闭 确定状态间转换 细化状态内的活动与转换/使用复合状态 状态机图应用说明 对对象生命周期建模:主要描述对象能够响应的事件、对这些事件的响以及过去对当前行为的影响 ?对反应型对象建模:这个对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,以及每个状态改变时发生的动作? ??? 状态机图既可以用来表示一个业务领域的知识,也可以用来描述设计阶段对象的状态变迁 * UML中的状态图(Statechart diagram)用于描述一个对象在其生存周期间的动态行为, 表现一个对象所经历的状态序列, 引起状态转移的事件(event), 以及因状态转移而伴随的动作(action). 状态图在检查、调试和描述类的动态行为时非常有用. 起始状态 终止状态 状态 事件

文档评论(0)

0520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档