网站大量收购闲置独家精品文档,联系QQ:2885784924

软件工程第11章探索.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 面向对象设计 面向对象的设计原则 系统设计 对象设计 设计模式 RUP的设计活动 RUP的实现活动 11.1 面向对象的设计概念及原则 1、有关概念 面向对象设计将面向对象分析创建的分析模型变换为设计模型,它将作为软件构造的蓝图。但由于面向对象分析与设计活动是一个迭代与演化的过程,概念与表示方法的一致性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成,这些任务形成过程式软件的基本结构。面向对象方法把问题域作为一系列相互作用的对象,在此基础上构造出基于对象的软件系统结构。 面向对象设计包括: (1)系统设计 ? 设计系统体系结构,实现分布式协同计算和资源利用。 ? 对象的储存。 ? 用户界面。 (2)对象(类)设计 对象设计是根据具体的实现策略,对分析模型进行细化与扩充。 通过系统设计和对象设计产生设计模型,是进一步完成系统实现的基础。 2、OO设计原则 (1)封装 是将一个完整的概念组成一个独立的单元,然后通过一个名字来引用它。在OO系统的较高层次,将一些相关的应用问题封装在一个子系统中,对子系统的访问是通过访问子系统的接口实现的;在较低的层次将具体对象的属性和操作封装在一个对象类中,通过类的接口访问其属性。 (2)抽象 OO方法不仅支持过程抽象还支持数据抽象。类封装了数据和操作数据的方法,类是一种包含过程抽象的数据抽象,它对外提供的公共数据接口构成了类的规格说明(类的协议)。使用者无需知道类中的具体操作是如何实现的,无需了解内部数据的具体表现方式,只要搞清它的规格说明,就可通过接口定义的操作访问类的数据。 (3)信息隐蔽 信息隐蔽是通过对象的封装实现的。类的结构分离了接口和实现,对于类的使用者来说,属性的表示和操作的实现都是隐蔽的。 (4)强内聚 ? 服务内聚: 一个服务完成且仅完成一个功能。 ? 类内聚: 一个类的属性和操作全部都是完成某个任务所必须的,其中不包括无用的属性和操作。 ? 层内聚: 把向用户或高层提供相关服务的功能放在一起,而将其他内容排除在外。为了保证适当的层内聚,往往有严格的层次结构,高层能够访问低层的服务,而低层却不能访问高层的服务(下图描述了这种关系)。 层内聚的优点如下: ? 替换高层模块对低层模块没有影响。 ? 可以用等价的层替换低层,但必须复制该层所有的API,这样高层才不受影响。 其他有关传统方法中的功能内聚、通信内聚、顺序内聚、时间内聚等概念及提高内聚的原则在OO设计中仍然适用。 (5)弱耦合 OO设计中,耦合主要指不同对象(包括类、包)之间相互关联的程度,如果一个对象过多地依赖于其它对象来完成自己的工作,不仅使系统的可理解性下降,还会增加测试、修改的难度,同时降低了类的可复用性和可移植性。但对象不可能完全孤立,当两个对象必须相互联系时,只通过类的公共接口实现耦合,不应该依赖于类的具体实现细节。 设计时尽量减少对象之间发送的消息数(Meyer建议的少接口),减少消息中的参数个数(小接口),对象之间以明显和直接的方式通信,减少通信的复杂程度(显式的接口)。传统方法中有关降低耦合的原则在OO方法中仍然适用。 (6)可复用 为了提高工作效率、减少错误、降低成本,就要充分考虑软件的复用性。复用有两个方面的含义:一是尽量使用已有的类,包括开发环境提供的类库和已有的相似类。二是创建新类时考虑将来的可复用性。 类有三种复用方式: ? 实例复用 由于类的封装特性,使用者不需要了解内部的实现细节就可用适当的构造函数创建需要的实例,然后向所创建的实例发送适当的消息,启动相应的服务,完成需要的任务。 设计一个可复用性好的类是一件很困难的事情,因为,类提供的服务太多,会增加接口的复杂度,降低类的可理解性;提供的服务太少,则可能会降低复用性。在设计时,需要根据具体的应用环境和以往的经验来综合考虑,设计出合适的类构件。

文档评论(0)

贪玩蓝月 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档