详细设计说明书的编写
第七章 详细设计 说明书的编写
软件学院
学习目标
❖ 一、了解详细设计的任务和步骤 ❖ 二、详细设计说明书的内容要求和编写指南 ❖ 三、掌握用CASE工具绘制算法/流程图的
方法
7.1 详细设计概述
❖ 在概要设计阶段,应设计系统的物理实现方案、软 件的整体结构和存储数据结构。通过这个阶段的工 作将划分出组成系统的物理元素——程序、文件、 数据库、人工过程和文档等等,每个物理元素仍然
3.输出项
给出每一个输出项的特性,包括名称、标识、数据 的类型和格式,数据值的有效范围,输出的形式、 数量和频度,输出媒体、对输出图形及符号的说明、 安全保密条件等等。
4.算法
详细说明本程序所选用的算法,具体的计算公式和 计算表等)辅以必要的说明 来表示本程序的逻辑流程。
详细设计阶段的目标及任务
❖ 详细设计阶段的任务是:
①为每个模块确定采用的算法。选择合适的工具表达算 法,写出模块的详细过程性描述。
②确定每个模块使用的数据结构。 ③确定模块接口的细节,包括外部接口,用户界面,系
统内部其他模块的接口以及模块输入数据、输出数据和 局部数据的全部细节。在详细设计结束后,应该把上述 内容写入详细设计说明书,并且通过复审形成正式文档, 并交付给下一阶段(编码阶段)作为工作的依据。 ④为每个模块设计出一组测试计划。
1.程序描述
给出对该程序的简要描述,主要说明安排设计本程 序的目的、意义,并且还要说明本程序的特点(如, 是常驻内存还是非常驻?是否子程序?是可重入的还 是不可重入的?有无覆盖要求?是/顷序处理还是并 发处理等)。有时也可在功能项里进行描述。
2.输入项
给出每一个输入项的特性,包括名称、标识、数据 的类型和格式、数据值的有效范围、输入的方式、 数量和频度、输入媒体、输人数据的来源和安全保 密条件等等。
❖ 总的说来,还是应该以程序模块的功能划分恰当作 为基本原则,编码之前,程序语句的行数恐怕是较 难准确估计的。
功能模块内部的结构
❖ 功能模块内部的结构有调用和组合两种。
调用结构的功能模块具有相应的程序编码实体,它对可 能有的内部模块有调用关系,外部其他功能模块对它只 能是整体调用。
组合结构的功能模块(虚模块)由各自独立而性质相关的程 序组合而成,它没有对应的程序编码实体,外部其他功 能模块可直接调用其中的程序。
本报告由以下表格组成:
❖ 在详细设计说明书的引言中,要说明以下几方面的问 题:
①说明编写这份详细设计说明书的目的,指出预期的读者。 ②说明待开发软件系统的名称。本项目的任务提出者、开发
者、用户和运行该程序系统的计算中心。
③列出本文件中用到的专门术语的定义和外文首字母组词的 原词组。
④列出有关的参考资料,如,本项目的经核准的计划任务书 或合同、上级机关的批文;属于本项目的其他已发表的文件; 本文件中各处引用到的文件资料,包括所要用到的软件开发 标准,列出这些文件的标题、文件编号、发表日期和出版单 位,说明能够取得这些文件的来源。
❖ 详细设计的目标不仅仅是逻辑上正确地实现每个 模块的功能,更重要的是设计出的处理过程应该 尽可能简明易懂。结构程序设计技术是实现上述 目标的关键技术,因此是详细设计的基础。
7.2 内容要求和编写指南
❖ 详细设计中的程序系统结构图是概要设计
说明书中模块结构图和模块描述表的延伸。 ❖ 软件概要设计阶段划分的各个软件功能模块,
小结
❖ 必须明确,详细设计阶段的任务还不是具 体地编写程序,而是要设计出程序的“蓝 图”,以后程序员将根据这个蓝图写出实 际的程序代码。因此,详细设计的结果基 本上决定了最终的程序代码的质量。考虑 程序代码的质量时必须注意,程序的“读 者”有两个,那就是计算机和人。
❖ 在软件的生命周期中,设计测试方案,诊断程序 错误,修改和改进程序等等必须首先读懂程序。 实际上对于长期使用的软件系统而言,人读程序 的时间可能比写程序的时间还要长得多。因此, 衡量程序的质量不仅要看它的逻辑是否正确,性 能是否满足要求,还要看它是否容易阅读和理解。
在详细设计阶段可能需要进一步细分,直到 确定每一个可编码的程序模块为止。
程序模块的规模
❖ 模块的功能独立性原则是首先要注意的准则。 ❖ 一般认为从几十条到上百条编码语句是一个程序模
块的恰当规模。
程序模块的规模过大,可能是仍然包含了一些可以分解 的子功能的缘故,不利于阅读也不利于纠错。而程序模 块的规模过小,会增大程序运行开销。
6.测试计划
❖ 说明对本程序进行单体测试的计划,包括对测试 的技术要求、输入数据、预期结果、进度安排、 人员职责、设备条件驱动程序及模块等的规定。
处于黑盒子级,这些黑盒子里的具体内容留到详
细设计阶段来细化。
❖ 从软件开发的工程化观点来看,在使用程序设计语 言编制程序以前,需要对所采用算法的逻辑关系进 行分析,设计出全部必要的过程细节,并给予清晰 的表达,使之成为编码的依据。
详细设计
❖ 详细设计也叫做过程设计或程序设计,它不 同于编码或编程。在详细设计阶段,要决定 各个模块的实现算法,并精确地表达这些算 法。
❖ 决定各个模块的实现算法涉及所开发项目的
具体要求和对每个模块规定的功能以及算法
的设计和评价。表达这些算法需要给出适当
的算法描述,为此应提供过程设计的表达工 具。
详细设计阶段的目标
❖ 详细设计阶段的根本目标:
确定应该怎样具体地实现所要求的系统,也就是 说,经过这个阶段的设计工作,应该得出对目标 系统的精确描述,从而在编码阶段可以把这个描 述直接翻译成用某种程序设计语言书写的程序。
❖ 功能模块的设置是为了简化软件结构,对功能模块 的规模也应适度控制。当功能模块就是程序模决, 而没有内部程序时,就没有程序系统结构图。
❖ 以下是详细设计说明书的目录,可以看出, 它由引言、程序系统结构图、程序说明三部 分组成。
❖ [项目名称]
详细设计说明书
本报告说明确定软件系统的总体结构、数据结 构及其他全局性的考虑,所设计的系统应覆 盖既定的软件需求,经过评审通过后,本说 明是后续实现的根据。