1.3.2 面向对象设计(OOD)

面向对象设计是一种软件设计方法,其基本内容包括一个面向对象分解的过程,也包括一个用于展现目标系统结构的逻辑模型、物理模型、静态模型和动态模型的表示法。

面向对象设计的本质是:以在系统分析阶段获得的需求模型和概念模型为基础,进一步修改和完善这些模型,设计目标系统的结构模型和行为模型,为进一步实现目标系统奠定基础。

需要指出的是,在面向对象设计领域,无论是设计类还是设计对象,都没有一个统一的方法。任何软件产品的最终设计都是对多种因素充分考虑和选择的结果。

但是面向对象分析技术提出了一些有用并且值得推荐的实践和经验法则,可以用于确定某个特定领域相关的类和对象。

人们通常将面向对象设计过程划分为系统结构设计和详细设计两个主要部分,其中,系统结构设计包括体系结构设计和软件结构设计两步。体系结构设计主要指系统的软硬件结构设计。体系结构是对系统结构的一种抽象,强调建立具有良好的普适性、高效性和稳定性的系统。设计过程中,系统结构设计可以归结为选择合适的体系结构或在必要时自行设计与项目相适应的体系结构。软件结构设计指的是在系统体系结构的基础上设计软件本身的结构,这在本质上就是设计软件的对象(类)结构。

一个完整的面向对象设计模型通常被划分成人机交互界面、问题域、数据管理和任务管理四个组成部分。其中,界面交互部分用于设计系统的人机交互界面,同时也包括对系统与外部系统或设备之间交互部分的设计。问题域部分对应于分析模型的业务逻辑部分,是对分析模型中逻辑模型的进一步细化。数据管理部分则主要用于实现实体模型中数据的存储和管理。最后,任务管理部分则主要用于系统的作业调度、流程控制和运行管理等。

图1-3给出了系统设计模型的基本结构。其中,界面交互子系统、问题域子系统和数据管理子系统的输入分别来自于分析模型中的视图模型、逻辑模型和实体模型。面向对象设计阶段的主要任务就是将在OOA阶段得到的需求问题的视图模型、逻辑模型和实体模型三个模型,演变为界面交互、问题域和数据管理三个子系统。这三个子系统都是与领域问题相关,因此称为“领域结构设计”,也称“底层设计”。任务管理子系统是管理、协调三个子系统运行环境的系统,属高层设计,也称体系结构设计。

图1-3 OOD模型的组成