
软件产品设计
-
2023年2月20日发(作者:)软件概要设计⽂档
软件概要设计报告⽂档模板
1.引⾔(2)
1.1编写⽬的(2)
1.2项⽬风险(2)
1.3预期读者和阅读建议(2)
1.4参考资料(2)
2.设计概述(3)
2.1限制和约束(3)
2.2设计原则和设计要求(3)
3.系统逻辑设计(4)
3.1系统组织设计(4)
3.2系统结构设计(5)
3.2.1系统特性表(5)
3.2.2系统特性结构图(6)
3.3系统接⼝设计(6)
3.3.1系统接⼝表(6)
3.3.2系统接⼝传输协议说明(7)
3.4系统完整性设计(7)
4.系统出错处理设计(8)
4.1系统出错处理表(8)
4.2维护处理过程表(9)
5.技术设计(10)
5.1系统开发技术说明表(10)
5.2开发技术应⽤说明(11)
6.数据库设计(11)
7.词汇表(11)
8.进度计划(12)
1.引⾔
引⾔是对这份软件系统概要设计报告的概览,是为了帮助阅读者了解这份⽂档是如何编写的,并且应该如何阅读、理解和解释
这份⽂档。
1.1编写⽬的
说明这份软件系统概要设计报告是基于哪份软件产品需求规格说明书编写的,开发这个软件产品意义、作⽤、以及最终要达到
的意图。通过这份软件系统概要设计报告详尽说明了该软件产品的软件结构,包括数据库结构和出错处理,从⽽对该软件产品
的结构的描述。
如果这份软件系统概要设计报告只与整个系统的某⼀部分有关系,那么只定义软件系统概要设计报告中说明的那个部分或⼦系
统。
1.2项⽬风险
具体说明本软件开发项⽬的全部风险承担者,以及各⾃在本阶段所需要承担的主要风险,⾸要风险承担者包括:
●任务提出者;
●软件开发者;
●产品使⽤者。
1.3预期读者和阅读建议
列举本软件系统概要设计报告所针对的各种不同的预期读者,例如,可能的读者包括:
●⽤户;
●开发⼈员;
●项⽬经理;
●营销⼈员;
●测试⼈员;
●⽂档编写⼈员;
●等等。
描述⽂档中,其余部分的内容及其组织结构,并且针对每⼀类读者提出最适合的⽂档阅读建议。
1.4参考资料
列举编写软件产品概要设计报告时所⽤到的参考⽂献及资料,可能包括:
●本项⽬的合同书;
●上级机关有关本项⽬的批⽂;
●本项⽬已经批准的计划任务书;
●⽤户界⾯风格指导;
●开发本项⽬时所要⽤到的标准;
●系统规格需求说明;
●使⽤实例⽂档;
●属于本项⽬的其它已发表⽂件;
●本软件系统概要设计报告中所引⽤的⽂件、资料:
●相关软件系统概要设计报告:
●等等。
为了⽅便读者查阅,所有参考资料应该按⼀定顺排列。如果可能,每份资料都应该给出:
●标题名称;
●作者或者合同签约者;
●⽂件编号或者版本号;
●发表⽇期或者签约⽇期;
●出版单位或者资料来源。
2.设计概述
本节描述现有开发条件和需要实现的⽬标,说明进⾏概要设计时应该遵循的设计原则和必须采⽤的设计⽅法。
2.1限制和约束
简要描述起到限制和约束作⽤的各种可能存在的条件,例如:
●技术条件;
●资⾦状况;
●开发环境(包括:⼯具和平台);
●时间限制;
●等等。
并且说明在上述条件下,应该实现的系统⽬标,
2.2设计原则和设计要求
描述对本软件系统进⾏概要设计的原则,通常可以考虑以下⼏⽅⾯的内容:
●命名规则;
●模块独⽴性原则:
●边界设计原则;
●数据库设计规则;
●必须的安全措施;
●安全性和保密原则;
●系统灵活性要求;
●系统易操作性要求;
●系统可维护性要求;
●等等。
3.系统逻辑设计
本节内容主要根据软件产品需求规格说明书和软件产品数据字典建⽴系统的逻辑模型。此种模型暂时与系统的物理因素(例
如:计算机、数据库管理系统)⽆关。它是系统需求与物理实现的中间结构,它的主要结果是建⽴:系统结构图、系统界⾯结
构图、系统出错处理、以及系统开发技术说明。
说明:如果进⾏系统设计时尚未编写软件数据字典:应⾸先参照附录B说明,编写软件数据字典。在完成软件数据字典后,再
进⾏系统设计。
3.1系统组织设计
系统组织设计通过系统组织表描述本系统由哪些⼦系统(模块)组成,这些⼦系统与业务职能之间的关系,以及各个⼦系统的安
装地点。系统组织表的格式如下:
其中:
●⼦系统编号
给出本系统中指定⼦系统的顺序编号。如果本系统末划分为多个⼦系统,仅由⼀
个运⾏模块组成;则本项内容仍需要描述,但是本表内容只有⼀⾏。
说明:在⼀个系统中有可能安装若⼲个相同的⼦系统,在这种情况下,应该视为
⼀个⼦系统,并且对多个安装地点分别进⾏描述。如果相同的⼦系统通过系统设
置,实现的业务职能具有明显差异时,应该采⽤多⾏进⾏分别描述,并且在备注
中说明其差异所在。
●⼦系统英⽂名称
给出本⼦系统的英⽂名称,该名称是在应⽤软件中实际使⽤的可执⾏⽂件名称,
必须能够说明该⼦系统的特点。
若本系统中只有⼀个⼦系统,则本项内容仍需要描述,但是本表内容只有⼀⾏。
●⼦系统中⽂名称
给出本⼦系统的中⽂名称,该名称必须能够说明该⼦系统的特点。
若本系统中只有⼀个⼦系统,则本项内容仍需要描述,但是本表内容只有⼀⾏。
●业务职能
描述该⼦系统完成的核⼼业务。
●安装地点
描述该⼦系统实际安装的部门、或者某个具体地点。
●备注
针对该⼦系统,需要说明的其它有关问题。
3.2系统结构设计
本节将对系统特性作较为详细的描述,并给出系统特性结构图。
3.2.1系统特性表
系统特性是系统中完成某项具体操作的基本单元,它由⼊⼝参数,出⼝参数以及处理过程三部分组成。
系统特性可以具有操作界⾯,也可以没有操作界⾯;可以被其它操作界⾯、或者系统特性调⽤,也可以调⽤其它操作界⾯、⾮
操作界⾯、或者系统特性;但是不允许递归调⽤(调⽤⾃⼰),包括间接递归调⽤。
当系统由多个⼦系统(模块)组成时,每个⼦系统分别使⽤⼀张系统特性表进⾏描述。
其中
●⼦系统编号
含义同上。
●⼦系统英⽂名称
含义同上。
●⼦系统中⽂名称
含义同上。
●特性编号
整个系统所有特性的统⼀编号。
●系统特性英⽂名称
系统特性的英⽂正式名称,将来⽤于软件开发中,必须符合命名规范。
●系统特性中⽂名称
系统特性的中⽂正式名称,来源于需求规格说明书中,系统特性⼀节中的有关描
述。
●操作功能
是指该特性实际完成的操作说明。
●调⽤对象
是指调⽤该系统特性的系统对象,这⾥的系统对象可以是系统特性、也可以是
操作界⾯。
●被调⽤对象
是指被该系统特性调⽤的系统对象,这⾥的系统对象可以是系统特性、也可以
是操作界⾯。
说明:某些较低层的系统特性,可能不存在被调⽤对象。
●备注
描述与该系统特性有关的其它注意事项。
●说明
描述与该系统特性表有关的其它注意事项。
3.2.2系统特性结构图
系统特性结构图给出系统特性在逻辑层⾯上相互之间的关系,其主要依据来源于需求规格说明书中,系统特性⼀节中的有关描
述。
如果系统划分为多个⼦系统,应分别给出系统与⼦系统、以及各个⼦系统与系统特性的结构图。
绘制系统与⼦系统结构图时,⼀般不需要描绘出系统特性,如果确有必要,尽可能只画出第⼀层系统特性。绘制⼦系统与系统
特性结构图时,通常也不需要描绘出第⼆层系统特性,如果确有必要可以画出,但是尽可能不要画出第三层系统特性。
3.3系统接⼝设计
系统接⼝是⼀种⾮可视的系统界⾯,在多数情况下,它对⽤户是透明的。
本节将对系统接⼝作较为详细的描述,并给出接⼝说明清单。
3.3.1系统接⼝表
接⼝作为系统的⼀种输⼊/输出形式,分为⽹络接⼝、数据库接⼝、RS-232串⾏通讯接⼝、IEEE—485串⾏总线接⼝、并⾏
I/O接⼝等等多种类型。
对于⼀些为可视界⾯服务的接⼝,例如:打印机接⼝、显⽰器接⼝等,因为这类接⼝对应⽤软件是透明的,所以不在本节描述
范围内。
当系统由多个⼦系统(模块)组成时,每个⼦系统分别使⽤⼀张系统接⼝表进⾏描述。系统接⼝表的格式如下:
●⼦系统编号
含义同上。
●⼦系统英⽂名称
含义同上。
●⼦系统中⽂名称
含义同上。
●接⼝编号
整个系统所有接⼝的统⼀编号。
●接⼝名称
系统接⼝的正式名称,必须符合通常习惯。
●接⼝类型
指出该接⼝所传输的数据在该模块中起到的作⽤。
●接⼝性质
指出该接⼝在通讯中起到的作⽤,这⾥的作⽤可以是:
输⼊;
输出;
双向。
●接⼝速率
指出该接⼝的传输速率。如果该接⼝依赖于其它通讯⽅式,那么传输速率将不⾼于它所依赖的其它通讯⽅式的速率。
●接⼝协议
给出该接⼝实际使⽤的通讯协议。
●相关对象
给出直接使⽤本接⼝的系统对象,这⾥的系统对象,可以是操作界⾯,也可以是系统特性。
●备注
描述与该系统接⼝有关的其它注意事项。
●说明
描述与该系统接⼝表有关的其它注意事项。
3.3.2系统接⼝传输协议说明
逐项详细描述系统接⼝表中所列出各个系统接⼝使⽤的传输协议,以及其它相关内容,例如:驱动程序、动态连接库、等等。
3.4系统完整性设计
描述系统对象(数据元、数据类),所受到的逻辑约束关系。
当系统由多个⼦系统(模块)组成时,每个⼦系统应分别使⽤⼀张系统完整性约束表进
其中:
●⼦系统编号
含义同上。
●⼦系统英⽂名称
含义同上。
●⼦系统中⽂名称
含义同上。
●约束编号
整个系统所有约束的统⼀编号。
●完整性名称
系统完整性约束的正式名称,必须符合通常习惯。
●相对对象名
完整性约束中的相关对象(数据元和数据类)。
●约束表达式
⽤⼀阶逻辑表达式表达的约束⽅程式。
●备注
描述与该系统完整性约束有关的其它注意事项。
●说明
描述与该系统完整性约束表有关的其它注意事项。
4.系统出错处理设计
本节描述系统发⽣外界及内在错误时,所提供的错误信息及处理⽅法,它包括系统出错处理表及维护处理过程表。
4.1系统出错处理表
本表给出有关出错处理的产⽣原因、提⽰信息、以及建议处理⽅法。
当系统由多个⼦系统(模块)组成时,每个⼦系统分别使⽤⼀张系统出错处理表进⾏描
其中:
●⼦系统编号
含义同上。
●⼦系统英⽂名称
含义同上。
●⼦系统中⽂名称
含义同上。
●错误编号
整个系统所有错误的统⼀编号。
●错误名称
错误的正式名称,该名称应该是常⽤的,并且为⼈们所普遍接受的。
●错误原因
对该错误产⽣原因的解释与说明。
●错误信息
产⽣该错误时,向⽤户发出的提⽰信息。
●处理⽅式
对该错误处理的⼀种建议,此项允许缺省。
●备注
描述与该系统错误有关的其它注意事项。
●说明
描述与该系统错误表有关的其它注意事项。
4.2维护处理过程表
系统出错时,将调⽤维护处理过程对错误进⾏处理,有关维护处理过程的各项内容由维护处理过程表进⾏描述。
当系统有多个⼦系统(模块)组成时,每个⼦系统分别使⽤⼀张维护处理过程表进⾏描述。维护处理过程表的格式如下:
其中:
●⼦系统编号
含义同上。
●⼦系统英⽂名称
含义同上。
●⼦系统中⽂名称
含义同上。
●错误编号
含义同上。
●处理过程英⽂名称
系统维护处理过程的英⽂正式名称,将来⽤于软件开发中,必须符合命名规范。
●处理过程中⽂名称
系统维护处理过程的中⽂正式名称,是系统维护处理过程英⽂名称的中⽂说明。
●处理功能
描述本维护处理过程对错误的处理⽅式。
由于⼀个维护处理过程有可能具有对多个错误进⾏处理的能⼒,因此该处理功能
必须是针对本项错误编号的。
●⼊⼝参数
进⾏本项错误处理时,赋给维护处理过程的⼊⼝参数。
●出⼝参数
进⾏本项错误处理时,维护处理过程返回的出⼝参数。
●备注
描述与该系统错误有关的其它注意事项。
●说明
描述与该系统错误表有关的其它注意事项。
5.技术设计
系统技术设计描述系统各个特性实际使⽤的开发技术,以及具体开发技术使⽤时应该注意的事项。
5.1系统开发技术说明表
本表描述系统各个特性开发时实际使⽤的具体技术,只有⼀些不太常⽤的技术需要在这⾥描述。⼀些常⽤技术,例如:通过数
据库接⼝调⽤存储过程,则不必冗述。
当系统由多个⼦系统(模块)组成时,每个⼦系统分别使⽤⼀张系统开发技术说明表进⾏描述。系统开发技术说明表的格式如
下:
其中:
●⼦系统编号
含义同上。
●⼦系统英⽂名称
含义同上。
●⼦系统中⽂名称
含义同上。
●技术编号
这个系统所使⽤各种技术的统⼀编号。
●开发技术英⽂名称
该开发技术的英⽂正式名称,可以便⽤缩写。
该名称应该是常⽤的,并且为⼈们所普遍接受的。
●开发技术中⽂名称
该开发技术的中⽂正式名称,是该开发技术英⽂名称的中⽂说明。
该名称应该是常⽤的,并且为⼈们所普遍接受的。
●处理功能
描述本开发技术的处理⽬的。
●系统特性编号
含义同上。
由于⼀项开发技术可能在多处使⽤,因此针对⼀项开发技术,有可能存在多个系
统特性编号,在此必须⼀⼀列出。
●备注
描述与该系统开发技术相关的其它注意事项。
●说明
描述与该系统开发技术说明表有关的其它注意事项。
5.2开发技术应⽤说明
逐项详细描述系统开发技术说明表中所列出各项系统开发技术使⽤的技术要点,以及其它相关内容,例如:所需的服务、使⽤
的动态连接库、调⽤的组件、等等。
6.数据库设计
如果该软件产品需要使⽤数据库,不论是使⽤数据库平台⽀撑的,还是采⽤由软件产品开发者⾃⾏定义的;都应该在完成软件
产品需求分析报告后,开始进⾏软件产品详细设计之前,按照软件产品数据库设计说明⽂档模板完成数据库设计⼯作。
7.词汇表
列出本⽂件中⽤到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外⽂原向)。为了便于⾮软件专业或者⾮计
算机专业⼈⼠阅读软件系统概要设计报告,要求使⽤⾮软件专业或者⾮计算机专业的术语进⾏描述。所以这⾥所指的专业术
语,是指业务层⾯上的专业术语,⽽不是软件专业或者计算机专业的术语。但是,对于⽆法回避的软件专业或者计算机专业术
语,也应该列⼊词汇表,并且加以准确定义。
8.进度计划
列出进度计划,包括各⼦系统、各⼦模块完成进度计划,⼈员配备计划等。