woxmh 2019-11-02
在面向对象分析阶段,已经针对用户需求建立起用面向对象概念描述的系统分析模型。在设计阶段,要考虑为实现系统而采用的计算机设备、操作系统、网络、数据库管理系统以及所采用的编程语言等有关因素,进一步运用面向对象的方法对系统进行设计,最后形成一个可以实现的设计模型,即面向对象设计模型。
在面向对象分析阶段,针对的是现实世界,把需求转化为面向对象概念所建立的模型,以易于理解问题域和系统责任,最终建立一个映射问题域,满足用户需求,独立于实现的OOA模型,面向对象的设计就是在面向对象分析的基础上运用面向对象方法主要解决与实现有关的问题,目标是产生一个符合具体实现条件的OOD模型。由于OOD以OOA为基础,且OOA与OOD采用一致的表示法,使得从OOA到OOD不存在转换,只需做必要的修改与调整。OOA与OOD之间不存在传统方法中分析与设计之间的鸿沟,二者能够紧密衔接。OOA与OOD之间不强调阶段划分,但是OOA与OOD有着不同的侧重点和不同的分工,并因此具有不同的开发过程及具体策略。“分析”只针对问题域和系统责任,不考虑实现有关的因素,建立一个独立于实现的OOA模型;”设计“则考虑与实现有关的问题,如选用的编程语言、数据库系统和图形用户界面等,建立一个针对具体实现的OOD模型。
在OOA 阶段只考虑问题域和系统责任,在OOD阶段则要考虑与具体实现有关的问题,这样做的目的是
为达到上述目的,设计如下的面向对象设计模型
从一个侧面观察OOD模型,它包括一个核心部分,即问题域部分;还包括四个外围部分,即人机交互部分、控制驱动部分、数据管理部分以及构件及部署部分。初始的问题域部分即为OOA模型,要按照实现条件对其进行补充与调整;人机交互部分即人机界面设计部分;控制驱动部分即用来定义和协调并发的各个控制流;数据管理部分用来对永久对象的存取建模;构件及部署部分中的构件模型用于描述构件以及构件之间的关系,部署模型用于描述结点、结点之间的关系以及构件在结点上的分布。
OOD过程
问题域部分是由与问题有关的对象构成,并且在特定的实现平台上提供用户所需功能的组成部分。它是在OOA模型基础上按实现的要求进行必要的修改、调整和细节补充而得到的。
问题域部分设计过程是:
设计内容及策略
(1)针对编程语言支持能力的调整:包括对继承的调整和对多态性的调整
(2)增加一般类,提供共同协议
(3)为实现复用采取的设计策略:直接复用;删除可复用类的多余信息;通过继承复用;删除多余信息,通过继承而复用
(4)提高性能:从数据传输时间、数据存取时间、数据处理时间三个方面考虑
(5)为实现对象永久存储所做的修改
(6)完善对象的细节:弥补OOA模型的不足;解决OOA结点推迟考虑的问题;设计对象的操作;设计表示关联的属性(一对一、一对多);设计表示整体-部分关系的属性
(7)定义对象实例
(8)修改或补充辅助模型及模型规约
人机交互部分突出人如何命令系统以及系统如何向用户提交信息。设计人机交互就是要设计输入与输出,其中所包含的对象(称作界面对象)以及其间的关系构成了系统的人机交互部分的模型。
人机界面的OO设计:一般是以一种选定的界面支持系统为基础,利用它所支持的界面构造成分,设计一个可满足人机交互需求、适合使用者特点的人机界面设计模型。
设计过程和策略:
面向对象的人机界面设计是在人机交互需求分析的基础上,以选定的界面支持系统为背景,选择实现人机交互所需的界面元素来构造人机界面,并用面向对象的概念和表示法来表示这些界面元素以及它们之间的关系,从而形成整个系统的OOD模型的人机交互部分
人机交互部分设计准则
ps:命令
基本命令:使用一项独立的系统功能的命令
命令步:在执行一条基本命令的交互过程中所包含的具体输入步骤
高层命令:一条命令是在另一条命令的引导下完成的
控制驱动部分由系统中全部主动类构成,这些主动类描述了系统中所有的主动对象,每个主动对象是系统中一个控制流的驱动者。一个控制流就是一个进程(既是处理机资源的分配单位又是其他资源的分配单位)或者线程(仅仅是处理机资源的分配单位)
设计过程和策略:
数据管理部分负责将应用系统中的对象在选定的数据管理系统中进行存储,并将存储结果恢复到应用系统,将实现数据存储、检索、管理、维护的系统称为数据管理系统,包括文件系统和数据库系统两大类。
由于目前面向对象数据库还没有广泛使用,所以我们还是以关系型数据库为主,存储检索数据。
数据库(DB):数据库是长期存储在计算机内、有组织、可共享的数据集合
数据库管理系统(DBMS):DBMS是用于建立、使用和维护数据库的软件。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性
关系数据库与面向对象方法不匹配,原因在于:关系数据库不是全面支持面向对象中的全部概念,如类间关系(继承、多态)
非关系型数据库:优点是存储任何对象,缺点是对非关系型数据库很难进行结构化操作
面向对象数据库:采用面向对象数据模型的数据库称为面向对象数据库,支持面向对象的基本概念
数据库设计的基本流程:
构件图和部署图分别用于对系统进行构件设计和部署设计。
构件图设计:利用构件对面向对象系统物理实现方面建模,其中一个主要建模元素是制品,可以把制品分为工作产品制品(开发过程的产物,如源代码及数据文件等),可部署的制品(如动态链接库dll或可执行程序exe文件)。对具体的物理构件进行建模,直至能对产生的构件进行部署。
部署图设计:对系统的网络结构进行拓扑,也可以用它展示部署在结点上的构件。主要用于对嵌入式系统和分布式系统进行建模
具体可参考构件图和部署图的设计
参考书籍
《面向对象的系统分析》(第2版) 邵维忠 杨芙清 著
《UML面向对象技术教程》 王少锋 编著