三、OOD的根本目标 1、提高软件生产率 开发阶段:提高20%,维护阶段提高更多。原因: 设计的投入在编程、测试时得到回报 oo方法使系统更易于理解 分析文档、设计文档、源程序对应良好 功能变化引起的全局性修改较少 ooD结果的复用 2、提高质量 现今的质量观点: 不仅是事后通过测试排除错误,而是着眼与软 件开发过程的每个环节,从分析、设计阶段开 始质量保证。 高质量不只是没有错误,而是好用、易用、可 移植、易维护,用户由衷地满意
1、提高软件生产率 开发阶段:提高20%,维护阶段提高更多。原因: 设计的投入在编程、测试时得到回报 OO方法使系统更易于理解 分析文档、设计文档、源程序对应良好 功能变化引起的全局性修改较少 OOD结果的复用 2、提高质量 现今的质量观点: 不仅是事后通过测试排除错误,而是着眼与软 件开发过程的每个环节,从分析、设计阶段开 始质量保证。 高质量不只是没有错误,而是好用、易用、可 移植、易维护,用户由衷地满意。 三、OOD的根本目标:
3、加强可维护性 需求是不断变化的(尽管可阶段性地“冻结”) 因素:客户业务、竞争形式、技术发展、规章制度. 要求设计结果对变化有弹性 设计如何适应不可预见的变化? 把易变部分和较稳定的部分隔离, 将变化的影响限制在局部 易变性:服务>接口>属性>类
3、加强可维护性 需求是不断变化的(尽管可阶段性地“冻结”) 因素:客户业务、竞争形式、技术发展、规章制度…… ——要求设计结果对变化有弹性 设计如何适应不可预见的变化? ——把易变部分和较稳定的部分隔离, 将变化的影响限制在局部 易变性:服务>接口>属性>类
四、OOA与00D的关系 1、0OA与ooD的分工 两种不同的观点 第二种观点的理由: 第二种观点 (1)在各种分析/设计方法中 做什么”和“怎么做”实际上 分析设计 没有严格的划分” 第 问题域与与实现有 系统责任关的因素 2)过分强调“分析不考虑怎 种分做 么做”将使某些必须在oOA考虑 观 什 的问题得不到完整的认识。 点析么 (3)由于00方法表示形式的一 致,不存在把细化工作留给设计 设:怎 人员的必然理由。 么 做 (4)避免重复地认识同一事物, 并有利于分析结果的复用。 关键问题:对象的特征细节(如属 例: Rumbaugh方法 性的数据类型和服务流程图),是 在分析时定义还是在设计时定义? (OMT 和coad/ Yourdon方
1、OOA与OOD的分工 ——两种不同的观点 做 什 么 怎 么 做 问题域与 系统责任 与实现有 关的因素 分 析 设 计 第 一 种 观 点 分 析 设 计 第二种观点 第二种观点的理由: (1)在各种分析/设计方法中 “做什么”和“怎么做”实际上 没有严格的划分”。 (2)过分强调“分析不考虑怎 么做”将使某些必须在OOA考虑 的问题得不到完整的认识。 (3)由于OO方法表示形式的一 致,不存在把细化工作留给设计 人员的必然理由。 (4)避免重复地认识同一事物, 并有利于分析结果的复用。 关键问题:对象的特征细节(如属 性的数据类型和服务流程图),是 在分析时定义还是在设计时定义? 例:Rumbaugh方法 (OMT) 和Coad/ Yourdon方 法 四、 O OA与OOD的关系
2、一致的概念与表示法 前端0OA可以全部用OO概念建模; 后端OOP可以全部用OOPL支持的OO概念编程 OOD是承前启后中间环节 使用与○OA和○OP—致的概念建立完整的、可实现的 设计模型
2、一致的概念与表示法 前端——OOA 可以全部用OO概念建模; 后端——OOP 可以全部用OOPL支持的OO概念编程 。 OOD是承前启后中间环节 ——使用与OOA和OOP一致的概念建立完整的、可实现的 设计模型
3、不同的目标、内容和抽象层次 内容与目标: OOA—主要内容是研究问题域和用户需求,运用面向 对象的观点和原则发现问题域中与系统责任有关的对象, 以及对象的特征和相互关系。目标是建立一个直接映射问 题域,符合用户需求的OOA模型。 ooD主要内容是以OOA模型为基础,按照实现的要 求进行设计决策,包括全局性的决策和局部细节的设计。 目标是产生一个满足用户需求,并且完全可实现的OOD 模型。 全局性设计决策:体系结构、分布方案、并发控制、人机 交互、数据管理等。OOD方法应支持用户以OO概念表达 对这些问题的设计。 局部细节的设计:对每个对象类的每个属性和每个服务给 出详细的定义
3、不同的目标、内容和抽象层次 内容与目标: OOA——主要内容是研究问题域和用户需求,运用面向 对象的观点和原则发现问题域中与系统责任有关的对象, 以及对象的特征和相互关系。目标是建立一个直接映射问 题域,符合用户需求的OOA模型。 OOD——主要内容是以OOA模型为基础,按照实现的要 求进行设计决策,包括全局性的决策和局部细节的设计。 目标是产生一个满足用户需求,并且完全可实现的OOD 模型。 全局性设计决策:体系结构、分布方案、并发控制、人机 交互、数据管理等。OOD方法应支持用户以OO概念表达 对这些问题的设计。 局部细节的设计:对每个对象类的每个属性和每个服务给 出详细的定义