面向对象的设计是以分析模型为基础,将分析类转化为系统设计元素,找出设计类、子系统和子系统的接口,设计用户界面和数据库。
问题域设计
将面向对象分析产生的类图直接变成设计的问题域部分,并根据具体的实现环境,对其进行调整、增补和改进。
(1) 在类库中查找已有的可复用的类,建立该类与问题域所定义的类之间的关系;
(2) 引入一个附加类,它含有服务的公共集合,服务的细节在子类中定义;
(3) 根据编程语言的特点,对于多继承关系进行调整,可以用聚合和关联分解多继承,也可以将多继承调整为单继承;
(4) 确定各种关系的实现方式,如定义指针实现关联关系等;
(5) 为了改进系统执行的性能,可以考虑为类增加保存临时结果的属性,或者为类增加与实现有关的底层服务;
(6) 为了达到实用,可以考虑一些用于为其他类服务的类,如进行输入数据验证的类。
用户界面设计
根据用户要求和具体的GUI,设计系统的人机交互界面。
(1) 建立初始命令层,包括菜单条、菜单项和快捷键等;
(2) 设计需要生成的报表和报告格式,每一种报表或报告应该对应一个类;
(3) 设计安全、登录、设置和业务功能等的窗口,每一种窗口对应于一个类;
(4) 根据所选择的编程语言,建立上述设计的界面交互类。
任务管理设计
对系统中的任务管理进行建模,包括:
(1) 识别由事件驱动的任务;
(2) 识别由时钟驱动的任务;
(3) 识别优先任务和关键任务;
(4) 定义各种任务及其协调者,描述任务之间的通信。
数据管理设计
为了存储问题域的持久对象,封装这些对象的查找和存储机制,以及为了隔离数据管理方案的影响,可以定义与数据存储系统交互的专门对象来负责对象存储和检索,也可以由对象本身进行存储管理。因此,需要根据所选择的数据库,建立数据模型,完成数据库设计。
|