总体设计的过程
出处:按学科分类—工业技术 企业管理出版社《工程师手册》第988页(3191字)
总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。总体设计的典型过程如下:
1.设想供选择的方案
如何实现要求的系统呢?在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案,一旦选出了最佳的方案,将能大大提高系统的性能/价格比。
需求分析阶段得出的数据流图是总体设计的极好的出发点。数据流图中的某些处理可能可以逻辑地归并在一个自动化边界内作为一组,另一些处理可能可以放在另一个自动化边界内作为另一组。这些自动化边界通常意味着某种实现策略。
设想供选择的方案的一种常用的方法是,设想把数据流图中的处理分组的各种可能的方法,抛弃在技术上行不通的分组方法(例如,组内不同处理的执行时间不相容),余下的分组方法代表可能的实现策略,并且可以启示供选择的物理系统。
在总体设计的这个步骤中分析员仅仅一个边界一个边界地设想并且列出供选择的方案,并不评价这些方案。
2.选取合理的方案
应该从前一步得到的一系列供选择的方案中选取若干个合理的方案,通常至少选取低成本、中等成本和高成本的三种方案。在判断哪些方案合理时应该考虑在问题定义和可行性研究阶段确定的工程规模和目标,有时可能还需要进一步征求用户的意见。
对每个合理的方案分析员都应该准备下列四份资料:
(1)系统流程图;
(2)组成系统的物理元素清单;
(3)成本/效益分析;
(4)实现这个系统的进度计划。
3.推荐最佳方案
分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。
用户和有关的技术专家应该认真审查分析员所推荐的最佳系统,如果该系统确实符合用户的需要并且是在现有条件下完全能够实现的,则应该提请使用部门负责人进一步审批。在使用部门的负责人也接受了分析员推荐的方案之后,将进入总体设计过程的下一个重要阶段一结构设计。
4.功能分解
为了最终实现目标,必须设计出组成这个系统的所有程序和文件(或数据库)。对程序(特别是复杂的大型程序)设计,通常分为两个阶段完成:首先进行结构设计,然后进行过程设计。结构设计确定程序由哪些组成,以及这些模块之间的关系;过程设计确定每个模块的处理过程。结构设计是总体设计阶段的任务,过程设计是详细设计阶段的任务。
为确定软件结构首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理。如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。一般说来,经过分解之后应该使每个功能对大多数程序员而言都是明显易懂的。功能分解导致数据流图的进一步细化,同时还应该用IPO图或其他适当的工具简要描述细化后每个处理的算法。
5.设计软件结构
通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。软件结构(即由模块组成的层次系统)可以用层次图或结构图来描绘。
6.数据库设计
对于需要使用数据库的那些应用领域.分析员应该在需求分析阶段对系统数据要求所做的分析基础上进一步设计数据库。数据库设计通常包括下述四个步骤:
(1)模式设计
模式设计的目的是确定物理数据库结构。第三范式形成的实体及关系数据模型是模式过程的输入,模式设计的主要问题是处理具体的数据库管理系统的结构约束。
(2)子模式设计
子模式是用户使用的数据视图。
(3)完整性和安全性设计
(4)优化
主要目的是改进模式和子模式以优化数据的存取。
数据库设计是一项专门的技术,详细讨论这项技术已经超出本书的范围,需要深入了解数据库分析设计技术的读者,请参阅有关的专着。
7.制定测试计划
在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。
8.书写文档
应该用正式的文档记录总体设计的结果,在这个阶段应该完成的文档通常有下述几种:
(1)系统说明
主要内容包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本/效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用IPO图或其他工具(例如,PDL语言)简要描述的各个模块的算法,模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系等等。
(2)用户手册
根据总体设计阶段的结果,修改更正在需求分析阶段产生的初步的用户手册。
(3)测试计划
包括测试策略,测试方案,预期的测试结果,测试进度计划等等。
(4)详细的实现计划
(5)数据库设计结果
如果目标系统中包含数据库,则应该用正式文档记录数据库设计的结果。通常包括数据库管理系统的选择、模式、子模式、完整性和安全性、以及优化方法等等。
9.审查和复审
最后应该对总体设计的结果进行严格的技术审查,在技术审查通过之后再由使用部门的负责人从管理角度进行复审。