- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SE08第8章面向对象设计
课程介绍 面向对象设计 分析:提取和整理用户需求,建立问题域精确模型。 设计:将分析得到的需求转变成符合成本和质量要求、抽象的系统实现方案—建立求解域模型。 SD →总体设计+详细设计 OOD →系统设计+对象设计 系统设计:确定实现系统的策略和目标系统的高层结构 对象设计:确定解空间中的类、关联、接口形式及实现服务的算法 从OOA到OOD:逐渐扩充模型的过程 OOA是一个分类活动,即分析问题力图确定在开发解决方案时可应用的对象类同时确定对象关系和行为(有哪些)。 OOD使得软件工程师能够确定从类中导出的对象,以及这些对象的相互关联。OOD描述了: 对象间的关系如何达到; 对象的行为如何实现; 对象间通信如何实现。 第8章 面向对象设计(OOD) 面向对象设计的准则 启发规则、系统分解 设计问题域子系统 设计人-机交互子系统 设计任务管理子系统 设计数据管理子系统 设计类中的服务 设计关联 设计优化 面向对象分析与设计实例 目前流行的OOD方法概述 Coad-Yourdon方法 Coad-Yourdon的OOD过程概述: 问题域部分 人机交互部分 任务管理部分 数据管理部分 Rumbaugh方法(简称OMT) Rumbaugh的OOD过程概述: 系统设计 对象设计 实现在系统设计中定义的控制机制 调整类结构以加强继承性 设计消息序列以实现对象关系(关联) 包装类和对象为模块 统一的OOD方法 UML被组织进两个主要的设计活动: 系统设计 系统设计的主要目标是表示软件体系结构 对象设计 对象设计着重于对象及其相互交互的描述 系统设计 主要目标:表示软件体系结构 对OO而言: 概念体系结构:涉及静态类模型的结构和该模型的构件间的连接。 模块体系结构:描述系统被分成子系统或模块的方式以及它们如何通过移入和移出数据而通信。 代码体系结构:定义程序代码如何被组织为文件和目录以及分组为库。 执行体系结构:关注于系统的动态方面以及任务和操作执行时构件间的通信。 对象设计 对象设计:着重于对象及其相互间交互的描述。 在对象设计期间: 创建属性数据结构和所有操作的过程的详细规约。 定义所有属性的可见性(公共的、私有的或保护的)、精化对象间的接口、定义完整的消息模型的细节。 8.1 面向对象设计的准则 模块化:对象就是模块(数据结构+方法) 抽象:过程抽象、数据抽象、参数抽象 信息隐藏:对象的封装性 弱耦合:对象之间的相互依赖性 交互耦合:对象间通过消息连接实现耦合 继承耦合:一般化类与特殊类之间的耦合 强内聚 服务内聚:一个服务完成一个功能 类内聚:一个类只有一个用途 一般—特殊内聚:符合领域知识和常识 可重用 8.2 启发规则 设计结果应清晰易懂 一般—特殊结构的深度应适当(7+-2) 设计简单的类(一页或二屏) 使用简单的协议(参数数目《=3) 使用简单的服务(3-5行源程序) 把设计变动减至最小 8.3 系统分解 子系统既不是一个对象也不是一个功能,而是类、关联、操作、事件和约束的内聚集合。 定义子系统遵循的标准: 子系统应有良好的接口 除少数“通信类”,子系统中的类应只和该子系统中的其它类协作 子系统数目不应太多 可在子系统内划分以降低复杂性 图8.2典型的面向对象设计模型 Yourdon的OOD方法的OOD模型 OOD导出的系统结构 子系统设计过程中必须定义四种重要的设计结构 问题域 —实现客户需求的子系统 人机交互—实现用户界面的子系统 (包括可复用的GUI子系统) 任务管理—负责控制和协调并发任务的子 系统,任务可能被包装在一个 子系统中或不同的子系统间; 数据管理—负责对象存储和检索的子系统。 在OOD过程中将分析模型转换为设计模型* 8.3.1 子系统之间的两种交互方式 客户—供应商(Client-supplier)关系 客户子系统调用供应商子系统 前者了解后者的接口 后者完成某些服务工作并返回结果 平等伙伴(peer-to-peer)关系 各子系统间可相互调用 每个子系统都必须了解其他子系统的接口 比前一方式复杂,尽量少用 8.3.2 组织系统的两种方案 层次组织 每层是一个子系统 下层(供应商)为实现上层(客户)功能提供服务 每层内对象间相互独立,不同层对象间有关联 封闭式:每层的接口只影响相邻的上层 开放式:某层子系统可使用处于其下面任何一层子系统所提供的服务 块状组织 图8.3系统的组织结构 8.3.3设计系统的拓扑结构 管道型 每一个模块都有一组输入和一组输出。每一个模块从其输入端接收输入流,经过内部处理后,按照标准的顺序将结果数据流送到输出端。 一个典型的管道和过滤器体系结构的例子就是传统的编译器,其中词法分析、语法分析、语
文档评论(0)