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

上传人:ji****72 文档编号:48483486 上传时间:2018-07-16 格式:PPT 页数:25 大小:213.50KB
返回 下载 相关 举报
软件工程-第11章-面向对象设计_第1页
第1页 / 共25页
软件工程-第11章-面向对象设计_第2页
第2页 / 共25页
软件工程-第11章-面向对象设计_第3页
第3页 / 共25页
软件工程-第11章-面向对象设计_第4页
第4页 / 共25页
软件工程-第11章-面向对象设计_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《软件工程-第11章-面向对象设计》由会员分享,可在线阅读,更多相关《软件工程-第11章-面向对象设计(25页珍藏版)》请在金锄头文库上搜索。

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

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

3、务应该完成且仅完成一个功能。类内聚:一个类应只有一个用途,类的属性和服务 应全都是完成该类对象的任务所必须的,其中不包 含无用的属性或服务。一般特殊内聚:设计出的一般特殊结构,应该 符合多数人的概念,即应是对相应的领域知识的正 确抽取。可重用:软件重用是提高软件开发 生产率和目标系统质量的重要途径 。尽量使用已有的类。如果确实需要创建新类,则在设 计这些新类时,应该考虑将来可 重用性。启发规则(一)设计结果应该清晰易懂n用词一致n使用已有的协议n减少消息模式的数目n避免模糊的定义一般特殊结构的深度应适当:不能仅从方便编码的角度出发随意创建派 生类,一个中等规模(大约包含100个类)的系统 中,

4、类等级层次数应保持为72。启发规则(二)设计简单的类:便于开发和管理n避免包含过多的属性n有明确的定义n尽量简化对象之间的合作关系n不要提供太多服务使用简单的协议:减少消息中的参数使用简单的服务把设计变动减至最小*11.3 软件重用(一)概念n重用:也叫再用或复用,是指同一事物不 作修改或稍加改动就多次重复使用。包括知 识重用、方法和标准的重用、软件成分的重 用3个层次。代码重用:调用库中的模块,n源代码剪贴:存在配置管理问题,无法跟 踪原始代码块的修改n源代码包含:提供包含(include)库中源 代码,修改库中源代码之后,所有包含它的 程序都必须重新编译n继承:重用类库中的类,不存在配置管

5、理 问题1.软件成分的重用级别n设计结果重用:重用某个软件系统的设计模 型(即求解域模型)。有助于把一个应用系统移 植到完全不同的软硬件平台上。n分析结果重用:重用某个系统的分析模型。 这种重用特别适用于用户需求未改变,但系 统体系结构发生了根本变化的场合。1.软件成分的重用级别2. 类构件n类构件的重用方式n实例重用:使用适当的构造函数,按照需要 创建类的实例。然后向所创建的实例发送适 当的消息,启动相应的服务,完成需要完成 的工作。n继承重用:当已有的类构件不能通过实例重 用完全满足当前系统需求时,继承重用提供 了一种对已有的类构件进行裁剪的机制。 多态重用利用多态性不仅可以使对象的对外接

6、口 更加一般化(基类与派生类的许多对外接口 是相同的),从而降低了消息连接的复杂程 度,而且还提供了一种简便可靠的软构件 组合机制。系统运行时,根据接收消息的 对象类型,由多态性机制启动正确的方法 ,去响应一个一般化的消息,从而简化了 消息界面和软构件连接过程。11.4 系统分解采用面向对象方法设计软件系统时,面 向对象设计模型(即求解域的对象模型),与 面向对象分析模型(即问题域的对象模型)一 样,也由主题、类与对象、结构、属性、 服务等5个层次组成。大多数系统的面向对象设计模型,在逻 辑上都由四大部分组成,这四大部分对应 于组成目标系统的四个子系统,它们分别 是问题域子系统、人机交互子系统

7、、任 务管理子系统和数据管理子系统。图11.2 典型的面向对象设计模型在面向对象分析中,只涉及到问题论域部分, 其余3部分是在面向对象设计中加进来的。设计问题域子系统(一)面向对象设计通常仅需从实现角度对问题域 模型作一些补充或修改,主要是增添、合并或 分解类&对象、属性及服务,调整继承关 系等。n调整需求:修改分析结果,再把修改反映到问题 域子系统中n重用已有的类:n把问题域类组合在一起:引入一个根类把应用的 类关联到一起,建立类的层次n增添一般化类以建立协议:在一般类中定义所有 特殊类都可使用的操作,这种操作可能是虚函数,其 细节在特殊类中定义。n调整继承层次:若设计语言不提供多重继承机制

8、 ,需修改分析结果。设计人机交互子系统(一 )确定人机交互的细节,其中包括指定窗 口和报表的形式、设计命令层次等项内容 。设计人机交互子系统的策略n分类用户n描述用户n设计命令层次:用过程抽象机制组织起来的 、可供选用的服务的表现形式。n设计人机交互类设计任务管理子系统分析并发性:若两个对象彼此间不存在交互,或者同时接 受事件,则它们在本质上是并发的;当系统有许多并发行为时,需要依照各个行 为的协调和通信关系,划分各种任务,以简 化并发行为的设计和编码:通过检查各个对象的状态图及他们之间交 换的事件,把若干非并发的对象归并到一条 用任务实现的控制线中。进程的别名,是执行一系列活动的一段程序。设

9、计任务管理子系统设计任务管理子系统:确定各类任务并把任务 分配给适当的硬件或软件去执行。n确定事件驱动型任务:由事件驱动完成通信工作的 任务。n确定时钟驱动型任务:每隔一定时间间隔就被触发 以执行某些处理的任务。n确定优先任务和关键任务:有关系统成功或失败的 关键处理,有严格的可靠性要求。n确定协调任务:有助于把不同任务之间的协调控制 封装起来。n尽量减少任务数n确定资源需求:决定哪些子系统用硬件实现,哪些 用软件实现。表明某些数据到达的信号设计数据管理子系统选择数据存储管理模式n文件管理系统n关系数据库管理系统n面向对象数据库管理系统: 1)扩展的关系数据库管理系统:增加了抽象数据类 型和继

10、承机制,增加了创建及管理类和对象的通用服务 2)扩展的面向对象程序设计语言:增加了在数据库 中存贮和管理对象的机制 设计数据管理子系统n设计数据格式n设计相应的服务设计类中的服务确定类中应有的服务设计实现服务的方法n设计实现服务的算法n算法复杂度n容易理解与容易实现n易修改n选择数据结构n定义内部类和内部操作设计关联关联的遍历实现单向关联实现双向关联链属性的实现设计优化确定优先级提高效率的几项技术n增加冗余关联以提高访问效率n调整查询次序n保留派生属性调整继承关系n抽象与具体n为提高继承程度而修改类定义n利用委托实现行为共享对象模型一本书有一个封面、一个目录、一个前 言、若干章,每章有若干节,每节有若 干段,每段有若干句子,每节有0个或多 个插图,还有0个或多个表格,最后还有 一个封底。建立该书的对象模型。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号