4.2 总体设计的过程
总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件的结构。典型的总体设计过程包括以下9个步骤。
(1)设想供选择的方案。在总体设计阶段,系统分析员首先应该考虑各种可能的实现方案,并力求选出最佳方案。设想方案的出发点是数据流图,常用的做法是,设想把数据流图中的处理进行分组的各种可能的方法,抛弃在技术上行不通、不合理的分组方法,余下的分组方法代表可能的实现策略。
(2)选取合理的方案。从前一步到不同方案中选取若干个合理的方案,通常要包括低成本、中等成本和高成本的三种方案。在判断方案的合理性时,可依据可行性研究阶段确定的项目规模,有时可能还需要进一步征求用户的意见。
(3)推荐最佳方案。系统分析员应综合分析对比各种合理方案的利弊,推荐一个最佳方案,并为此方案制订详细的实现计划。用户和有关技术专家应认真审查分析员推荐的最佳方案,如果确实符合用户需求,且在现有技术条件下能够完全实现,则提请使用部门负责人进行审批。在审批通过后,方可进入总体设计的下一个重要阶段——结构设计。
(4)功能分级。结构设计的任务是确定目标系统由哪些模块组成,以及这些模块之间的逻辑关系。结构设计之后的过程设计属于详细设计阶段的任务,用于确定每个模块的处理过程。
为了确定软件的结构,首先应该从实现的角度把复杂的功能进一步分解。具体做法是,仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,则把它适当地分解成一系列比较简单的功能,整个分解过程实质上是对数据流图的进一步细化。在分解的过程中,还应该用IPO表简要地描述每个处理的算法。
(5)设计软件结构。设计软件结构就是要把软件的模块组织成良好的层次系统。在这个层次系统中,每一层模块都调用它下一层的模块,每个下层模块再调用更下层的模块,最下层的模块完成最具体的功能,从而实现程序的某个子功能,所有的子功能共同完成系统的完整功能。描述软件结构可以使用层次图或结构图。
如果数据流图已经细化到适当的层次(如果再分解就涉及过程设计的问题),则可以直接从数据流图映射出软件结构。
(6)数据库设计。对于需要使用数据库的应用领域,还要进行数据库设计。数据库的设计包括模式设计、子模式设计、完整性设计、安全性设计和优化处理等。
(7)制订测试计划。虽然是在设计阶段,但是提早考虑测试问题,能促使设计人员在设计时注意提高软件的可测试性。在总体设计阶段仅是利用黑盒测试法制订功能测试计划与测试策略。在详细设计时才编写详细的测试用例和测试计划。(https://www.daowen.com)
(8)编写文档。应该用正式的文档记录总体设计的结果,文档通常包括以下五种。
①系统说明。主要内容包括系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本/效益分析,对最佳方案的概括性描述,精华的数据流图,用层次图或结构图描绘的软件结构,用IPO表或PDL语言简要描述的各个模块的算法,模块间的结构关系,以及需求、功能和模块三者之间的交叉参照关系等。
②用户手册。根据总体设计的结果,修改更正在需求分析阶段产生的初步的用户手册。
③测试计划。包括测试策略、测试方案、预期结果、测试计划等。
④详细的实现计划。包括实现的各阶段所需要的时间、资源、人员配置等。
⑤数据库设计的结果。
(9)审查和复查。最后,应该对总体设计的结果进行严格的技术审查,在通过之后,再由使用部门负责人从管理的角度进行复审。
总体设计的典型整体过程如图4.2所示。

图4.2 典型总体设计过程