《软件工程导论》第五章总体设计.pptx
总体设计第五章山东师范大学信息科学与工程学院王化雨09-10学年第一学期张海藩《软件工程导论》(第5版)2009年10月
2025/5/252主要内容概述设计过程设计原理启发规则描述软件结构的图形工具面向数据流的设计方法
将分析模型转换为设计2025/5/253数据词典数据流图实体关系图状态转换图加工规格说明控制规格说明数据对象描述过程设计接口设计体系结构设计数据设计
软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构软件设计的必要性
从工程管理的角度来看,软件设计分两步完成。软件设计的两个阶段2025/5/255概要设计,将软件需求转化为数据结构和软件的系统结构。01详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。02
总体设计的任务2025/5/256经过需求分析,系统必须“做什么”已经清楚了,现在要决定“怎样做”。总体设计又称为概要设计或初步设计。总体设计的任务:划分出组成系统的物理元素:程序、文件、数据库、人工过程、文档等。设计软件的结构,即确定系统中每个程序是由哪个模块组成,模块间的关系如何。
总体设计的步骤2025/5/257以需求分析中得到的数据流图为基础,寻找实现目标系统的各种不同方案;为其中每一个合理方案,准备一份系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,并制定实现方案的进度计划;分析员应综合分析比较这些合理的方案,从中选择一个最佳方案向用户推荐;对于用户接受的方案,分析员应多方改进,进行必要的数据库设计,确定测试要求并制定测试计划。
总体设计的必要性2025/5/258可以站在全局的高度,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。
主要内容2025/5/259概述设计过程设计原理启发规则描述软件结构的图形工具面向数据流的设计方法
通常由两个主要阶段组成:总体设计的阶段2025/5/251001系统设计阶段,确定系统的具体设计方案;02结构设计阶段,确定软件结构。
总体设计的9个步骤2025/5/2511设想供选择的方案01选取合理的方案02推荐最佳方案03功能分解04设计软件结构05设计数据库06制定测试计划07书写文档08审查和复审09
1.设想供选择的方案2025/5/2512在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案,一旦选出了最佳的方案,将能大大提高系统的性能/价格比。需求分析阶段得出的数据流图是总体设计的极好的出发点。设想供选择的方案的一种常用的方法是:设想把数据流图中的处理分组的各种可能方法,抛弃在技术上行不通的方法;余下的分组方法代表可能的实现策略,并且可以启示供选择的物理系统。
2.选择合理的方案2025/5/2513通常,选取的这些方案中至少应包括低成本、中成本和高成本的三种方案类型。在判断哪些方案合理时应该考虑在前面的问题定义、可行性研究、需求分析阶段确定的工程规模和目标。必要时需要进一步征求用户的意见。应该从前一步得到的一系列供选择的方案中选取若干个合理的方案:01系统流程图;组成系统的物理元素清单;成本/效益分析;实现这个系统的进度计划。对每个合理方案,分析员都要准备4方面资料:02
3.推荐最佳方案2025/5/2514综合分析对比各种合理方案的利弊选择一个最佳方案向用户推荐为推荐的方案制定详细的实现计划分析员应该:01用户和有关专家应该认真审查。如果确认该方案确实符合用户的需要,并且在现有条件下完全能够实现,则应该提请使用部门负责人进一步审批。在使用部门负责人也接受了分析员所推荐的方案之后,方可进入总体设计过程的下一步工作,即结构设计阶段。对于分析员推荐的最佳方案:02
4.功能分解2025/5/2515为了实现目标系统,必须设计出组成这个系统的所有程序和文件。对于程序(特别是复杂的大型程序)的设计,通常分为两个阶段:结构设计:确定系统由哪些模块组成,以及这些模块之间的相互关系。过程设计:确定每个模块的处理过程。其中,结构设计是总体设计阶段的任务,而过程设计则是详细设计阶段的任务。为确定软件结构:首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个过程,如果一个处理的功能过分复杂,必须把它的功能适当地分解。分解后的每个功能对大多数程序员而言都是明显易懂的。功能分解导致数据流图的进一步细化,同时还应该用IPO图或其他适当工具简要描述细化后每个处理的算法。
5.设计软件结构2025/5/2516通常程序中,一个模块完成一个适当的子功能