XXX项目软件设计说明书 Software design specification
Prepared by
拟制 Reviewed by 评审人 Approved by
批准
Date 日期 Date 日期 Date 日期
yyyy-mm-dd yyyy-mm-dd yyyy-mm-dd
软件设计说明书
Revision Record 修订记录
Contents 目录
Software Design Instruction ............................................................................................... 6 1 简介 .............................................................................................................................. 1 1.1 1.2
目的 ........................................................................................................................ 1 范围 ........................................................................................................................ 1
软件名称 ......................................................................................................... 1 软件功能 ......................................................................................................... 1 软件应用 ......................................................................................................... 1
1.2.1 1.2.2 1.2.3 2.1 2.2
2 总体设计描述 ................................................................................................................ 1
软件系统上下文定义 ............................................................................................... 1 设计思路(可选) .................................................................................................. 1
设计可选方案 .................................................................................................. 1 设计约束 ......................................................................................................... 1 其他 ................................................................................................................ 2
2.2.1 2.2.2 2.2.3 3.1
3 系统设计描述 ................................................................................................................ 2
系统结构 ................................................................................................................. 2
系统结构描述 .................................................................................................. 2 业务流程说明 .................................................................................................. 2 模块/子系统1描述 ........................................................................................... 2 数据设计 ......................................................................................................... 3 模块/子系统1的接口描述 ................................................................................ 3
3.1.1 3.1.2 3.2 3.2.1 3.2.2 3.3 3.3.1 4.1
分解描述 ................................................................................................................. 2
接口描述 ................................................................................................................. 3
4 模块设计描述 ................................................................................................................ 3
模块1名称 ............................................................................................................... 3
模块设计描述 .................................................................................................. 4 功能实现说明 .................................................................................................. 4 UI界面交互设计 .............................................................................................. 4
4.1.1 4.1.2 4.1.3 5.1
5 数据库设计(可选) ..................................................................................................... 4
实体定义 ................................................................................................................. 5
分解描述 ......................................................................................................... 5 内部依赖性描述 .............................................................................................. 5 分解描述 ......................................................................................................... 5 外部依赖性描述 .............................................................................................. 5 内部依赖性描述 .............................................................................................. 5
5.1.1 5.1.2 5.2 5.2.1 5.2.2 5.2.3
行为定义 ................................................................................................................. 5
6 组件视图 ....................................................................................................................... 5 6.1 6.2
系统运行组件 .......................................................................................................... 5 文件组织形式 .......................................................................................................... 5
7 进程视图(可选) ........................................................................................................ 6 8 模块#详细设计.............................................................................................................. 6 8.1
CLASS#的设计 ....................................................................................................... 6
简介(可选) .................................................................................................. 6 类图(可选) .................................................................................................. 6 状态设计(可选) .......................................................................................... 6 属性 ................................................................................................................ 6 方法 ................................................................................................................ 6
8.1.1 8.1.2 8.1.3 8.1.4 8.1.5 9.1
9 数据库详细设计(可选) ............................................................................................. 7
存储过程#/触发器#的名称 ...................................................................................... 7
表1 数据结构 ................................................................................................................................... 6
图1 XXX图 ...................................................................................................................................... 4 图2 页面原型 ................................................................................................................................... 4 图3 页面迁移图 ............................................................................................................................... 4
XXX软件设计说明书
Software Design Instruction
关键词: 摘要:
缩略语清单:
软件设计说明书
1 简介
1.1 目的
这部分要描述文档的目的,并指明文档的读者。
1.2 范围 1.2.1
软件名称
对软件命名。
1.2.2 软件功能
解释软件将完成或不完成的功能(可以直接描述也可以参考相关文档)。
1.2.3 软件应用
描述软件的应用领域(可直接描述也可以参考其他软件文档)。
2 总体设计描述
2.1 软件系统上下文定义
本节描述待开发软件系统与外部实体的关系,可以使用系统结构图来描述系统结构和交互关系。
外部实体属性描述只限于描述与本系统软件设计相关的属性。考虑到描述的完整性,可参考相关软件实体文档。
2.2 设计思路(可选) 2.2.1 设计可选方案
对本软件系统的几种设计方案进行分析、比较,并确定所采用的方案。
2.2.2 设计约束
2.2.2.1 遵循标准
.描述本软件所遵循的标准、规范。 2.2.2.2 硬件限制
描述本软件系统实现的硬件限制。
2.2.2.3 技术限制 .描述本软件的技术限制。
2.2.3 其他
描述其他有关的设计考虑。
3 系统设计描述
3.1 系统结构
如果本文档是针对增强开发/小特性的设计,继承了原有的系统结构,那么应拷贝原有的系统结构说明,如系统结构图和相应的文字说明,然后在系统设计中明显标识出新增功能在原有系统结构中的位置(属于原来哪一个模块的新增功能,与原有各模块之间有什么交互)。在后续的业务流程说明、模块分解描述、依赖性描述和接口描述中,如果与本次增强开发/小特性无关的,可以不再重复描述,如果有关联的,应该拷贝原有的设计说明,在此基础上再说明更改的内容。
3.1.1 系统结构描述
这里要描述软件系统的总体结构,可以使用结构图、层次分解图或包图来描述,并应说明系统结构划分的原则(例如,基于标准、协议所规定的体系结构,来自于分析模型的方案,或者基于原有体系结构的限制)。对于使用分析模型的体系结构,应说明分析类的职责及相互关系。
3.1.2 业务流程说明
描述系统架构模块/分析类之间的动态交互,来说明用例模型中的典型用例场景,以体现系统功能是如何实现的。建议采用Sequence图、Collaboration图等来描述。
3.2 分解描述
本节描述系统中的子系统和模块。
3.2.1 模块/子系统1描述
不要直接写“模块/子系统1”,用简短的词语命名模块/子系统。 按照以下格式描述:
1. 简介
2. 功能列表
3.2.2 数据设计
.本节描述系统中的数据结构。 .外部数据实体不必描述。 1. 数据实体1描述
按照以下格式描述:
标识: 类型:
3.3 接口描述
本节描述软件系统中设计实体(如子系统,模块,进程)的接口. 接口描述可以使用接口文件,参数表。
对于外部实体只有同被描述软件相关的接口才需描述。 接口可以是函数调用、事件、消息、信号等。
3.3.1 模块/子系统1的接口描述
对每个接口按照以下格式描述:
名称:(接口名称) 说明:(对接口的简短说明)
定义:(接口原型定义,说明接口类型及相关参数)
4 模块设计描述
系统设计中定义的每个模块的进一步设计在下面的章节进行描述。对层次比较多的模块,可以增加设计层次,最终要说明对应于最小分解模块的具体设计类(包括其public属性和public方法)。
对每个模块重复使用下述的格式。
4.1 模块1名称
不要直接写 “模块1名称”,用简短的词语命名模块。
如果本文档是针对增强开发/小特性的设计,继承了原有的二层模块结构,那么应拷贝
原有的模块结构说明,如包图/类图和相应的文字说明,然后在模块设计中明显标识出新增功能在原有模块结构中的位置(属于原来哪一个子模块/设计类的新增功能,与原有各子模块/设计类之间有什么交互)。在后续的功能实现说明和设计类定义中,如果与本次增强开发/小特性无关的,可以不描述,如果有关联的,应该拷贝原有的设计说明,在此基础上再说明更改的内容。 对更改的设计类应该给出类的完整定义,再标识出更改的属性和方法。
4.1.1 模块设计描述
描述模块分解,例如每个子模块的功能定义。定义出具体的设计类,用类图来描述其相互关系,并说明所采用的设计模式。
对每个类重复使用下述的格式进行描述。
4.1.1.1 #类名
按下面的格式对每个设计类进行说明。
1)标识
说明该类的配置项标识。
2)简介
简单介绍该类的功能。
3)类定义(可选)
如果该类在前面没有定义,使用类图、伪代码描述该类的类定义,需说明该类的所有public属性和public方法。
4.1.2 功能实现说明
使用Sequence图、Collaboration图等来说明这些设计类之间如何交互,实现本模块的典型功能。如果有脚本、HTML组件参与交互也要在此说明,也可通过时序图来加以说明。
图1 XXX图
4.1.3 UI界面交互设计
可以描述出UI界面原型和页面之间的迁移情况。
图2 页面原型
图3 页面迁移图
5 数据库设计(可选)
本节列出所有的数据存储类的实体(表、存储过程、触发器等),详细描述实体的内容和
并列出全部属性。对每个属性,详细描述其数据库、数据大小、特定约束。实体的所有约束及实体间的关系也要注明。
5.1 实体定义
5.1.1 分解描述
阐述设计思路及约束规则。
详细定义每个关键数据表、视图中的各个字段属性、存储要求、完整性约束、功能、注意事项,对静态数据表应考虑定义初始配置记录。
5.1.2 内部依赖性描述
使用E-R图描述实体间的关联依赖关系,分析对存取空间、性能、完整性的要求。
5.2 行为定义
5.2.1 分解描述
根据功能或其他方式对存储过程/触发器进行归类,便于进一步细化和分解,并说明每类存储过程/触发器主要功能。
详细定义每个存储过程(触发器)的功能、输入输出参数、返回值、返回的记录集、依赖的数据表和存储过程,以及一些特殊要求(比如需要启用事务等)。
5.2.2 外部依赖性描述
描述存储过程/触发器与系统中其它功能模块之间的依赖关系。
5.2.3 内部依赖性描述
描述存储过程间、存储过程和数据表/视图间依赖关系。
6 组件视图
6.1 系统运行组件
使用Component图、deployment图来描述系统的运行组件(EXE文件、DLL等),及其网络部署情况。
6.2 文件组织形式
描述源代码文件的目录结构(文件夹中各个目录下应存放什么文件)。
7 进程视图(可选)
本节描述将系统分解为轻量级进程(单个控制线程)和重量级进程(成组的轻量级进程)的过程。本节按照各个通信或交互的进程组来加以组织。说明进程之间的主要通信模式,例如消息传递、中断和会合。
8 模块#详细设计
8.1 CLASS#的设计
8.1.1 简介(可选)
在此详细描述重点模块里面的CLASS1的职责和功能,可使用顺序图、协作图、状态图来详细描述。必要时,可描述本类与相关类之间的静态/动态关系。
8.1.2 类图(可选)
提供类的结构图,在概要设计中没有定义时需要。
8.1.3 状态设计(可选)
可以用状态图来描述类的状态信息。
8.1.4 属性
可先定义相关的数据结构。也可以不使用表格、而使用伪代码格式描述。
表1 数据结构
8.1.5 方法
下面针对每个方法进行说明。
8.1.5.1 方法#的名称
(1)方法描述
(2)实现描述
使用伪代码、流程图(可选)等来描述本方法的详细实现。这部分是详细设计的重点。 9 数据库详细设计(可选)
描述存储过程、触发器等的详细实现。
9.1 存储过程#/触发器#的名称
(1)描述
(2)实现描述 使用伪代码来描述详细实现。
参考资料清单:
请罗列本文档所参考的有关参考文献和相关文档,格式如下:
作者+书名(或杂志、文献、文档)+出版社(或期号、卷号、公司文档编号)+出版日期+起止页码
XXX项目软件设计说明书 Software design specification
Prepared by
拟制 Reviewed by 评审人 Approved by
批准
Date 日期 Date 日期 Date 日期
yyyy-mm-dd yyyy-mm-dd yyyy-mm-dd
软件设计说明书
Revision Record 修订记录
Contents 目录
Software Design Instruction ............................................................................................... 6 1 简介 .............................................................................................................................. 1 1.1 1.2
目的 ........................................................................................................................ 1 范围 ........................................................................................................................ 1
软件名称 ......................................................................................................... 1 软件功能 ......................................................................................................... 1 软件应用 ......................................................................................................... 1
1.2.1 1.2.2 1.2.3 2.1 2.2
2 总体设计描述 ................................................................................................................ 1
软件系统上下文定义 ............................................................................................... 1 设计思路(可选) .................................................................................................. 1
设计可选方案 .................................................................................................. 1 设计约束 ......................................................................................................... 1 其他 ................................................................................................................ 2
2.2.1 2.2.2 2.2.3 3.1
3 系统设计描述 ................................................................................................................ 2
系统结构 ................................................................................................................. 2
系统结构描述 .................................................................................................. 2 业务流程说明 .................................................................................................. 2 模块/子系统1描述 ........................................................................................... 2 数据设计 ......................................................................................................... 3 模块/子系统1的接口描述 ................................................................................ 3
3.1.1 3.1.2 3.2 3.2.1 3.2.2 3.3 3.3.1 4.1
分解描述 ................................................................................................................. 2
接口描述 ................................................................................................................. 3
4 模块设计描述 ................................................................................................................ 3
模块1名称 ............................................................................................................... 3
模块设计描述 .................................................................................................. 4 功能实现说明 .................................................................................................. 4 UI界面交互设计 .............................................................................................. 4
4.1.1 4.1.2 4.1.3 5.1
5 数据库设计(可选) ..................................................................................................... 4
实体定义 ................................................................................................................. 5
分解描述 ......................................................................................................... 5 内部依赖性描述 .............................................................................................. 5 分解描述 ......................................................................................................... 5 外部依赖性描述 .............................................................................................. 5 内部依赖性描述 .............................................................................................. 5
5.1.1 5.1.2 5.2 5.2.1 5.2.2 5.2.3
行为定义 ................................................................................................................. 5
6 组件视图 ....................................................................................................................... 5 6.1 6.2
系统运行组件 .......................................................................................................... 5 文件组织形式 .......................................................................................................... 5
7 进程视图(可选) ........................................................................................................ 6 8 模块#详细设计.............................................................................................................. 6 8.1
CLASS#的设计 ....................................................................................................... 6
简介(可选) .................................................................................................. 6 类图(可选) .................................................................................................. 6 状态设计(可选) .......................................................................................... 6 属性 ................................................................................................................ 6 方法 ................................................................................................................ 6
8.1.1 8.1.2 8.1.3 8.1.4 8.1.5 9.1
9 数据库详细设计(可选) ............................................................................................. 7
存储过程#/触发器#的名称 ...................................................................................... 7
表1 数据结构 ................................................................................................................................... 6
图1 XXX图 ...................................................................................................................................... 4 图2 页面原型 ................................................................................................................................... 4 图3 页面迁移图 ............................................................................................................................... 4
XXX软件设计说明书
Software Design Instruction
关键词: 摘要:
缩略语清单:
软件设计说明书
1 简介
1.1 目的
这部分要描述文档的目的,并指明文档的读者。
1.2 范围 1.2.1
软件名称
对软件命名。
1.2.2 软件功能
解释软件将完成或不完成的功能(可以直接描述也可以参考相关文档)。
1.2.3 软件应用
描述软件的应用领域(可直接描述也可以参考其他软件文档)。
2 总体设计描述
2.1 软件系统上下文定义
本节描述待开发软件系统与外部实体的关系,可以使用系统结构图来描述系统结构和交互关系。
外部实体属性描述只限于描述与本系统软件设计相关的属性。考虑到描述的完整性,可参考相关软件实体文档。
2.2 设计思路(可选) 2.2.1 设计可选方案
对本软件系统的几种设计方案进行分析、比较,并确定所采用的方案。
2.2.2 设计约束
2.2.2.1 遵循标准
.描述本软件所遵循的标准、规范。 2.2.2.2 硬件限制
描述本软件系统实现的硬件限制。
2.2.2.3 技术限制 .描述本软件的技术限制。
2.2.3 其他
描述其他有关的设计考虑。
3 系统设计描述
3.1 系统结构
如果本文档是针对增强开发/小特性的设计,继承了原有的系统结构,那么应拷贝原有的系统结构说明,如系统结构图和相应的文字说明,然后在系统设计中明显标识出新增功能在原有系统结构中的位置(属于原来哪一个模块的新增功能,与原有各模块之间有什么交互)。在后续的业务流程说明、模块分解描述、依赖性描述和接口描述中,如果与本次增强开发/小特性无关的,可以不再重复描述,如果有关联的,应该拷贝原有的设计说明,在此基础上再说明更改的内容。
3.1.1 系统结构描述
这里要描述软件系统的总体结构,可以使用结构图、层次分解图或包图来描述,并应说明系统结构划分的原则(例如,基于标准、协议所规定的体系结构,来自于分析模型的方案,或者基于原有体系结构的限制)。对于使用分析模型的体系结构,应说明分析类的职责及相互关系。
3.1.2 业务流程说明
描述系统架构模块/分析类之间的动态交互,来说明用例模型中的典型用例场景,以体现系统功能是如何实现的。建议采用Sequence图、Collaboration图等来描述。
3.2 分解描述
本节描述系统中的子系统和模块。
3.2.1 模块/子系统1描述
不要直接写“模块/子系统1”,用简短的词语命名模块/子系统。 按照以下格式描述:
1. 简介
2. 功能列表
3.2.2 数据设计
.本节描述系统中的数据结构。 .外部数据实体不必描述。 1. 数据实体1描述
按照以下格式描述:
标识: 类型:
3.3 接口描述
本节描述软件系统中设计实体(如子系统,模块,进程)的接口. 接口描述可以使用接口文件,参数表。
对于外部实体只有同被描述软件相关的接口才需描述。 接口可以是函数调用、事件、消息、信号等。
3.3.1 模块/子系统1的接口描述
对每个接口按照以下格式描述:
名称:(接口名称) 说明:(对接口的简短说明)
定义:(接口原型定义,说明接口类型及相关参数)
4 模块设计描述
系统设计中定义的每个模块的进一步设计在下面的章节进行描述。对层次比较多的模块,可以增加设计层次,最终要说明对应于最小分解模块的具体设计类(包括其public属性和public方法)。
对每个模块重复使用下述的格式。
4.1 模块1名称
不要直接写 “模块1名称”,用简短的词语命名模块。
如果本文档是针对增强开发/小特性的设计,继承了原有的二层模块结构,那么应拷贝
原有的模块结构说明,如包图/类图和相应的文字说明,然后在模块设计中明显标识出新增功能在原有模块结构中的位置(属于原来哪一个子模块/设计类的新增功能,与原有各子模块/设计类之间有什么交互)。在后续的功能实现说明和设计类定义中,如果与本次增强开发/小特性无关的,可以不描述,如果有关联的,应该拷贝原有的设计说明,在此基础上再说明更改的内容。 对更改的设计类应该给出类的完整定义,再标识出更改的属性和方法。
4.1.1 模块设计描述
描述模块分解,例如每个子模块的功能定义。定义出具体的设计类,用类图来描述其相互关系,并说明所采用的设计模式。
对每个类重复使用下述的格式进行描述。
4.1.1.1 #类名
按下面的格式对每个设计类进行说明。
1)标识
说明该类的配置项标识。
2)简介
简单介绍该类的功能。
3)类定义(可选)
如果该类在前面没有定义,使用类图、伪代码描述该类的类定义,需说明该类的所有public属性和public方法。
4.1.2 功能实现说明
使用Sequence图、Collaboration图等来说明这些设计类之间如何交互,实现本模块的典型功能。如果有脚本、HTML组件参与交互也要在此说明,也可通过时序图来加以说明。
图1 XXX图
4.1.3 UI界面交互设计
可以描述出UI界面原型和页面之间的迁移情况。
图2 页面原型
图3 页面迁移图
5 数据库设计(可选)
本节列出所有的数据存储类的实体(表、存储过程、触发器等),详细描述实体的内容和
并列出全部属性。对每个属性,详细描述其数据库、数据大小、特定约束。实体的所有约束及实体间的关系也要注明。
5.1 实体定义
5.1.1 分解描述
阐述设计思路及约束规则。
详细定义每个关键数据表、视图中的各个字段属性、存储要求、完整性约束、功能、注意事项,对静态数据表应考虑定义初始配置记录。
5.1.2 内部依赖性描述
使用E-R图描述实体间的关联依赖关系,分析对存取空间、性能、完整性的要求。
5.2 行为定义
5.2.1 分解描述
根据功能或其他方式对存储过程/触发器进行归类,便于进一步细化和分解,并说明每类存储过程/触发器主要功能。
详细定义每个存储过程(触发器)的功能、输入输出参数、返回值、返回的记录集、依赖的数据表和存储过程,以及一些特殊要求(比如需要启用事务等)。
5.2.2 外部依赖性描述
描述存储过程/触发器与系统中其它功能模块之间的依赖关系。
5.2.3 内部依赖性描述
描述存储过程间、存储过程和数据表/视图间依赖关系。
6 组件视图
6.1 系统运行组件
使用Component图、deployment图来描述系统的运行组件(EXE文件、DLL等),及其网络部署情况。
6.2 文件组织形式
描述源代码文件的目录结构(文件夹中各个目录下应存放什么文件)。
7 进程视图(可选)
本节描述将系统分解为轻量级进程(单个控制线程)和重量级进程(成组的轻量级进程)的过程。本节按照各个通信或交互的进程组来加以组织。说明进程之间的主要通信模式,例如消息传递、中断和会合。
8 模块#详细设计
8.1 CLASS#的设计
8.1.1 简介(可选)
在此详细描述重点模块里面的CLASS1的职责和功能,可使用顺序图、协作图、状态图来详细描述。必要时,可描述本类与相关类之间的静态/动态关系。
8.1.2 类图(可选)
提供类的结构图,在概要设计中没有定义时需要。
8.1.3 状态设计(可选)
可以用状态图来描述类的状态信息。
8.1.4 属性
可先定义相关的数据结构。也可以不使用表格、而使用伪代码格式描述。
表1 数据结构
8.1.5 方法
下面针对每个方法进行说明。
8.1.5.1 方法#的名称
(1)方法描述
(2)实现描述
使用伪代码、流程图(可选)等来描述本方法的详细实现。这部分是详细设计的重点。 9 数据库详细设计(可选)
描述存储过程、触发器等的详细实现。
9.1 存储过程#/触发器#的名称
(1)描述
(2)实现描述 使用伪代码来描述详细实现。
参考资料清单:
请罗列本文档所参考的有关参考文献和相关文档,格式如下:
作者+书名(或杂志、文献、文档)+出版社(或期号、卷号、公司文档编号)+出版日期+起止页码