[信息与通信]第5章 总体设计.ppt

[信息与通信]第5章 总体设计

第五章 总体设计 本章 内容 5.1 设计过程 5.2 设计原理 5.3 启发规则 5.4 描绘软件结构的图形工具 5.5 面向数据流的设计方法 5.6 小结 习题 要求 : 掌握概要设计过程、设计原理、模块化方法及模块独立性原则、软件结构的确定。 重点: 模块独立性原则。 难点: 软件结构的确定。 结构化设计 传统的软件工程方法学采用结构化设计技术完成软件设计(总体设计和详细设计)工作。结构化设计技术的基本要点如下: 软件系统由层次化结构的模块构成 模块是单人口和单出口的 构造和联结模块的基本准则是模块独立 用图来描述软件系统的结构,并且使软件结构与问题结构尽量一致 总体设计任务 系统方案设计 设想实现目标系统的各种可能方案。 根据系统规模和目标综合考虑经济、技术、操作等各种因素,从设想的供选择的方案中选取若干个合理的方案。 综合分析、对比所选取的各种合理方案的利弊,从中选出一个最佳方案,并制定最佳方案的详细实现计划。 体系结构设计 设计软件的结构,确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。 总体设计的基本目的就是回答“概括地说,系统应该如何实现?” 总体设计必要性(详细设计之前):站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,降低成本、提高质量。 5.1 设计过程 两个主要阶段组成: 系统设计阶段:确定系统的具体实现方案; 结构设计阶段:确定软件结构。 典型的总体设计过程包括下述9个步骤: 1. 设想供选择的方案 以数据流图为基础,寻找实现目标系统的各种不同的方案。 由需求分析的数据流图作为出发点,把数据流图中的处理分组的各种可能的方法,抛弃在技术上行不通的分组方法,提供可供选择的物理系统。如P46图2.8、2.9所示。 2. 选取合理的方案 至少选取低成本、中等成本和高成本的三种方案。 对每个合理的方案分析员都应该准备下列资料: (1) 系统流程图; (2) 组成系统的物理元素清单; (3) 成本/效益分析; (4) 实现这个系统的进度计划。 3. 推荐最佳方案 推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。 提请使用部门负责人进一步审批之后,将进入总体设计过程的下一个重要阶段——结构设计。 4. 功能分解 对程序的设计通常分为两个阶段完成:结构设计和过程设计。 结构设计:确定程序由哪些模块组成,以及这些模块之间的关系。总体设计阶段的任务 过程设计:确定每个模块的处理过程。详细设计阶段的任务 为确定软件结构,需要从实现角度把复杂的功能进一步分解。 经过分解之后应该使每个功能对大多数程序员而言都是明显易懂的。 功能分解导致数据流图的进一步细化,同时用IPO图简要描述细化后每个处理的算法。 5. 设计软件结构 程序中一个模块完成一个适当的子功能,应该把模块组织成良好的层次系统。 软件结构(即由模块组成的层次系统)可以用层次图或结构图来描绘,第5.4节将介绍这些图形工具。 如果数据流图已经细化到适当的层次,可以直接从数据流图映射出软件结构,这就是第5.5节中将要讲述的面向数据流的设计方法。 6. 设计数据库 对于需要使用数据库的应用系统,软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。 7. 制定测试计划 开发早期考虑测试问题,可提高软件的可测试性。 8. 书写文档 (1) 系统说明。主要内容包括: 系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本/效益分析; 精化的数据流图,用层次图或结构图描绘的软件结构,用IPO图描述的各个模块的算法,模块间的接口关系等。 (2) 用户手册 (3) 测试计划 (4) 详细的实现计划 (5) 数据库设计结果 9. 审查和复审 5.2 设计原理 好的设计准则 模块化 抽象 逐步求精 信息隐藏和局部化 模块独立 5.2.1 模块化 模块: 是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。 模块化: 把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。 模块化的根据:把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。 设函数C(x)定义问题x的复杂程度,函数E(x)确定解决问题x需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)C(P2),显然E(P1)E(P2)。 规律:C(P1+P2)C(P1)+C(P

文档评论(0)

1亿VIP精品文档

相关文档