1、编号:_版本:_详细设计说明书委托单位承办单位编写签名_ 年 月 日复查签名_ 年 月 日批准签名_ 年 月 日目录第 1 章 引言 01.1 编写目的 01.2 系统说明 01.3 术 语 01.4 参考资料 0第 2 章 软件结构 02.1 软件结构图 02.2 模块子结构图 02.3 模块清单 0第 3 章 模块设计 03.1 模块 1 (标识符) .03.1.1 模块概述 03.1.2 功能和性能(1、功能 2、性能) 03.1.2.1 (标识符)功能(图) 03.1.2.2 性能 03.1.3 输入/输出项 .03.1.3.1 输入项 03.1.3.2 输出项 03.1.4 数据结构
2、 03.1.4.1 全局数据结构 03.1.4.2 局部数据结构 03.1.5 算法 03.1.6 限制条件 03.1.7 测试计划 03.2 模块 2.0详细设计说明书1第 1 章 引言1.1 编写目的软件详细设计说明书的一般编写目的可直接引用下面一段话: “说明一个软件系统各个层次中的每个程序(每个模块或子程序)的设计考虑。 ” 当然,作者可包含一些与问题相关的特殊目的,附于上述一段话的尾部 1.2 系统说明任务提出单位:开发单位:预期用户:1.3 术 语序 号 术 语 说明性定义 1.4 参考资料序号 资料名 文件编号 发表日期 出版单位详细设计说明书2第 2 章 软件结构2.1 软件结
3、构图它在两个层次上描述软件结构。首先,它包括概要设计阶段给出的程序结构,即把概要设计说明书软件结构图移植过来。其次,对应于详细设计阶段的模块功能分解任务,而得到模块子结构图,即模块的内部结构,这是功能分解的结果。这个抽象层次是必要的。理由有二:(1)在概要设计阶段,考虑的功能的”粒度 ”要粗些,总是忽略某些细节,而在详细设计阶段则必须给出全部细节,这时必会对某些复杂的功能进一步分解; (2)在设计算法时,会有一些用语方面的考虑。如:模块规模要适中,模块的单入口单出口等,这样可能对大模块或入口条件太多的模作进一步细化。2.2 模块子结构图模块子结构图只对应于在详细设计阶段被分解的模块,而未分解的
4、模块不必有相应的模块子结构图。子模块清单包括详细设计阶段产生的子模块。(1 模块内部结构图 2、子模块清单)编 号 子模块名称 子模块标识符 父模块名称2.3 模块清单模块清单中包括概要设计阶段产生的,还是详细设计阶段产生的模块。编 号 模块名称 模块标识符详细设计说明书3第 3 章 模块设计3.1 模块 1 (标识符)逐步给出各个层次中每个模块的过程设计考虑,既包括概要设计阶段中得到的模块,又要包括详细设计阶段得到的子模块。对于具体的模块,特别是较低层次的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。3.1.1 模块概述
5、给出对该模块一般情况的简要描述,说明本模块的属性,如:是否常驻内存,是否子程序,是否可重入,有无覆盖要求,是否并发的等(1、简要情况 2、模块属性)3.1.2 功能和性能(1、功能 2、性能)给出用 IPO 图表示的模块功能,给出对该模块的全部性能要求,例如,对精度、灵活性、时间特性和空间特性的要求。3.1.2.1 (标识符)功能(图)输 入 处 理 输 出3.1.2.2 性能3.1.3 输入/输出项给出每项输入/输出数据的特性。包括名称、标识符、数据类型和格式,值的有效范围,输入/输出数据介质和数据来源等,并给出定义性描述,最好能用类 C 语言给出类型说明。(1、输入项 2、输出项)3.1.
6、3.1 输入项名称 标识符 类型 介质 来源 描述3.1.3.2 输出项名称 标识符 类型 介质 来源 描述3.1.4 数据结构数据结构,给出全局的和局部的数据结构或数据元素(变量)的特性。包括名称、标识符、数据类型和格式,值的有效范围,是仅仅使用,还是有修改/产生动作等,并给出定义性描述,最好能用类 C 语详细设计说明书4言给出类型说明。(1、全局数据结构 2、局部数据结构)3.1.4.1 全局数据结构名称 标识符 类型 使用方式 访问方式 描述3.1.4.2 局部数据结构名称 标识符 类型 使用方式 访问方式 描述3.1.5 算法算法,详细描述模块的算法,具体的计算公式和计算步骤,给出适当的注释。算法用结构化图式语言表示,推荐三种图式语言:NS 图、PAD 图和 PDL 语言。( 图、图或语言)3.1.6 限制条件限制条件,列出本程序运行中所受到的限制条件。(模块的所有限制条件)3.1.7 测试计划测试计划,说明本模块的单元测试计划,包括输入数据、预期结果、驱动模块和承接模块的处理,前置条件。具体要求和格式可参考测试计划文档规范。(1、驱动模块和承接模块 2、前置条件3、测试用例 输入和预期结果)3.2 模块 2