软件工程-第11章-面向对象设计

软件工程-第11章-面向对象设计

ID:37969816

大小:213.50 KB

页数:25页

时间:2019-06-04

软件工程-第11章-面向对象设计_第1页
软件工程-第11章-面向对象设计_第2页
软件工程-第11章-面向对象设计_第3页
软件工程-第11章-面向对象设计_第4页
软件工程-第11章-面向对象设计_第5页
资源描述:

《软件工程-第11章-面向对象设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象设计设计是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。面向对象设计可再细分为系统设计和对象设计。系统设计确定实现系统的策略和目标系统的高层结构。对象设计确定解空间中的类、关联、接口形式及实现服务的算法。面向对象设计的准则模块化:对象就是模块对象就是模块,它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。抽象:面向对象方法不仅支持过程抽象,而且支持数据抽象。类实际上是一种抽象数据类型。它对外开放的公共接口构成了类的规格说明。这种接口规定了外界可以使用的合法操作,使用者通过

2、这些操作使用类中定义的数据。某些面向对象的程序设计语言还支持参数化抽象,即当描述类的规格说明时并不具体指定所要操作的数据类型,而是把数据类型作为参数。信息隐藏:属性的表示方法和操作的实现算法在面向对象方法中,信息隐藏通过对象的封装性实现:类结构分离了接口与实现,从而支持了信息隐藏。弱耦合:松散交互耦合、紧密继承耦合交互耦合:指对象之间的耦合通过消息连接来实现。交互耦合应尽可能松散:尽量降低消息连接的复杂程度。减少对象发送(接受)的消息数。继承耦合:继承是一般化类与特殊类之间耦合的一种形式,应该提高继承耦合程度。设计时应使

3、特殊类尽量多继承并使用其一般化类的属性和服务。强内聚:面向对象设计中存在3种内聚:服务内聚:一个服务应该完成且仅完成一个功能。类内聚:一个类应只有一个用途,类的属性和服务应全都是完成该类对象的任务所必须的,其中不包含无用的属性或服务。一般-特殊内聚:设计出的一般-特殊结构,应该符合多数人的概念,即应是对相应的领域知识的正确抽取。可重用:软件重用是提高软件开发生产率和目标系统质量的重要途径。尽量使用已有的类。如果确实需要创建新类,则在设计这些新类时,应该考虑将来可重用性。启发规则(一)设计结果应该清晰易懂用词一致使用已有的

4、协议减少消息模式的数目避免模糊的定义一般-特殊结构的深度应适当:不能仅从方便编码的角度出发随意创建派生类,一个中等规模(大约包含100个类)的系统中,类等级层次数应保持为7±2。启发规则(二)设计简单的类:便于开发和管理避免包含过多的属性有明确的定义尽量简化对象之间的合作关系不要提供太多服务使用简单的协议:减少消息中的参数使用简单的服务把设计变动减至最小*11.3软件重用(一)概念重用:也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。包括知识重用、方法和标准的重用、软件成分的重用3个层次。代码重用:调用库中

5、的模块,源代码剪贴:存在配置管理问题,无法跟踪原始代码块的修改源代码包含:提供包含(include)库中源代码,修改库中源代码之后,所有包含它的程序都必须重新编译继承:重用类库中的类,不存在配置管理问题软件成分的重用级别设计结果重用:重用某个软件系统的设计模型(即求解域模型)。有助于把一个应用系统移植到完全不同的软硬件平台上。分析结果重用:重用某个系统的分析模型。这种重用特别适用于用户需求未改变,但系统体系结构发生了根本变化的场合。软件成分的重用级别2.类构件类构件的重用方式实例重用:使用适当的构造函数,按照需要创建类的

6、实例。然后向所创建的实例发送适当的消息,启动相应的服务,完成需要完成的工作。继承重用:当已有的类构件不能通过实例重用完全满足当前系统需求时,继承重用提供了一种对已有的类构件进行裁剪的机制。多态重用利用多态性不仅可以使对象的对外接口更加一般化(基类与派生类的许多对外接口是相同的),从而降低了消息连接的复杂程度,而且还提供了一种简便可靠的软构件组合机制。系统运行时,根据接收消息的对象类型,由多态性机制启动正确的方法,去响应一个一般化的消息,从而简化了消息界面和软构件连接过程。11.4系统分解采用面向对象方法设计软件系统时,面

7、向对象设计模型(即求解域的对象模型),与面向对象分析模型(即问题域的对象模型)一样,也由主题、类与对象、结构、属性、服务等5个层次组成。大多数系统的面向对象设计模型,在逻辑上都由四大部分组成,这四大部分对应于组成目标系统的四个子系统,它们分别是问题域子系统、人-机交互子系统、任务管理子系统和数据管理子系统。图11.2典型的面向对象设计模型在面向对象分析中,只涉及到问题论域部分,其余3部分是在面向对象设计中加进来的。设计问题域子系统(一)面向对象设计通常仅需从实现角度对问题域模型作一些补充或修改,主要是增添、合并或分解类-

8、&-对象、属性及服务,调整继承关系等。调整需求:修改分析结果,再把修改反映到问题域子系统中重用已有的类:把问题域类组合在一起:引入一个根类把应用的类关联到一起,建立类的层次增添一般化类以建立协议:在一般类中定义所有特殊类都可使用的操作,这种操作可能是虚函数,其细节在特殊类中定义。调整继承层次:若设计语言不提供多重继承

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。