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