教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

第九章面向对象设计

来源:网络收集 时间:2026-09-07
导读: 第9章 面向对象设计 引言 9.1 面向对象设计的概念 面向对象设计强调定义软件对象,并且使这些软件 对象相互协作来满足用户需求。 面向对象分析和设计的界限是模糊的,从面向对象 分析到面向对象设计是一个逐渐扩充模型的过程。 分析的结果通过细化直接生成设

第9章 面向对象设计

引言

9.1 面向对象设计的概念 面向对象设计强调定义软件对象,并且使这些软件 对象相互协作来满足用户需求。 面向对象分析和设计的界限是模糊的,从面向对象 分析到面向对象设计是一个逐渐扩充模型的过程。 分析的结果通过细化直接生成设计结果,在设计过 程中逐步加深对需求的理解,从而进一步完善需求 分析的结果。 分析和设计活动是一个反复迭代的过程。 面向对象方法学在概念和表示方法上的一致性,保 证了各个开发阶段之间的平滑性。

面向对象设计首先要进行高层设计: 确定系统的总体结构和风格,构造系统的物理 模型,将系统划分成不同的子系统。 中层设计:对每个用例进行设计,规划实现用 例功能的关键类,确定类之间的关系。 进行底层设计:对每个类进行详细设计,设计 类的属性和操作,优化类之间的关系。 补充实现非功能性需求所需要的类。

面向对象设计与结构化设计的过程和方法完 全不同,要设计出高质量的软件系统,记住: 对接口进行设计 发现变化并且封装它 先考虑聚合然后考虑继承

强内聚 类内聚——设计类的原则是一个类的属性和 操作全部都是完成某个任务所必须的,其中 不包括无用的属性和操作。 例如设计一个平衡二叉树类,该类的目的就是 要解决平衡二叉树的访问,其中所有的属性和 操作都与解决这个问题相关,其他无关的属性 和操作在这里都是垃圾,应该清除。

弱耦合 在面向对象设计中,耦合主要指不同对象之 间相互关联的程度。如果一个对象过多地依 赖于其它对象来完成自己的工作,则不仅使 该对象的可理解性下降,而且还会增加测试、 修改的难度,同时降低了类的可重用性和可 移植性。 对象不可能是完全孤立的,当两个对象必须 相互联系时,应该通过类的公共接口实现耦 合,不应该依赖于类的具体实现细节。

耦合(续) 交互耦合——如果对象之间的耦合是通过消 息连接来实现的,则这种耦合就是交互耦合。 在设计时应该尽量减少对象之间发送的消息 数和消息中的参数个数,降低消息连接的复 杂程度。

耦合(续) 继承耦合——继承耦合是一般化类与特殊化 类之间的一种关联形式,设计时应该适当使 用这种耦合。在设计时要特别认真分析一般 化类与特殊化类之间继承关系,如果抽象层 次不合理,可能会造成对特殊化类的修改影 响到一般化类,使得系统的稳定性降低。另 外,在设计时特殊化类应该尽可能多地继承 和使用一般化类的属性和服务,充分利用继 承的优势。

重用性 软件重用是从设计阶段开始的,所有的设计工作都 是为了使系统完成预期的任务,为了提高工作效率、 减少错误、降低成本,就要充分考虑软件元素的重 用性。重用性有两个方面的含义: 尽量使用已有的类,包括开发环境提供的类库和已有的 相似的类; 如果确实需要创建新类,则在设计这些新类时考虑将来 的可重用性。

设计一个可重用的软件比设计一个普通软件的代价 要高,但是随着这些软件被重用次数的增加,分摊 到它的设计和实现成本就会降低。

框架 框架是一组可用于不同应用的类的集合。框 架中的类通常是一些抽象类并且相互有联系, 可以通过继承的方式使用这些类。例如, Java应用程序接口(API)就是一个成功的 框架包,为众多的应用提供服务,但一个应 用程序通常只需要其中的部分服务,可以采 用继承或聚合的方式将应用包与框架包关联 在一起来获得需要的服务。一般不会直接去 修改框架的类,而是通过继承或聚合为应用 创建合适的GUI类。

面向对象设计的活动 系统构架设计 用例设计 类设计 数据库设计 用户界面设计。

9.2 构架设计 构架设计的目的是要勾画出系统的总体结构, 这项工作由经验丰富的构架设计师主持完成。 该活动以用例模型、分析模型为输入。 输出:物理结构、子系统及其接口、概要的 设计类。

构架工程师

子系统 用例模型 概要 接口 补充需求 构 架 设 计 设计类

分析模型

构架描述 分析模型的说明

系统构架设计模型和实施模型

第1步:构造系统的物理模型 首先用UML的配置图描述系统的物理构架 将需求分析阶段捕获的系统功能分配到这些 物理节点上。 配置图上可以显示计算节点的拓扑结构、硬 件设备配置、通信路径、各个节点上运行的 系统软件配置、应用软件配置。 一个图书馆信息管理系统的物理模型如图示

中国网通

中国电信

DDN

路由器

DDNDMZ区

链路负载均衡器

DNS服 务器 分交换机 WEB服 务器

防火墙

内部用户区主交换机 分交换机 分交换机 流量分配器 内部用 户1 内部用 户n

网闸 数据库 服务器 应用服 务器

内部用 户2

分交换机

用户学习/测试区应用服务 器1

数据库服 务器

数据库服 务器

应用服务 器2

共享磁盘阵列

应用服务 器3

网闸隔离区

图有4个区:DMZ区的两个服务器主要是用于运行集团网站。 内部用户区是为集团内部局域网用户服务的。 用户学习和测试区有两个目的,一是为使用系统的初级用户有 一个实际操练的环境,学习系统的应用环境与真实系统完全一 样,只是数据库

的数据都是练习数据;第二个目的是为了新版 本正式上线前提供一个测试环境,因为业务系统在使用过程中 经常会有变更,很容易引入错误和问题,为了确保业务的正确 执行,需要对系统的新版本进行大量逼真的运行测试。 网闸隔离区内部署了正式系统,三台应用服务器负责全国所有 的用户业务,它们的负载均衡由流量分配器实现;两台数据库 服务器做双机热备;物理网闸实现内外网的隔离;为了兼顾使 用网通和电信线路的用户,分别设计了两条线路,并由链路负 载均衡器调整线路的负载,有效地保证了全国不同地区的用户 顺利使用该系统。

第2步 设计子系统 对于一个复杂的软件系统来说,将其分解成 若干个子系统,子系统内还可以继续划分子 系统或包,这种自顶向下、逐步细化的组织 结构非常符合人类分析问题的思路。 每个子系统与其它子系统之间应该定义接口, 在接口上说明交互信息,注意这时还不要描 述子系统的内部实现。

1)划分各个子系统的方式:按照功能划分,将 相似的功能组织在一个子系统中;按照系统 的物理布局划分,将在同一个物理区域内的 软件组织为一个子系统;按照软件层次划分 子系统,软件层次通常可划分为用户界面层、 专用软件层、通用软件层、中间层和数据层, 具体的表达方式见图。

…… 此处隐藏:1149字,全部文档内容请下载后查看。喜欢就下载吧 ……
第九章面向对象设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/91323.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)