软件工程第九章面向对象设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程 Software Engineering 第九章 面向对象设计 提取了用户需求,建立了问题域模型后,系统分析的任务基本完成。下一步则是将分析的成果用于设计当中。 从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。分析处理以问题为中心,设计则是面向计算机的“实现”开发活动。 相对于传统方法中,从数据流图到结构图的变化突然而不连续,分析人员很在跟踪整个设计过程,而面向对象方法学保证了在各个开发阶段之间的平滑过渡,这是面向对象方法与传统方法相比起来所具有的一大优势。 9.1 设计的准则 综合考虑各种因素,使得在整个软件生命周期总开销最小的设计,就是一个优秀的设计。鉴于目前软件维护占了整个软件总费用的60%以上。所以,维护的简易性成为优秀软件设计的主要特点。 9.1.1 转向面向对象的设计 分析阶段给出了一个基于面向对象的软件开发模型,现在是增加各种组成部分以扩充这个模型。 具体来说,面向对象分析(OOA)与面向对象设计(OOD)有如下一些关系: OOA识别和定义的类和对象,是一些直接反映问题空间和系统任务的;而OOD识别和定义的对象则是附加的,反映需求的一种实现。 OOA与OOD分别在不同的抽象层次上进行。OOA是独立于程序设计语言的,属于较高的抽象层次的。但详细OOD则一般都会依赖于程序设计语言,属于较低的抽象层次。 从非面向对象分析到面向对象设计,应将一个非面向对象的需求说明快速转变为面向对象分析模型,用服务说明去跟踪所得到的需求说明中的功能,消除用这种方法未曾发现的漏洞。然后进行初步面向对象的设计,在借助用于实现的程序设计语言进行详细的OOD。 9.1.2 抽象 把众多的事物归纳,划分出一些类是人类在认识客观世界时经常采用的思维方法。分类所依据的原则是抽象,即是忽略事物的非本质特征,只注意那些与当前目标相关的本质特征,从而找出事物的特性,把具有共同性质的事物划分为一类,得到一个抽象的概念。 面向对象方法支持过程抽象和数据抽象。类就是一种抽象数据类型,对外提供方法,对内封装数据及实现。使用者可以通过方法来说明数据,通常把这类抽象称为规格说明抽象。 此外,某些对象的程序设计语言还支持参数化抽象。 9.1.3信息隐藏 “信息隐蔽”是指对外尽可能隐藏对象的内部细节,利用有限的对外接口或方法与外界保持联系。 9.1.4模块化 面向对象软件开发模式很自然地支持了把系统划分成模块的设计原理,对象就是模块,它是由一组属性和对这组属性进行操作的一组服务构成。 9.1.5类的设计准则 在面向对象的应用中,类实例是系统的主要组成部分,下面列出一些设计类时应考虑的因素和应遵循的准则。 (1)类的公共接口的单独成员应该是类的操作符。 (2)类A的实例不应直接发送信息给类B的成员。 (3)只有当类实例的用户可用,操作符才是公共的。 (4)属于类的每个操作符只能赋予修改成访问类中某个数据的权限,两者只能择一。 (5)类必须保持独立性,尽可能少地依赖其它类。 (6)两个类之间的相互作用应是显式的。 (7)采用子类继承超类的公共接口,开发子类成为超类的专用。 (8)目标概念的抽象换型应是继承结构中的根类。 前四种着重考虑接口的形式及使用,后四种着重类之间的关系。 9.1.6面向对象的设计基本原理 抽象(过程,数据) 封装 继承 消息 组织方法(对象和属性、类专成员、整体与部分) 功能分类(基本函数、状态-文件-响应、对象生命历程) 分类结论 组装结构 实例连接 消息连接 9.1.7软件复用 支持软件复用是人们对面向对象方法寄托的主要希望之一。面向对象方法之所以有利于软件复用,是由于它的主要概念及原则与软件复用十分吻合。支持软件复用的OO概念和原则是:对象与类、抽象、封装、继承与一般—特殊结构,聚合与整体—部分结构,粒度控制、多态性。 9.1.8 面向对象设计的步骤 指出对象及其属性; 指出可能适用于对象的服务; 说明对象及服务; 确定将为对象提供实现描述的详细设计问题; 细化面向对象分析的工作,找出子类、消息特性和其它详尽的细节; 表示与对象属性关联的数据结构; 表示与每个服务关联的过程细节。 9.2启发式规则 何谓启发式规则,乃是人们使用面向对象方法学的过程中所积累的经验,往往能帮助软件开发人员提高面向对象的质量。 9.2.1简单 (1)类简单 小而简单的类利于开发管理。建议类的定义不超过一页纸(或两屏)。避免包含过多的属性与提供太多的服务,定义明确,简化对象间的合作关系。但由于类的规格较小,则有可能导致类的数目增多,带来一定的复杂性。此时,可将类按分组,划分“主题“予以解决。 (2)服务简单 简单的服务一般只包含3-5行源程序语句,功能描述用一个简单句子即

文档评论(0)

178****4446 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档