1、软件概要设计说明书模版软件概要设计报告文档模板1. 引言231.1 编写目的231.2 项目风险231.3 预期读者和阅读建议231.4 参考资料232. 设计概述242.1 限制和约束242.2 设计原则和设计要求243. 系统逻辑设计253.1 系统组织设计253.2 系统结构设计253.2.1 系统特性表263.2.2 系统特性结构图273.3 系统接口设计273.3.1 系统接口表273.3.2 系统接口传输协议说明283.4 系统完整性设计284. 系统出错处理设计294.1 系统出错处理表294.2 维护处理过程表305. 技术设计315.1 系统开发技术说明表315.2 开发技术
2、应用说明326. 数据库设计327. 词汇表328. 进度计划32 1. 引言引言是对这份软件系统概要设计报告的概览,是为了帮助阅读者了解这份文档是如何编写的,而且应该如何阅读、理解和解释这份文档。1.1 编写目的说明这份软件系统概要设计报告是基于哪份软件产品需求规格说明书编写的,开发这个软件产品意义、作用、以及最终要达到的意图。经过这份软件系统概要设计报告详尽说明了该软件产品的软件结构,包括数据库结构和出错处理,从而对该软件产品的结构的描述。如果这份软件系统概要设计报告只与整个系统的某一部分有关系,那么只定义软件系统概要设计报告中说明的那个部分或子系统。1.2 项目风险具体说明本软件开发项目
3、的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括: 任务提出者; 软件开发者; 产品使用者。1.3 预期读者和阅读建议列举本软件系统概要设计报告所针正确各种不同的预期读者,例如,可能的读者包括: 用户; 开发人员; 项目经理; 营销人员; 测试人员; 文档编写人员; 等等。描述文档中,其余部分的内容及其组织结构,而且针对每一类读者提出最适合的文档阅读建议。1.4 参考资料列举编写软件产品概要设计报告时所用到的参考文献及资料,可能包括: 本项目的合同书; 上级机关有关本项目的批文; 本项目已经批准的计划任务书; 用户界面风格指导; 开发本项目时所要用到的标准; 系统规格
4、需求说明; 使用实例文档; 属于本项目的其它已发表文件; 本软件系统概要设计报告中所引用的文件、资料: 相关软件系统概要设计报告: 等等。为了方便读者查阅,所有参考资料应该按一定顺排列。如果可能,每份资料都应该给出: 标题名称; 作者或者合同签约者; 文件编号或者版本号; 发表日期或者签约日期; 出版单位或者资料来源。2. 设计概述本节描述现有开发条件和需要实现的目标,说明进行概要设计时应该遵循的设计原则和必须采用的设计方法。2.1 限制和约束简要描述起到限制和约束作用的各种可能存在的条件,例如: 技术条件; 资金状况; 开发环境(包括:工具和平台); 时间限制; 等等。而且说明在上述条件下,
5、应该实现的系统目标,2.2 设计原则和设计要求描述对本软件系统进行概要设计的原则,一般能够考虑以下几方面的内容: 命名规则; 模块独立性原则: 边界设计原则; 数据库设计规则; 必须的安全措施; 安全性和保密原则; 系统灵活性要求; 系统易操作性要求; 系统可维护性要求; 等等。3. 系统逻辑设计本节内容主要根据软件产品需求规格说明书和软件产品数据字典建立系统的逻辑模型。此种模型暂时与系统的物理因素(例如:计算机、数据库管理系统)无关。它是系统需求与物理实现的中间结构,它的主要结果是建立:系统结构图、系统界面结构图、系统出错处理、以及系统开发技术说明。说明:如果进行系统设计时尚未编写软件数据字
6、典:应首先参照附录B说明,编写软件数据字典。在完成软件数据字典后,再进行系统设计。3.1 系统组织设计系统组织设计经过系统组织表描述本系统由哪些子系统(模块)组成,这些子系统与业务职能之间的关系,以及各个子系统的安装地点。系统组织表的格式如下:子系统编号英文名称中文名称业务职能安装地点备注其中: 子系统编号给出本系统中指定子系统的顺序编号。如果本系统末划分为多个子系统,仅由一个运行模块组成;则本项内容仍需要描述,可是本表内容只有一行。说明:在一个系统中有可能安装若干个相同的子系统,在这种情况下,应该视为一个子系统,而且对多个安装地点分别进行描述。如果相同的子系统经过系统设置,实现的业务职能具有
7、明显差异时,应该采用多行进行分别描述,而且在备注中说明其差异所在。 子系统英文名称给出本子系统的英文名称,该名称是在应用软件中实际使用的可执行文件名称,必须能够说明该子系统的特点。若本系统中只有一个子系统,则本项内容仍需要描述,可是本表内容只有一行。 子系统中文名称给出本子系统的中文名称,该名称必须能够说明该子系统的特点。若本系统中只有一个子系统,则本项内容仍需要描述,可是本表内容只有一行。 业务职能描述该子系统完成的核心业务。 安装地点描述该子系统实际安装的部门、或者某个具体地点。 备注针对该子系统,需要说明的其它有关问题。3.2 系统结构设计本节将对系统特性作较为详细的描述,并给出系统特性
8、结构图。3.2.1 系统特性表系统特性是系统中完成某项具体操作的基本单元,它由入口参数,出口参数以及处理过程三部分组成。系统特性能够具有操作界面,也能够没有操作界面;能够被其它操作界面、或者系统特性调用,也能够调用其它操作界面、非操作界面、或者系统特性;可是不允许递归调用(调用自己),包括间接递归调用。当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统特性表进行描述。系统特性表的格式如下:子系统编号:子系统英文名称:子系统中文名称:特性编号系统特征英文名称系统特征中文名称操作功能调用对象被调用对象备注说明:其中 子系统编号含义同上。 子系统英文名称含义同上。 子系统中文名称含义同上。
9、 特性编号整个系统所有特性的统一编号。 系统特性英文名称系统特性的英文正式名称,将来用于软件开发中,必须符合命名规范。 系统特性中文名称系统特性的中文正式名称,来源于需求规格说明书中,系统特性一节中的有关描述。 操作功能是指该特性实际完成的操作说明。 调用对象是指调用该系统特性的系统对象,这里的系统对象能够是系统特性、也能够是操作界面。 被调用对象是指被该系统特性调用的系统对象,这里的系统对象能够是系统特性、也能够是操作界面。说明:某些较低层的系统特性,可能不存在被调用对象。 备注描述与该系统特性有关的其它注意事项。 说明描述与该系统特性表有关的其它注意事项。3.2.2 系统特性结构图系统特性
10、结构图给出系统特性在逻辑层面上相互之间的关系,其主要依据来源于需求规格说明书中,系统特性一节中的有关描述。如果系统划分为多个子系统,应分别给出系统与子系统、以及各个子系统与系统特性的结构图。绘制系统与子系统结构图时,一般不需要描绘出系统特性,如果确有必要,尽可能只画出第一层系统特性。绘制子系统与系统特性结构图时,一般也不需要描绘出第二层系统特性,如果确有必要能够画出,可是尽可能不要画出第三层系统特性。3.3 系统接口设计系统接口是一种非可视的系统界面,在多数情况下,它对用户是透明的。本节将对系统接口作较为详细的描述,并给出接口说明清单。3.3.1 系统接口表接口作为系统的一种输入输出形式,分为
11、网络接口、数据库接口、RS-232串行通讯接口、IEEE485串行总线接口、并行I/O接口等等多种类型。对于一些为可视界面服务的接口,例如:打印机接口、显示器接口等,因为这类接口对应用软件是透明的,因此不在本节描述范围内。当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统接口表进行描述。系统接口表的格式如下:子系统编号子系统英文名称子系统中文名称接口编号接口名称接口类型接口性质接口速率接口协议备注说明:其中: 子系统编号含义同上。 子系统英文名称含义同上。 子系统中文名称含义同上。 接口编号整个系统所有接口的统一编号。 接口名称系统接口的正式名称,必须符合一般习惯。 接口类型指出该接
12、口所传输的数据在该模块中起到的作用。 接口性质指出该接口在通讯中起到的作用,这里的作用能够是:n 输入;n 输出;n 双向。 接口速率指出该接口的传输速率。如果该接口依赖于其它通讯方式,那么传输速率将不高于它所依赖的其它通讯方式的速率。 接口协议给出该接口实际使用的通讯协议。 相关对象给出直接使用本接口的系统对象,这里的系统对象,能够是操作界面,也能够是系统特性。 备注描述与该系统接口有关的其它注意事项。 说明描述与该系统接口表有关的其它注意事项。3.3.2 系统接口传输协议说明逐项详细描述系统接口表中所列出各个系统接口使用的传输协议,以及其它相关内容,例如:驱动程序、动态连接库、等等。3.4
13、 系统完整性设计描述系统对象(数据元、数据类),所受到的逻辑约束关系。当系统由多个子系统(模块)组成时,每个子系统应分别使用一张系统完整性约束表进行描述。系统完整性约束表的格式如下:子系统编号子系统英文名称子系统中文名称约束编号完整性名称相对对象名约束表示式备注说明:其中: 子系统编号含义同上。 子系统英文名称含义同上。 子系统中文名称含义同上。 约束编号整个系统所有约束的统一编号。 完整性名称系统完整性约束的正式名称,必须符合一般习惯。 相对对象名完整性约束中的相关对象(数据元和数据类)。 约束表示式用一阶逻辑表示式表示的约束方程式。 备注描述与该系统完整性约束有关的其它注意事项。 说明描述
14、与该系统完整性约束表有关的其它注意事项。4. 系统出错处理设计本节描述系统发生外界及内在错误时,所提供的错误信息及处理方法,它包括系统出错处理表及维护处理过程表。4.1 系统出错处理表本表给出有关出错处理的产生原因、提示信息、以及建议处理方法。当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统出错处理表进行描述。系统出错处理表的格式如下:子系统编号:子系统英文名称:子系统中文名称:错误编号错误名称错误原因错误信息处理方式备注说明:其中: 子系统编号含义同上。 子系统英文名称含义同上。 子系统中文名称含义同上。 错误编号整个系统所有错误的统一编号。 错误名称错误的正式名称,该名称应该是
15、常见的,而且为人们所普遍接受的。 错误原因对该错误产生原因的解释与说明。 错误信息产生该错误时,向用户发出的提示信息。 处理方式对该错误处理的一种建议,此项允许缺省。 备注描述与该系统错误有关的其它注意事项。 说明描述与该系统错误表有关的其它注意事项。4.2 维护处理过程表系统出错时,将调用维护处理过程对错误进行处理,有关维护处理过程的各项内容由维护处理过程表进行描述。当系统有多个子系统(模块)组成时,每个子系统分别使用一张维护处理过程表进行描述。维护处理过程表的格式如下:子系统编号:子系统英文名称:子系统中文名称:错误编号处理过程处理过程处理功能入口参数出口参数备注英文名称中文名称说明:其中
16、: 子系统编号含义同上。 子系统英文名称含义同上。 子系统中文名称含义同上。 错误编号含义同上。 处理过程英文名称系统维护处理过程的英文正式名称,将来用于软件开发中,必须符合命名规范。 处理过程中文名称系统维护处理过程的中文正式名称,是系统维护处理过程英文名称的中文说明。 处理功能描述本维护处理过程对错误的处理方式。由于一个维护处理过程有可能具有对多个错误进行处理的能力,因此该处理功能必须是针对本项错误编号的。 入口参数进行本项错误处理时,赋给维护处理过程的入口参数。 出口参数进行本项错误处理时,维护处理过程返回的出口参数。 备注描述与该系统错误有关的其它注意事项。 说明描述与该系统错误表有关
17、的其它注意事项。5. 技术设计系统技术设计描述系统各个特性实际使用的开发技术,以及具体开发技术使用时应该注意的事项。5.1 系统开发技术说明表本表描述系统各个特性开发时实际使用的具体技术,只有一些不太常见的技术需要在这里描述。一些常见技术,例如:经过数据库接口调用存储过程,则不必冗述。当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统开发技术说明表进行描述。系统开发技术说明表的格式如下:子系统编号:子系统英文名称:子系统中文名称:技术编号开发技术开发技术处理功能系统特性编号备注英文名称中文名称说明:其中: 子系统编号含义同上。 子系统英文名称含义同上。 子系统中文名称含义同上。 技术
18、编号这个系统所使用各种技术的统一编号。 开发技术英文名称该开发技术的英文正式名称,能够便用缩写。该名称应该是常见的,而且为人们所普遍接受的。 开发技术中文名称该开发技术的中文正式名称,是该开发技术英文名称的中文说明。该名称应该是常见的,而且为人们所普遍接受的。 处理功能描述本开发技术的处理目的。 系统特性编号含义同上。由于一项开发技术可能在多处使用,因此针对一项开发技术,有可能存在多个系统特性编号,在此必须一一列出。 备注描述与该系统开发技术相关的其它注意事项。 说明描述与该系统开发技术说明表有关的其它注意事项。5.2 开发技术应用说明逐项详细描述系统开发技术说明表中所列出各项系统开发技术使用
19、的技术要点,以及其它相关内容,例如:所需的服务、使用的动态连接库、调用的组件、等等。6. 数据库设计如果该软件产品需要使用数据库,不论是使用数据库平台支撑的,还是采用由软件产品开发者自行定义的;都应该在完成软件产品需求分析报告后,开始进行软件产品详细设计之前,按照软件产品数据库设计说明文档模板完成数据库设计工作。7. 词汇表列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原向)。为了便于非软件专业或者非计算机专业人士阅读软件系统概要设计报告,要求使用非软件专业或者非计算机专业的术语进行描述。因此这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。可是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,而且加以准确定义。8. 进度计划列出进度计划,包括各子系统、各子模块完成进度计划,人员配备计划等。