输入OOA模型 OOD 过程 问题域部分设计 人机交互部分设计 任务管理部分设计 数据管理部分设计 构件化与系统部署 向OOP输出OOD模型
问题域部分设计 输入OOA模型 人机交互部分设计 任务管理部分设计 数据管理部分设计 构件化与系统部署 向OOP输出OOD模型 OOD 过程
OOA与OOD的关系 致的概念与表示法 OOA和OOD采用一致的概念和表示法,从而不存在分析 与设计之间的鸿沟。 不同的内容、目标和抽象层次 √OOA:研究问题域和用户需求,运用面向对象的观点发现问题域中 与系统直接有关的对象,以及对象的特征和相互关系。目标是建立 个直接映射问题域,符合用户需求的O○A模型 √oOD:在○OA模型基础上,针对选定的实现平台进行系统设计,按 照实现的要求进行具体的设计,目标是产生一个能够在选定的软硬件 平台上实现的OOD模型 √○OA模型:抽象层次较高,忽略了与实现有关的因素 √○○D模型:抽象层次较低,包含了与实现平台有关的细节 10
10 OOA与OOD的关系 ◼ 一致的概念与表示法 OOA和OOD采用一致的概念和表示法,从而不存在分析 与设计之间的鸿沟。 ◼ 不同的内容、目标和抽象层次 ✓OOA:研究问题域和用户需求,运用面向对象的观点发现问题域中 与系统直接有关的对象,以及对象的特征和相互关系。目标是建立一 个直接映射问题域,符合用户需求的OOA模型。 ✓OOD:在OOA模型基础上,针对选定的实现平台进行系统设计,按 照实现的要求进行具体的设计,目标是产生一个能够在选定的软硬件 平台上实现的OOD模型。 ✓OOA模型:抽象层次较高,忽略了与实现有关的因素 ✓OOD模型:抽象层次较低,包含了与实现平台有关的细节
111面向对象设计的准则 口所谓优秀设计,就是权衡了各种因素,从而使得系统在其 整个生命周期中的总开销最小的设计。 口对大多数软件系统而言,60%以上的软件费用都用于软件 维护,因此,优秀软件设计的一个主要特点就是容易维护。 口在第五章介绍了软件设计的几条基本原理,这些原理在进 行面向对象设计时仍然成立,但是增加了一些与面向对象 方法密切相关的新特点,从而具体化为下列的面向对象设 计准则:
11.1 面向对象设计的准则 所谓优秀设计,就是权衡了各种因素,从而使得系统在其 整个生命周期中的总开销最小的设计。 对大多数软件系统而言,60%以上的软件费用都用于软件 维护,因此,优秀软件设计的一个主要特点就是容易维护。 在第五章介绍了软件设计的几条基本原理,这些原理在进 行面向对象设计时仍然成立,但是增加了一些与面向对象 方法密切相关的新特点,从而具体化为下列的面向对象设 计准则:
1.模块化 ■对象就是模块。它是把数据结构和操作这些数据的方法紧密 地结合在一起所构成的模块。 2.抽象 面向对象方法不仅支持过程抽象,而且支持数据抽象。类实 际上是一种抽象数据类型。此外,某些面向对象的程序设计 语言还支持参数化抽象(把数据类型作为参数)。 3.信息隐藏 在面向对象方法中,信息隐藏通过对象的封装实现:类结构 分离了接口与实现,从而支持了信息隐藏
1. 模块化 ◼ 对象就是模块。它是把数据结构和操作这些数据的方法紧密 地结合在一起所构成的模块。 2. 抽象 ◼ 面向对象方法不仅支持过程抽象,而且支持数据抽象。类实 际上是一种抽象数据类型。此外,某些面向对象的程序设计 语言还支持参数化抽象(把数据类型作为参数)。 3. 信息隐藏 ◼ 在面向对象方法中,信息隐藏通过对象的封装实现:类结构 分离了接口与实现,从而支持了信息隐藏
4.弱耦 ■耦合指不同对象之间相互关联的紧密程度。 般说来,对象之间的耦合可分为两大类 √交互耦合 √如果对象之间的耦合通过消息连接来实现,则这种耦合就是交互耦合。 交互耦合应尽可能松散:尽量降低消息连接的复杂程度;尽量减 少消息中的参数个数,降低参数的复杂程度;减少对象发送(或 接收)的消息数。 √继承耦合 与交互耦合相反,应该提高继承耦合程度 √继承是一般化类与特殊类之间耦合的一种形式。通过继承关系结合起 来的基类和派生类,构成了系统中粒度更大的模块。彼此之间应该越 紧密越好
4. 弱耦合 ◼ 耦合指不同对象之间相互关联的紧密程度。 ◼ 一般说来,对象之间的耦合可分为两大类: ✓ 交互耦合 ✓ 如果对象之间的耦合通过消息连接来实现,则这种耦合就是交互耦合。 ✓ 交互耦合应尽可能松散:尽量降低消息连接的复杂程度;尽量减 少消息中的参数个数,降低参数的复杂程度;减少对象发送(或 接收)的消息数。 ✓ 继承耦合 ✓ 与交互耦合相反,应该提高继承耦合程度。 ✓ 继承是一般化类与特殊类之间耦合的一种形式。通过继承关系结合起 来的基类和派生类,构成了系统中粒度更大的模块。彼此之间应该越 紧密越好