状态图有例题.ppt_第1页
状态图有例题.ppt_第2页
状态图有例题.ppt_第3页
状态图有例题.ppt_第4页
状态图有例题.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

模型 模型表示系统静态和动态的行为 这种表示形式可为同一系统提供不同的视角 静态模型 动态模型 系统结构方面 系统的过程和行为的集合 操作和维护模型比操作和维护实际系统容易得多 使用户和开发人员都能更容易地理解构思中的系统 可助于解释状态的改变和降低复杂度 可监视构思中的系统是否存在任何类型的缺陷 动态模型的优越性 动态模型的优越性 动态模型描述系统与操作时间和顺序有关的系统方面 影响更改的事件 事件的序列 事件的环境以及事件的组织 动态模型的组件 状态图 顺序图 活动图 协作图 动态模型的组件 动态模型的组件 动态模型的组件 状态1 状态2 初始状态 如果无效 则重复状态 1 如果有效 则转换状态2 最终状态 状态图 状态图描述了单个事物如何为响应发生的事件而更改状态和生成响应 并通过此方式与其环境进行交互 浸泡 洗涤 漂洗 脱水 washclothes washingmachineuser 动态模型的组件 状态图 动态模型的组件 顺序图 顺序图用于按时间顺序模拟控制流程 显示了在对象生命线上各点之间的对象传递的消息 演示了在时间序列中对象之间的交互 顺序图 表达一组对象以及这些对象发出与接受消息 重点在消息的时间顺序上 8 洗衣机 进水管 洗涤缸 排水管 顺序图 动态模型的组件 洗衣机工作过程1 通过进水管向洗涤缸注水 2 洗涤缸保持5分钟静止状态3 水注满 停止注水 4 洗涤缸往返旋转15分钟 5 通过排水管排掉洗涤后的脏水 6 重新开始注水 7 洗涤缸继续往返旋转洗涤8 停止向洗涤缸中注水 9 通过排水管排掉漂洗衣物的水 10 洗涤缸加速单方向旋转5分钟 11 洗涤缸停止旋转 洗衣过程结束 9 动态模型的组件 顺序图 洗衣过程 10 进水管 洗涤缸 排水管 注入新水 保持静止 停止注水 往返旋转 排掉洗涤后的脏水 注入新水 往返旋转 排掉漂洗过的水 单向旋转 停止转动 停止注水 浸泡状态 洗涤状态 漂洗状态 脱水状态 协作图 动态模型的组件 协作图将对象组织在一定的结构之下 通过消息在对象之间传递与协作来完成某项功能 其重点在于演示或检测对象间的协作 协作图 表达一组对象 对象之间的连接 以及对象发出和接受的消息 重点在对象的结构组织方面 12 内部计时器 洗涤缸 进水管 1 停止注水 2 往返旋转 客户 提供者实现模式 洗涤缸 进水管 协作图 动态模型的组件 活动图 动态模型的组件6 活动图显示活动与活动之间的流程 活动是状态机中当前执行的活动 由系统的操作而组成 操作活动1 操作活动2 操作活动3 操作活动4 洗涤缸往返旋转15分钟 排掉脏水 重新入新水注 14 第三章状态图 statediagram 状态图是系统分析的一种常见工具 用于描述系统或单独对象的外部可见行为 uml中的状态图主要用于建立类或对象的动态行为模型 表现一个对象所经历的状态序列 引起状态或活动转移的事件 以及因状态或活动的转移而伴随的动作 状态图 实体的生存期比较复杂时 需要状态图对类的所有实例的生命周期建模 大多数面向商业的应用中的类不需要状态图以下情况经常使用状态图动态模型中产生或接收大量信息的类界面类实时系统中的类 状态图 状态图 18 实时系统中的类 闲置状态 拨号状态 通话状态 拿起听筒拨号 线路拨通 挂断电话 电话机 电话线状态图平p77图5 8p82图5 17 19 第三章主要内容 1 状态机2 状态3 事件4 转移5 组合状态6 状态图的应用 21 3 1状态机 1 uml用状态机对系统的动态特征建模 状态机表示一个模型元素在其生命期间的情况 从该模型元素的开始状态起 响应事件 执行某些动作 引起转移到新状态 在新状态下响应事件 执行动作 引起转移到另一个状态 如此继续 直到终结状态 状态机的组成 状态 转移 事件 活动 动作等 22 3 1状态机 2 状态机用于对一个模型元素建立行为模型 一个对象类 一个子系统 整个系统 在uml中状态机用状态图可视化表示 状态图 状态的节点 转移的弧 事件等组成 源状态 目标状态 事件 23 3 2状态state 状态 对象全部属性的当前值 状态属性 对确定对象的状态有重要意义的属性 状态属性一般具有少量的值 而且这些属性的值的转换是有限的 并且其属性值反映所属对象的特定状态 在uml中 对一个对象 模型元素 的行为建模时 所选择的该对象的生存期中的状态数量是有限的 对象处于每个状态的持续时间也是有限的 当发生某个事件或完成某个动作 都会触发状态的转移 24 3 2 1状态图标 状态图标 状态节点 一个状态可以加入信息 活动activity动作action事件event效应effectentry exit statement entry actiondo activityevent effect 在某个时间内系统处于某一状态下发生的 do 将要发生的动作p805 13 当系统发生特定的迁移 进入或退出特定状态下发生的瞬时行为p805 15 为响应事件而执行的行为p795 12 25 3 2 2状态行为 1 进入操作 entry 系统进入该状态时要发生的动作 前面加上entry和 不可中断 活动 do 系统处于该状态时要发生的活动 前面加上do和 活动是可中断行为 可以在对象处于该状态时运行完毕 也可以在对象转入另一状态时中断 航班预定entry 将时刻表发布到internet 航班取消do 为客户寻找其它航班 26 3 2 2状态行为 2 退出操作 exit 系统离开该状态时要发生的动作 前面加上exit和 不可中断 发送事件 在活动 进入和退出操作的动作中可以是对象内部发生的行为 也可能是向另外一个对象发送消息 飞行状态exit 记录登陆时间 状态名entry 目标对象 消息名 消息参数 do 目标对象 消息名 消息参数 exit 目标对象 消息名 消息参数 27 3 2 3初始与终结状态 状态图中定义的状态有 初态 终态 中间状态 组合状态 历史状态等 初始状态 模型元素的初始状况 代表一个状态图的起始点 是一个伪状态 初始状态是转移的初始源 而不能是转移的目标 终结状态 模型元素的最后状态 代表一个状态图的终止点 是一个伪状态 终结状态是转移的最后目标 而不能是转移的初始源 状态图只能有一个初态 而终态可以有多个 也可以没有终态 单触发状态图p78图5 9 3 3事件event 事件是指某时刻发生的事情事件是指已发生并可能引发某种活动的一件事效应 为响应事件而执行的行为活动 由效应触发的实际行为 某个状态的多个活动迁移到达上的活动进入 推出活动do活动 3 3事件event 不同类型的事件信号事件信号是指从一个对象到另一个对象的单项数据流动信号事件指某时刻发生的事情变更事件满足布尔表达式而引起的事件when batterypower lowerlimit 时间事件在绝对时间上或某个时间间隔内发生的事情引起的事情when date 2011 11 1 after 10s 练习 用状态图描述简单信号灯的变化 31 3 4转移transition 当处于源状态的对象接收到一个事件 并且保护条件得到满足时 则执行相应的动作 并从源状态转移到目标状态 当发生一个转移时 该转移进入的状态为活动状态 它将执行相应的动作 当发生一个转移离开一个状态时 该状态变为非活动状态 转移类型 简单转移 自转移 自动转移 复合转移等 源状态 目标状态 事件 条件 动作 状态迁移的语法如下 事件 条件 动作表达式 事件 指已发生并可能引发某种活动的一件事 条件 由方括号围起的关系或逻辑表达式 动作表达式 一个触发状态迁移时可执行的过程表达式 3 4转移transition 练习 用状态图描述三岔口智能信号灯的变化 p76图5 7警戒迁移 练习 pc从开启到关机的gui状态图 35 3 4 1转移类型 1 自动转移 automatic transition 又称完成转移 completion transition 每个状态都可能有一个不由事件触发的转移 它是根据该状态内的动作完成而自动触发的 初始化do 自启动 工作 p36 3 4 1转移类型 2 自身转移 self transition 指那些源状态与目标状态是同一状态的转移 调用状态的入口和出口动作 如 卖票的航班中增加乘客或减少乘客时 航班是打开的 p81图5 6 37 3 4 1转移类型 3 复合转移 compound transition 由简单转移通过分支判定 分叉组成 判定 在状态图中的一个特定的位置 工作流在此依据条件的取值而发生的分支 判定用空心小菱形表示 38 3 4 1转移类型 4 39 源状态 目标状态4 目标状态3 目标状态2 目标状态1 事件1 条件1 动作1 条件3 动作3 条件4 动作4 条件5 动作6 条件2 动作2 条件6 动作6 多条件链式分支 源状态 目标状态4 目标状态3 目标状态2 目标状态1 事件1 条件1and条件3 动作1 动作3 多条件非链式分支 事件1 条件2and条件6 动作2 动作6 事件1 条件2and条件5 动作2 动作5 事件1 条件1and条件4 动作1 动作4 40 3 4 2转移示例 未分配任务 已分配任务 取消对任务的资源分配 numasstasks 1 numasstasks 1 numasstasks 1 numasstasks 0 分配任务给资源 numasstasks 1 资源休闲 资源管理员 prms的一个资源状态图 分配任务给资源 numasstasks 1 41 3 5组合状态 平面状态图的问题n个属性 状态 连接结构化机制简化状态图的冗余扩展的状态自动收货机状态图p89 6 2嵌套状态 组合状态电话线的状态图p90 6 4 42 3 5 1组合状态 子状态 一个状态内嵌套了若干个状态 则称该状态为组合状态 被嵌套的状态称为子状态 子状态本身仍然可以是组合状态 采用组合状态可以简化复杂行为的建模 43 3 5 1组合状态 子状态 采用组合状态可以简化复杂行为的建模 发货处理 取消 已发货 取消 网上商店处理送货过程的状态图 网上商店处理送货过程的状态图 网上商店处理送货过程的组合状态图 46 3 5 1组合状态 子状态 一个组合状态可以有一个被嵌套的子状态图 它代表了该组合状态的一个活动 子状态图中必须有自己的初始和终结状态 对组合状态的一个入转移代表对其子区域内的初始状态的入转移 对子区域内的终结状态的转移代表包含它的组合状态的相应活动的完成 47 在店内 entry 令store thestore 本店 购入项目 已出租 归还项目 弃置项目 租出项目 已租出 正常 entry 令store null 空值 do 每天检查到期时间 超过到期日子 过期 entry 通知会员 租借店软件系统中的租借项目 录像带 游戏等 状态图 租出项目 练习 pc从开启到关机的gui状态图 顺序子状态并发子状态历史状态 49 3 5 2顺序子状态 顺序子状态 子状态是一个一个顺序转移的 不是并发存在的 等待用户输入 登记用户输入 显示用户输入 输入 工作 pc的gui中 工作 的组合状态 50 活动 验卡 拨号 通话 挂断 休闲 继续 维修 结束 维修完成 维修 插卡 取消 ic卡电话机顺序状态示例 51 3 5 3并发子状态 1 并发状态图用于描述一个对象在某个时刻有多个并发的子状态机的情况 并发状态图是这些子状态图的组合 等待用户输入 登记用户输入 显示用户输入 输入 工作 监视系统时钟 更新界面显示 时钟间隔已过 gui中 工作 的并发组合状态 52 3 5 3并发子状态 2 网上商店系统中 订货 对象的并发状态图 等待 商品检查 办理装货 付款检查 已付款 取消 发货 拒绝 订货 53 3 5 4同步 同步可定义为并发工作流的分劈 fork 与接合 join 分劈 是一个源状态分为两个或两个以上的目标状态 接合 是两个以上的源状态连接为一个目标状态 同步在状态图中用一条粗短实线表示 称为同步杆 源状态 目标状态 目标状态1 目标状态2 源状态1 源状态2 54 3 5 4并发子状态 同步 同步状态在并发状态图中一个子状态图中的子状态 常常需要与另一个子状态图中的子状态的行为同步 并发子状态之间的同步状态用含 的小圆表示 伪状态 放在分隔子状态的虚线上 例 建筑住宅的并发状态图 二个并行子状态图主体工程施工和水电工程施工 砌筑基础 铺设室内管线 安装水电设备 主体结构 水电准备 安装门框 室内装修 竣工验收 55 3 5 5历史状态 1 历史状态 historystate 代表上次离开组合状态时的最后一个活动子状态 历史状态用含有字母 h 的小园圈表示 每当转移到组合状态中的历史状态时 对象便恢复上次离开该组合状态时最后一个子状态 并执行入口动作 历史状态是一个伪状态的图形标记 只能作为组合状态中的子状态 不能在顶层状态图中使用 56 3 5 5历史状态 2 停止 播发 选择 暂停 h 恢复 活动 中断 影碟机对象工作的部分状态图 57 3 5 5历史状态 3 等待用户输入 登记用户输入 显示用户输入 输入 工作 pc的gui中 工作 的历史状态 等待 超时 移动鼠标或键盘 h 58 3 6状态图的应用 状态图为一个对象的生命周期建立模型 状态图可以表示一个对象的历史 引起一个状态向另一个状态转移的事件 以及由于状态的转移而引发的动作 状态图适合描述一个对象穿越多个usecase的行为 但不适合描述多个对象的协同行为 使用状态图可以对一个对象 类 的行为建模 也可以对一个子系统或整个系统的行为建模 类 数字手表类及其状态机图 状态机图 3 6状态图的应用 状态图的作用帮助分析员 设计人员和开发人员理解对象的行为 单个对象如何表现自己的行为 清楚的了解对象应该作什么而不用猜测 p84 5 2 60 3 6 1使用状态图设计类 类的状态图应该尽量简单 对象的行为依赖它的状态 状态越多 则越难理解 很难正确地为这样的类编写代码 最终的实现方法具有多个条件分支 很难测试该类 单元测试 时 要测试对象状态图中的每个细节 如果类的行为以一种非常复杂的方式依赖它的状态 则外部编码很难正确使用该类 一个具有多个状态的类 应该考虑是否有好的设计方法 有时一个具有多个状态的类可以被分割成两个或多个具有简单行为的类 具体步骤如下 1 找出适合用模型描述其行为的类 2 确定对象可能存在的状态 3 确定引起状态转换的事件 4 确定转换进行时对对象执行的相应动作 5 对建模的结果进行相应的精化和细化 3 6 2状态图的建立 建立状态图可以参照下列步骤 1 确定状态机的上下文 可以是一个类 use 子系统或整个系统 2 选择初始状态和终结状态 3 发现对象的各种状态 应当仔细找出对问题有意义的对象的状态属性 这些属性具有少量的值且其转换受到限制 状态属性值的组合 结合行为有关的事件和动作 就可以确定具有特定的行为特征的状态 3 6 2状态图的建立 建立状态图可以参照下列步骤 4 确定状态可能发生的转移 分析从一个状态可以转移到哪些状态 对象的哪些行为可引起状态的转移并找出触发状态转移的事件 5 把必要的动作加到状态或转移上 6 利用子状态 分支 历史状态等概念组织和简化一个复杂的状态机 7 分析状态的并发和同步情况 3 6 2状态图的建立 建立状态图可以参照下列步骤 8 绘制状态图 9 确认每一个状态在某个事件组合之下都可达到 确认没有一个死端状态 对象不能从该状态中转移出来 3 6 2状态图的建立 65 项目 活动 任务 资源 prms系统的高层项目管理对象类图 1 1 1 1 66 prms系统总体状态图 备份系统未激活 prms未激活 备份系统已激活 prms已激活 退出系统 启动系统 启动备份系统 使prms备份例程工作 关闭备份系统 使prms备份例程不工作 启动prms 第一次使用 启动prms 非第一次使用 装载数据 关闭prms系统 备份系统已激活 备份数据 67 prms已激活资源管理项目管理系统管理 休闲

温馨提示

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

评论

0/150

提交评论