UML第7章 发现对象、建立对象类.ppt_第1页
UML第7章 发现对象、建立对象类.ppt_第2页
UML第7章 发现对象、建立对象类.ppt_第3页
UML第7章 发现对象、建立对象类.ppt_第4页
UML第7章 发现对象、建立对象类.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

第7章发现对象 建立对象类 7 1对象 主动对象以及它们的类7 2表示法7 3研究问题域和用户需求7 4发现对象7 5对象分类 建立类图的对象层7 6电梯例子 分析和研究问题域及用户要求 认识其中的对象 从而确定系统中应该设立哪些对象类是OOA的核心工作 7 1对象 主动对象以及它们的类 本节主要介绍对象以及主动对象的相关概念 对象 对象是对问题域中某个实体的抽象 这种抽象反映了系统保存有关这个实体的信息或与它交互的能力 类 类是对具有相同属性和行为的一个或多个对象的描述 通常在这种描述中也包括对怎样创建该类的新对象的说明 在面向对象的编程语言中 对象和类是两种不同的语法成分 前者是后者的实例 后者是前者的定义模板 主动对象 主动对象是至少有一个服务不需要接收消息就能主动执行的对象 不需要接收消息就能主动执行的服务可称为主动服务 在编程时它将对应一个并发执行的程序单位 关于在OOA中运用主动对象 有两点认识 1 不提倡脱离系统开发的实际需要漫无目标地去发掘每个对象的主动行为 2 往往由设计决策决定是否应该把一个对象定义为主动对象 设计者可以为提高或减低系统的并发难度而人为的增加或减少主动对象的种类与数量 7 2表示法 普通对象 包括被动对象和尚未认定的主动对象 由图7 1所示的类符号表示 图7 1 主动对象的类符号如图7 2所示 它与普通对象的类符号之区别是 在类名之前增加一个主动标记 图7 2 7 3研究问题域和用户需求 OOA的基本出发点是问题域和用户要求 分析员的主要工作就是 通过不断地研究问题域 建立一个能满足用户需求的系统模型 需求陈述通常是不完整 不准确的 而且往往是非正式的 通过分析 可以发现和改正原始陈述中的二义性和不一致性 补充遗漏的内容 从而使需求陈述更完整 更准确 7 3 1研究用户需求 明确系统责任 系统的需求包括四个不同的层次 1 业务需求 2 用户需求 3 功能需求 4 非功能性需求 需求获取就是根据系统业务需求去获得系统用户需求 然后通过需求分析得到系统的功能需求和非功能需求 作为一种实用的分析技术 OOA应该从当前的现实出发来设定工作的起点 它的工作起点是 能得到一份正确地表达用户需求 符合某种标准 如国家标准 行业标准或企业内部规范 的需求文档 研究用户需求包括以下活动 1 阅读有关文档 2 与用户交流 3 进行实地调查 4 记录所得认识 5 整理相关资料 7 3 2研究问题域 认真听取问题域专家的见解亲临现场 通过直接观察掌握第一手材料阅读领域相关资料借鉴他人经验 7 3 3确定系统边界 确定系统边界 就是明确系统是什么以及系统的环境是什么 划出被开发的系统和与该系统打交道的人或物之间的明确界限 并确定它们之间的接口 认识系统边界的目的是为了明确系统的范围以及与外部世界的接口 系统边界以内的事物 由系统中的对象来表达 边界以外的活动者通过经它们和系统的接口与系统交互 边界以外不与系统交互的事物统统不必考虑 同时 在定义用例时系统边界是作为观察活动者与系统交互的着眼点 7 4发现对象 面向对象方法经过多年的发展和完善 已经有人总结出一些规律性的对象发现方法 本节对这些方法予以介绍 7 4 1发现对象技术概要 利用面向对象软件设计技术可以显著地提高软件开发的质量和生产效率 对于一个给定的应用领域 一个合适的对象集合能够确保软件的可重用性 提高可扩充性 并能借助面向对象的开发模式 提高软件开发的质量和生产效率 7 4 2正确地运用抽象原则 在OOA中运用抽象原则 先要舍弃与系统责任无关的事物 保留与系统责任有关的事物 其次 还要舍弃与系统责任有关的事物中与系统责任无关的特征 正确地进行抽象还需要考虑将问题论域中的事物映射为什么对象以及如何对这些对象进行分类的问题 7 4 3策略与启发 考虑问题域 可以启发分析员发现对象的因素包括 人员 组织 设备 物品 事件 表格 结构等 1 人员 大多数系统的问题域都涉及各种各样的人员 2 组织 在系统中发挥一定作用的组织结构 3 设备 是指在系统中动态地运行 由系统进行监控或者供系统使用的各种设备 仪表 机器以及运输工具 4 物品 是指那些需要由系统管理的各种物品 5 事件 指那些需要由系统长期记忆的事件 6 表格 这里 表格 的概念是广义的 无节制地设立许多表格对象往往会产生一个臃肿的 畸型的系统 正确的策略是 不要急于考虑从表格发现对象 把产生的各种表格看成一种用户需求 将它与其他的用户需求结合起来 共同作为发现对象的途径 7 结构 通过考虑结构可以得到一种启发 从已经发现的对象联想到其他更多的对象 如图7 3所示 图7 3 考虑系统边界 应该考虑的因素包括 人员 设备和外部系统 1 人员 作为系统以外活动者与系统进行直接交互的各类人员 2 设备 作为系统以外的活动者与系统相连并交换信息的设备 3 外部系统 与系统相连并交换信息的其他系统 考虑系统责任 对基于发现对象识别的遗漏的考虑 对照系统责任所要求的每一项功能 查看是否可以由已找出的对象来完成该功能 如果发现某些功能在现有的任何对象中都不能提供 则可启发我们发现问题域中某些遗漏的对象 7 4 4审查和筛选 舍弃无用的对象 1 通过属性判断 2 通过服务判断 对象的精简 1 如果一个对象只有一个服务 没有属性 并且系统中只有一个类的对象请求这个服务 可以考虑合并到它的请求者对象中 2 如果对象只有一个属性 应考虑它是被哪些对象引用 看看能否合并到这些对象中 推迟到OOD考虑的对象 候选对象中那些与具体的实现条件密切相关的对象 不要在OOA模型中建立 这样使OOA模型可独立于具体的实现环境而只与问题有关 7 4 5识别主动对象 问题域和系统责任系统边界系统执行情况 7 5对象分类 建立类图的对象层 在大多数情况下 如果对系统中所需的对象有了正确的认识 建立它们的类便是一件相对简单的工作了 但是在有些情况下事情未必都这么简单 从单个对象着眼所认识的对象特征是否正好可作为整个类的特征有待于核实 把各种对象放在一起构成一个系统 也需要从全局的观点对它们进行一番考查 在定义对象类时 需要对一些异常情况进行检查 必要时作出修改或调整 7 5 1异常情况的检查和调整 属性及服务相同的类类的属性或服务不适合该类的全部对象属性和服务相似的类对同一事物的重复描述 7 5 2类的命名 类名应该反映每个对象个体 而不是整个群体 类的名字应恰好符合该类 和它的特殊类 所包含的每一个对象 采用名词 或带有定语的名词 使用规范的词汇 不用市井俚语和问题域专家及用户惯使用的词汇 还要注意避免使用毫无意义的字符和数字作为类名 使用适当的语言文字 7 5 3建立类图的对象层 用类符号表示每个类 把它们画出来 便形成了OOA基本模型中的对象层 在类描述模板中填写关于每个类的详细说明 在发现对象的活动中能够认识的属性和服务以及能够认识的结构一连接 均可随时在类图上画出 7 6电梯例子 本节使用电梯控制系统作为示范OOA实际操作过程的例子 介绍这个例子所关注的重点是 让读者看到运用OOA方法分析实际系统时应该如何思考问题和解决问题 而不是不加说明地给出一份完整的工程文档 7 6 1功能需求 总的需求就是要设计和实现一个能对一座40层楼的建筑物内的4部电梯进行调度和控制的程序 这些电梯能以常规的方式将乘客从某一层楼送到另一层楼 效率目的地按钮目的地按钮指示灯楼层传感器 到达指示灯召唤按钮召唤按钮指示灯电梯马达控制 上 下 停 7 6 2发现对象 到达事件 ARRIVALEVENT 到达面板 ARRIVALPANEL 目的地事件 DESTINATIONEVENT 目的地面板 DESTINATIONPANEL 电梯 ELEVATOR 电梯马达 ELEVATORMOTOR 楼层 FLOOR 超载传感器 OVERWEIGHTSENSOR 召唤

温馨提示

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

评论

0/150

提交评论