面向对象分析与设计
上QQ阅读APP看书,第一时间看更新

1.3.3 OOA与OOD之间的关系

面向对象分析(OOA)和面向对象设计(OOD)分别是面向对象开发过程的两个阶段,二者在概念、模型表示方法和建模技术等方面均没有本质的区别,这使得二者的区别和界限越来越不清楚。

由于面向对象设计的实质是对在分析阶段获得的类模型的细化过程,并且还是一个循环迭代的过程,因此更容易造成二者的界限模糊。那么,用什么确定它们的边界?

首先,OOA和OOD分别是软件生命周期的两个不同阶段,它们当然具有不同的目标、责任和策略。

从软件工程的角度来看,面向对象分析和设计分别对应了软件生命周期里面的系统分析和系统设计两个阶段,所以二者之间的本质区别是,面向对象分析要解决的是系统需要做什么,面向对象设计解决的是系统应该如何做。

面向对象分析属于系统分析阶段,其实质是识别问题域中为实现系统目标所需要的对象及其相互关系,并分析这些对象的状态和行为。此时,通常不需要考虑与系统的具体实现相关的因素(如程序设计语言、数据库、外部设备等),这样可以使OOA模型独立于具体的实现。

面向对象设计则属于系统设计阶段,它主要解决的是与系统实现有关的问题,它的主要任务是针对具体的软硬件构成环境对OOA模型进行细化,最终获得系统的设计模型。OOD模型是与实现有关的,相关因素通常包括软件架构、组件技术、操作系统、程序设计语言数据库管理系统、人机界面和外部设备等。