You are on page 1of 1

从⾯向对象分析(OOA)到⾯向对象设计(OOD)

从OOA到OOD是对现实世界的进⼀步建模。从概念上,OOA主要是对现实世界的问题空间建模,其分析侧重于整体,较为粗糙(粒度
较⼤)的研究。⽽OOD则要求对特定的解空间建模,通常OOD⼜可分为概要的(或总体的)OOD 和详细的OOD两个阶段。OOA是完全独
⽴于编程语⾔,概要的OOD 仍保持较⼤部分独⽴于编程语⾔的特点、详细的OOD则与编程语⾔有密切关系。显然,若能采⽤⾯向对象的
编程语⾔,会更有利于OOD的编程模块的设计。

在⾯向对象系统中,模块、数据结构、接⼝等都集中地体现在类和类层次结构中,系统开发的全过程实际上都与类和类层次结构直接相
关,因为它们正是⼀个⾯向对象系统的基础与核⼼。例如,上⾯介绍的Goad⽅法尽管没有引⼊类和类层次结构的术语,但事实上已经在分
类结构、属性、服务、消息关联等概念中,体现了类和类层次结构的基本特征。在⾯向对象系统中,虽然可以⽤类和类层次结构来统⼀作为
各个开发阶段的⼯作对象,但仍然有必要在抽象程度和层次上加以明确的区分,以利于把握重点,提⾼系统开发的效率。从这个意义上讲,
围绕类和类层次结构,⾯向对象系统开发的各个阶段承担着不同层次的任务。

(1)分析阶段:通过对象的认定,确定问题空间中应当存在的类和类层次结构;
(2)设计阶段:通过类的认定和类层次结构的组织,确定解空间中应当存在的类和类层次结构,并确定外部接⼝和主要的数据结构。
(3)编码阶段:实现或重⽤类和类层次结构,包括增加必要的内部⽅法和数据结构;
(4)维护阶段:根据维护需要,回复到上述阶段,以递增的⽅式对相应的类和类层次进⾏扩充和修改。

因此OOD是采⽤⾯向对象概念,以类和类层次结构为⼯作对象的软件设计⽅法,它是以抽象数据类型实现的结构化集合的软件系统。类
是抽象数据的实现⽽不是抽象数据类型本⾝,集合隐含着类是作为构成软件系统的模块,⽽且可以独⽴于系统的定义。因⽽,同⼀个类可⽤
于不同的系统,⽽对要设计的系统则可选择适合的类所组成,⼀旦这些类被选中,它们之间就建⽴重要的关系(即类层次关系)。

OOD的主要任务之⼀就是在认定对象的基础上,把对象的特征抽象到⼀个类中。然后,⼀些类将与另⼀个(些)类产⽣继承相关,构成
类层次结构。⼀些这样的类层次结构,⼜可以构成类库。最后,⼜可以对类库的组织作进⼀步推敲,使之成为可⽤于特定应有范畴的构架。
OOD的中⼀项主要任务就是提供对重⽤的⽀持。这⾥是⽀持重⽤的类的外部接⼝和组织结构,不是具体的实现

You might also like