- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 面向对象设计 面向对象设计概述 问题域子系统(PDC)的设计 人—机交互子系统(HIC)的设计 任务管理子系统(DMC)的设计 数据管理子系统(DMC)的设计 面向对象设计(OOD)仍然需要进行总体设计和详细设计。在面向对象方法中,总体设计和详细设计也没有清晰的界限。本章主要介绍如何建立系统的基本框架。 总体设计将系统分成几个子系统,建立系统的基本框架,每个子系统使用与面向对象分析一致的表示方法建立模型,可以说,总体设计是逐渐扩充面向对象分析模型的过程;详细设计则针对每个子系统中的每个类的作用、类的内部构成(属性和服务)以及类之间关系进行清晰、具体的描述,使得在实现阶段程序员根据该描述能很容易地转化成程序。 第一节 面向对象设计概述 一、面向对象设计系统的基本框架 面向对象分析集中于问题域、系统责任和需求,它是独立于编程语言的,面向对象设计集中于用可得到的技术实现上述需求,在很大程度上仍然独立于编程语言。面向对象设计是面向对象分析的扩充,主要是增加各种组成部分。具体地说,面向对象分析识别和定义类——对象,这些类——对象直接反映问题域和系统任务。而面向对象设计识别和定义其它附加类——对象,它们反映需求的一种实现。 面向对象设计的模型仍然由5层组成,但划分为四个组成部分:人机交互部分(HIC:Human Interface Component)、问题域(PDC:Problem Domain Component)、任务管理(TMC:Task Management Component)和数据管理(DMC:Data Management Component)。 人机交互部分包括: 有效的人机交互所必需的实际显示和输入,负责向用户提供良好的界面; 问题域部分就是对面向对象分析的结果进行改进; 任务管理部分是对系统中若干任务并发执行时,设计合理的任务执行方案; 数据管理部分是对数据的存放和相应的服务进行设计。 这四个部分相对独立,它们之间通过消息相互联系。之所以这样划分是出于使整个系统容易维护的考虑,让将来的每一次变动使系统的修改程度最小。 例如将来考虑将系统的鼠标点击输入改为语音输入,那么只需修改人机交互部分,其它部分不用改动。 二、面向对象设计的准则 结构化方法中软件设计的基本原理在进行面向对象设计时仍然成立,但是增加了一些与面向对象方法密切相关的新特点,从而具体化为面向对象设计准则。 (一)模块化 面向对象软件开发模式,很自然地支持了把系统分解成模块的设计原理:类就是模块。 它是把数据结构和对数据的操作紧密地结合在一起所构成的模块。 (二)抽象 面向对象方法不仅支持过程抽象,而且支持数据抽象。类实际上是一种抽象数据类型,它对外开放的公共接口构成了类的规格说明(即协议),这种接口规定了外界可以使用的合法操作符,利用这些操作符可以对类实例中包含的数据进行操作。使用者无须知道这些操作符的实现算法和类中数据元素的具体表示方法,就可以通过这些操作符使用类中定义的数据。通常把这类抽象称为规格说明抽象。 (三)信息隐藏 在面向对象方法中,信息隐藏通过对象的封装来实现。对于用户来说,类中的属性的表示方法和操作的实现算法都应该是隐藏的。 (四)弱耦合 结构化方法中耦合是指在系统中的各个模块之间的相互连接或相互依赖的强度。在面向对象方法中,耦合主要指不同对象之间通过消息相互关联的紧密程度。应该遵守下列准则使这种耦合尽量松散: 1.尽量降低消息连接的复杂程度。应该尽量减少消息中包含的参数个数,降低参数的复杂程度。 2.减少对象发送(或接收)的消息数。 (五)强内聚 内聚用于描述系统内组成部分中各元素彼此结合的紧密程度,应尽量避免低内聚。在面向对象设计中,从三个层次来考察内聚性。 1.单个方法的内聚性:方法是指操作的实现过程,一个操作由一个或多个方法实现。对方法的内聚性的评价与结构化设计中的相同,具有高内聚的方法应当只执行一个功能。 2.?类的内聚性:设计类的原则是,一个类应该只有一个用途,类中的属性和操作应该全都是完成该类的任务所必需的,其中不包括无用的属性和操作。如果某个类有多个用途,通常应该把它分解成多个专用的类。 3.层次结构的内聚性:对象之间通过继承关系而构成的层次结构,特殊类应该确实是对它的一般化类的一种具体化。如果一个派生类摒弃了它基类的许多属性和服务,那就是一个低内聚的。 (六)可重用 软件重用是提高软件开发生产率和目标系统质量的重要途径。重用基本上从设计开始。 重用有两方面的含义:一是尽量使用已有的类(包括开发环境提供的类库,以及以往开发类似系统是创建的类);二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性。 第二节 问题域子系统(PDC)的设计 一般来说,基于
文档评论(0)