已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章状态图和活动图 面向对象分析与设计 UML 2 8 1什么是状态图 UML中的状态图 Statechartdiagram 用于描述一个对象在其生存周期间的动态行为 表现一个对象所经历的状态序列 引起状态转移的事件 event 以及因状态转移而伴随的动作 action 状态图在检查 调试和描述类的动态行为时非常有用 面向对象分析与设计 UML 3 8 1什么是状态图 在状态图中 动作可以与状态有关 也可以与转移有关 与状态有关时 对象进行某状态时触发某一动作 与转移有关时 对象在不同状态间转移时 触发相应动作 面向对象分析与设计 UML 4 8 1什么是状态图 属性拥有较少的可能取值属性在这些值之间的转移有一定的限制 状态图描述的对象往往有多个属性 应该在具有如下特性的属性上建模 如 类SellableItem中有2个属性 salePrice和status 其中 salePrice类型为Money 取值范围为正实数 status类型为枚举 Received InInspection Accepted Rejected 则应根据属性status建立状态图 面向对象分析与设计 UML 5 8 2状态图的基本概念 状态 state组合状态 compositestate子状态 substate历史状态 historystate转移 transition事件 event动作 action 面向对象分析与设计 UML 6 8 2 1状态 状态是在对象的生命期中的某外条件或状况 在此期间对象将满足某些条件 执行某些活动或等待某些事件 状态的组成部分 状态名 进入 退出动作 内部转移 子状态 延迟事件 状态的类型 初态 终态 中间状态 组合状态 历史状态等 初态 终态 中间状态 面向对象分析与设计 UML 7 8 2 1状态 面向对象分析与设计 UML 8 8 2 2组合状态和子状态 嵌套在另一个状态中的状态称为子状态 包含子状态的状态称为组合状态 组合状态 子状态 子状态也可以有初态和终态 面向对象分析与设计 UML 9 8 2 2组合状态和子状态 子状态之间的or关系 任意时刻只能到达一个子状态 面向对象分析与设计 UML 10 8 2 2组合状态和子状态 子状态之间的and关系 组合状态中某时刻可以同时到达多个子状态 面向对象分析与设计 UML 11 8 2 3历史状态 历史状态是伪状态 其目的是记住从组合状态中退出时所处的子状态 当再次进入组合状态时 可以直接进入这个子状态 而不是再从组合状态的初态开始 浅 shallow 历史状态 只记住最外层组合状态的历史 深 deep 历史状态 可以记住任意深度的组合状态的历史 面向对象分析与设计 UML 12 8 2 3历史状态 面向对象分析与设计 UML 13 8 2 4转移 转移是两介状态之间的一种关系 表示对象将在第一个状态执行一定的动作 并在某个特定事件发生且满足某个特定的警戒条件时进入第二个状态 转移的格式 event name parameters guard condition action 例如 targetAt p isThreat t addTarget p 面向对象分析与设计 UML 14 8 2 4转移 对于一个给定的状态 最终只能产生一个转移 因此从一个状态出发的几个转移之间应该是互斥的 包括 事件不同 事件相同但警戒条件互斥 面向对象分析与设计 UML 15 8 2 5事件 事件是对一个在时间和空间上占有一定位置的有意义的事情的详细说明 1 调用事件 表示对操作的调用 问题 调用谁的操作 面向对象分析与设计 UML 16 8 2 5事件 2 变化事件 表示某布尔表达式值变化 引起的事件 注意 变化事件与警戒条件区别 面向对象分析与设计 UML 17 8 2 5事件 3 时间事件 表示满足某一时间表达式 引起的事件 4 信号事件 表示对象接收到某信号的事件 信号是对象之间异步发送 接收的 它们之间可以形成泛化关系 信号事件与调用事件类似 是异步和同步的区别 面向对象分析与设计 UML 18 8 2 6动作 动作是一个可执行的原子计算 UML中没有规定动作的具体语法形式 采用程序设计的语言语法即可 两种特殊动作 进入动作 entry action expression退出动作 exit action expression 面向对象分析与设计 UML 19 面向对象分析与设计 UML 20 状态和状态机 状态是指在对象生命周期中满足某些条件 执行某些活动或等待某些事件的一个条件和状况一个状态通常包括名称 进入 退出活动 内部转换 子状态和延迟事件等五个部分组成状态机是计算机科学理论的一部分 但UML中的状态机模型主要是基于DavidHarel所做的扩展 是用来展示状态与状态之间转换的图 面向对象分析与设计 UML 21 如何阅读状态机图 阅读最简单的状态 最为核心的元素无外乎是两个 一个是用圆角矩形表示的状态 初态和终态例外 另一个则是在状态之间的 包含一些文字描述的有向箭头线 这些箭头线称为转换 面向对象分析与设计 UML 22 转换的五要素 源状态 即受转换影响的状态目标状态 当转换完成后对象的状态触发事件 用来为转换定义一个事件 包括调用 改变 信号 时间四类事件监护条件 布尔表达式 决定是否激活转换动作 转换激活时的操作 面向对象分析与设计 UML 23 与状态off相关的转换有两个 其触发事件都是turnOn 只不过其监护条件不同 如果对象收到事件turnOn 那么将判断壶中是否有水 如果 没水 则仍然处于off状态 如果 有水 则转为on状态 并执行 烧水 动作 而与状态on相关的转换也有两个 如果 水开了 就执行turnOff 关掉开关 如果烧坏了 就进入了终态了 面向对象分析与设计 UML 24 面向对象分析与设计 UML 25 只有动作描述 进入和退出和操作方法写在了里面 面向对象分析与设计 UML 26 各种转换的区别 进入和退出转换 当进入一个状态时 执行某个动作 或当退出某个状态时 执行什么动作 这时就可以使用进入和退出转换来表示内部转换 用来处理一些不离开该状态的事件 面向对象分析与设计 UML 27 活动与延迟事件 活动 当对象处于一个状态时 它一般是空闲的 在等待一个事件的发生 但是某些时间 你可能希望描述个正在进行的活动 在处于一个状态的同时 对象做着某些工作 并一直继续到被某个事件中断延迟事件 延迟事件是一种特殊的事件 它是指该事件不会触发状态的转换 当对象处于该状态时事件不会丢失 但会被延迟执行 例如 当E mail程序中正在发送第一封邮件时 用户下达发送第二封邮件执令就会被延迟 但第一封邮件发送完成后 这封邮件就会被发送 这种事件就属于延迟事件 面向对象分析与设计 UML 28 复合状态表示法 面向对象分析与设计 UML 29 顺序复合状态图 面向对象分析与设计 UML 30 并发复合状态图 三种评测方式 面向对象分析与设计 UML 31 历史 一个圆圈中加上字母H 是用来表示历史状态的 它的含义是 当从状态 结账 和 显示购物车 返回子状态 显示索引信息 时 将进入的是离开时的历史状态 也就是说 转到购物车或结账区之后 再回到 浏览目录 的页面时 其中的内容是不变的 仍然保留原来的信息 面向对象分析与设计 UML 32 子状态机 将子状态机单独定义 并对其进行命名 通常以大写字母开头 然后在需要使用的地方来引用它 面向对象分析与设计 UML 33 绘制状态机图 绘制状态机图的理想步骤是 寻找主要的状态 确定状态之间的转换 细化状态内的活动与转换 用复合状态来展开细节航班机票预订系统寻找主要状态 对于航班机票预订系统而言 显然包括的状态主要有 在刚确定飞机计划时 显然是没有任何预订的 并且在有人预订机票之前都将处于这种 无预订 状态 对订座而言显然有 部分预订 和 预订完 两种状态 而当航班快要起飞时 显然要 预订关闭 面向对象分析与设计 UML 34 主要有四种状态 无预订 部分预订 预订完以及预订关闭确定状态间转换 面向对象分析与设计 UML 35 面向对象分析与设计 UML 36 细化状态内的活动与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60335-2-54:2022/AMD1:2025 FR Amendment 1 - Household and similar electrical appliances - Safety - Part 2-54: Particular requirements for surface-cleaning appliances for
- 【正版授权】 ISO 19630:2025 EN Fine ceramics (advanced ceramics,advanced technical ceramics) - Methods of test for reinforcements - Determination of tensile properties of filaments at a
- 冷藏柜购销合同范本
- 内部孵化项目协议书
- 河北省尚义县人民政府招聘工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 江西吉安井冈山市展览馆接待员和讲解员招考(4人)易考易错模拟试题(共500题)试卷后附参考答案
- 柑橘种植托管协议书
- 养老用钱协议书范本
- 校园维修委托协议书
- 无锡市惠山经济发展总公司招考6名工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 2021年上海卷高考语文作文解析与范文展示
- 茶百道选址策略分析报告
- 浙江省杭州市西湖区2023-2024学年七年级上学期期末数学试卷(含答案)
- 德州扑克大赛策划方案
- 新版药品批发企业质量管理体系文件大全
- 公司内外部环境风险与机遇评价表
- 近距离放射治疗-后装治疗课件
- 地质勘察报告
- 足浴保健经营技术规范
- 医学影像学教学课件:泌尿系统阅片
- SAP系统切换策略及系统并行
评论
0/150
提交评论