软件工程第十二讲-附件.ppt

  1. 1、本文档共99页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二讲 面向对象方法学(续) 面向对象的概念 面向对象的开发过程 面向对象分析与模型化 面向对象设计 面向对象程序的实现与测试 面向对象设计(OOD) 面向对象设计继续做面向对象分析阶段的工作,建立软件的结构。 主要工作分为两个阶段: 高层设计 类设计 高层设计 高层设计阶段开发系统的结构,即构造应用软件的总体模型。 高层设计阶段标识在计算机环境中进行问题解决工作所需要的概念,并增加了一批需要的类。 这些类包括那些可使应用软件与系统的外部世界交互的类。 此阶段的输出是适合应用软件要求的类、类间的关系、应用的子系统视图规格说明。 高层设计模型 高层设计的特点 高层设计可以表征为标识和定义模块的过程。 模块可以是一个单个的类,也可以是由一些类组合成的子系统。 类接口的协议如同“合同” :需方提出的请求必须列在协议表中,供方则必须提供所有协议的服务。 高层设计应遵循的原则 应使得在子系统的各个高层部件之间的通信量达到最小; 子系统应当把那些成组的类打包,形成高度的内聚; 逻辑功能分组,提供一个一个单元,识别并定位问题事件; 类设计 类与具有概念封装的子系统十分类似。 每个子系统都可以被当做一个类来实现,这个类聚集它的部件,提供了一组操作。 类和子系统的结构是正交的,一个单个类的实例可能是不止一个子系统的一部分。 高层设计和类设计这两个阶段是相对封闭的。 应用软件中的每一个事物都是一个对象,包括应用软件自身在内! 两个阶段是连接的。 Coad 与 Yourdon 高层设计方法 Coad 与 Yourdon 在设计阶段中继续采用分析阶段中提到的五个层次。 在设计阶段中,这五个层次用于建立系统的四个组成成份。 问题论域部分 人机交互部分 任务管理部分 数据管理部分 问题论域部分 问题论域部分包括与应用问题直接有关的所有类和对象。 识别和定义这些类和对象的工作在OOA中已经开始,在OOA阶段得到的有关应用的概念模型描述了我们要解决的问题。 在OOD阶段,应当继续OOA阶段的工作,对在OOA中得到的结果进行改进和增补。 问题论域部分的设计 在OOA阶段得到的概念模型描述了要解决的问题 在OOD阶段,继续OOA阶段的工作,对在OOA中得到的结果进行改进和增补。 对OOA模型中的某些类与对象、结构、属性、操作进行组合与分解。 要考虑对时间与空间的折衷、内存管理、开发人员的变更、以及类的调整等。 1.复用设计 根据问题解决的需要,把从类库或其它来源得到的既存类增加到问题解决方案中去。 标明既存类中不需要的属性和操作, 增加从既存类到应用类之间的一般化-特殊化的关系。 把应用类中因继承既存类而成为多余的属性和操作标出。 修改应用类的结构和连接。 2.把问题论域相关的类关联起来 在设计时,从类库中引进一个根类,做为包容类,把所有与问题论域有关的类关联到一起,建立类的层次。 把同一问题论域的一些类集合起来,存于类库中。 3. 加入一般化类以建立类间协议 有时,某些特殊类要求一组类似的服务。 此时,应加入一个一般化的类,定义为所有这些特殊类共用的一组服务名,这些服务都是虚函数。 在特殊类中定义其实现。 4. 调整继承支持级别 在OOA阶段建立的对象模型中可能包括有多继承关系,但实现时使用的程序设计语言可能只有单继承,甚至没有继承机制,这样就需对分析的结果进行修改。 多继承模式有两种: 狭义的菱形 广义的菱形 针对单继承语言的调整 把特殊类的对象看做是一个一般类对象所扮演的角色,通过实例连接把多继承的层次结构转换为单继承的层次结构。 把多继承的层次结构平铺,成为单继承的层次结构。在这种情况下,有些属性或操作在同层的特殊类中会重复出现。 针对无继承语言的调整 当使用无继承的程序设计语言时,必须把具有继承关系的类层次结构平铺开来,成为一组类和对象。 一般可利用命名惯例,把这些类或对象关联起来。 5. 改进性能 提高执行效率和速度是系统设计的主要指标之一。有时,必须改变问题论域的结构以提高效率。 如果类之间经常需要传送大量消息,可合并相关的类以减少消息传递引起的速度损失。 增加某些属性到原来的类中,或增加低层的类,以保存暂时结果,避免每次都要重复计算造成速度损失。 6. 加入较低层的构件 在做面向对象分析时,分析员往往专注于较高层的类和对象,避免考虑太多较低层的实现细节。 在做面向对象设计时,设计师在找出高层的类和对象时,必须考虑到底需要用到哪些较低层的类和对象。 用户界面部分的设计 在 OOA 阶段给出了所需的属性和操作, 在设计阶段必须根据需求把交互细节加入到用户界面设计中,包括人机交互所必需的实际显示和输入。 用户界面部分设计主要由以下几个方面组成。 1. 用户分类 按技能层次分类: 外行/初学者/熟练者/专家 按组

文档评论(0)

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

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

1亿VIP精品文档

相关文档