1.1需求规格说明书需求规格相当于软件开发的图纸,一般说,软件需求规格说明书的格式可以根据项目的具体情况采用不同的格式,没有统一的标准。
下面是一个可以参照的软件需求规格说明书的模板。
1.导言1.1目的[说明编写这份项目需求规格的目的,指出预期的读者]1.2背景说明:a)待开发的产品名称;b)本项目的任务提出者、开发者、用户及实现该产品的单位;c)该系统同其他系统的相互来往关系。
1.3缩写说明[缩写][缩写说明]列出本文件中用到的外文首字母组词的原词组。
1.4术语定义[术语][术语定义]列出本文件中用到的专门术语的定义。
1.5参考资料[编号]《参考资料》[版本号]列出相关的参考资料。
1.6版本更新信息具体版本更新记录如表所列。
表版本更新记录2.任务概述2.1 系统定义本节描述内容包括:●项目来源及背景;●项目要达到的目标,如市场目标、技术目标等;●系统整体结构,如系统框架、系统提供的主要功能,涉及的接口等;●各组成部分结构,如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。
2.2 应用环境本节应根据用户的要求对系统的运行环境进行定义,描述内容包括:●设备环境;●系统运行硬件环境;●系统运行软件环境;●系统运行网络环境;●用户操作模式;●当前应用环境。
2.3 假定和约束列出进行本产品开发工作的假定和约束,例如经费限制、开发期限等。
列出本产品的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长以及本产品的预期使用频度等重要约束。
3.需求规定1.1对功能的规定本节依据合同中定义的系统组成部分分别描述其功能,描述应包括:●功能编号;●所属产品编号;●优先级;●功能定义;●功能描述。
1.2对性能的规定本节描述用户对系统的性能需求,可能的系统性能需求有:●系统响应时间需求;●系统开放性需求;●系统可靠性需求;●系统可移植性和可扩展性需求;●系统安全性需求;●现有资源利用性需求。
1.2.1精度说明对该产品的输入、输出数据精度的要求,可能包括传输过程中的精度。
1.2.2时间特性要求说明对于该产品的时间特性要求,如对:a)响应时间;b)更新处理时间;c)数据的转换和传送时间;d)计算时间等的要求。
1.2.3灵活性说明对该产品的灵活性的要求,即当需求发生某些变化时,该产品对这些变化的适应能力,如:a)操作方式上的变化;b)运行环境的变化;c)同其他系统的接口的变化;d)精度和有效时限的变化;e)计划的变化或改进。
对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
1.3输入输出的要求解释各输入输出的数据类型,并逐项说明其媒体、格式、数值范围、精度等。
对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
1.4数据管理能力要求说明需要管理的文卷和记录的个数、表和文的大小规模,要按可预见的增长对数据及分量的存储要求做出估算。
1.5故障处理要求列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
1.6其他要求如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
4.运行环境规定4.1 设备列出该产品所需要的硬件环境。
说明其中的新型设备及其专门功能,包括:a)处理器型号及内存容量;b)外存容量、联机或脱机、媒体及其存储格式。
设备的型号及数量;c)输入及输出设备的型号和数量,联机或脱机;d)数据通信设备的型号和数量;e)功能键及其他专用硬件。
4.2 支持软件列出支持软件。
包括要用到的操作系统、编译程序、测试软件等。
4.3 双方签字需求方(需方):开发方(供方):日期:1.2概要设计说明书概要设计说明书格式规范是指在概要设计阶段,制定概要设计报告所依据的标准,若在承接产品时,用户提供了概要设计说明书,则按此标准检查概要设计报告是否在内容上满足要求,若未提供概要设计说明书则需按此标准建立概要设计说明书。
这里提供一个标准以供参考。
1.导言1.1目的说明文档的目的。
1.2范围说明文档覆盖的范围。
1.3缩写说明定义文档中所涉及的缩略语(若无则填写无)1.4术语定义定义文档内使用的特定术语(若无则填写无)1.5引用标准列出文档制定所依据、引用的标准(若无则填写无)1.6参考资料列出文档制定所参考的资料(若无则填写无)1.7版本更新信息记录文档版本修改的过程,具体版本更新记录如表1所列表版本更新记录2.概述对系统定义和规格进行分析,并以此确定:●设计采用的标准和方法;●系统结构的考虑;●错误处理机制的考虑。
3.规格分析根据需求规格或产品规格对系统实现的功能进行分析归纳,以便进行概要设计。
4.系统体系结构根据已选用的软件、硬件以及网络环境构造系统的整体框架,划分系统模块,并对系统内各个模块之间的关系进行定义。
确定已定义的对象及其组件在系统内如何传输、通信。
如果本系统是用户最终投入使用系统的一个子集或是将要使用现有的一些其他相关系统,在此应对他们各自的功能和相互之间的关系给予具体的描述。
[可通过图形的方式表示系统体系结构]5.界面设计定义设计用户的所有界面6.接口定义通常设计应考虑的接口包括:人机交互接口人机交互接口应确定用户采用何种方式同系统交互,如键盘录入、鼠标操作、文件输入等以及具体的数据格式,其中包括具体的用户界面的设计形式。
尽早确定人机交互接口,有利于确定概要设计的其他方面。
用户界面设计原则:●命令排序:(1)最常用的放在前面;(2)按习惯工作步骤排序;●极小化:尽量少用键盘组合命令,减少用户击键次数;●广度和深度:由于人的记忆局限,层次不宜大于3;●一致性:使用一致的术语、一致的步骤、一致的动作行为;●显示提示信息;●减少用户记忆内容;●存在删除操作时。
应能恢复操作;●用户界面吸引人;网络接口若本系统跨异种网络运行则应确定网络接口或采用何种网络软件,以使系统各部分间能有效地联络、通信、交换信息等,从而使整个系统紧密有效的结合在一起。
系统与外部接口系统经常会与外部进行数据交换,因此应确定数据交换的时机、方式(如是批处理方式还是实时处理)、数据交换的格式(如是采用数据包还是其他方式)等。
系统内模块之间的接口系统内部各模块之间也会进行数据交换,因此应确定数据交换的时机、方式等。
数据库接口系统内部的各种数据通常会以数据库的方式保存,因此在接口定义时应确定与数据库进行数据交换的数据格式、时机、方式等。
7.模块设计根据项目的时机需求情况,可将系统划分成若干模块,分别描述各模块的功能。
这样可将复杂的系统简化、细化,有利于今后的设计和实现。
划分各模块时,应尽量使其具有封闭性和独立性,具有低耦合性,减少各模块之间的关联,使其便于实现、调试、安装和维护。
7.1 模块功能描述该模块在整个系统中所处的位置和所起的作用以及和其他模块的相互关系,该模块要实现的功能,对外部输入数据外部触发机制的具体要求和规定。
如果采用OO技术,可结合Use Case技术进行描述。
7.2 模块对象(组件)对模块涉及的输入/输出,用户界面、对象或组件,对象或组件的关系以及功能实现流程进行定义。
如果采用OO技术,可使用顺序(sequence)图描述功能实现流程。
对象设计应包括:Class Name (类名);Describe (类描述);Hierarchy (继承关系);Public Attribute (公共属性)Public Operation (公共操作)Private Attribute (私有属性)Private Operation (私有操作)Protected Attribute (保护属性)Protected Operation (保护操作)组件设计应包括:●组件属性;●组件关联;●组件操作;●实现约束。
7.3 对象(组件)的触发机制规定对象(组件)中各个操作在什么外部条件触发下被调用以及调用后的结果。
7.4 对象(组件)的关键算法如果对象(组件)中涉及关键算法,如采用何种算法加密、何种算法搜索等,需在此规定并予以相应的说明。
至于其他具体操作的算法可在系统构造中去设计实现。
8.故障检测和处理机制8.1 故障检测和触发机制系统发生故障可以有多种检测机制,如自动向上层汇报、由上层定时检测、将故障写入错误文件等。
在此应明确系统所采用的故障检测机制。
8.2 故障处理机制他描述故障发生后系统如何处理,如只发个消息显示出错信息、写入一个文件、或采取相应的措施,在这里应进行详尽的描述。
9.数据库设计9.1 数据库管理系统选型明确指出选用的数据库管理系统类型、版本、服务器与数据库、客户机与数据库之间的接口。
9.2 设计E-R图根据系统数据实体之间的关系实际数据库E-R图。
9.3 数据库表设计基于E-R图设计数据库物理表。
10.系统开发平台根据概要设计的结果选择确定系统开发所需的平台,包括硬件平台、操作系统以及开发工具等。
1.3详细设计说明书1.导言1.1目的说明文档的目的1.2范围说明文档覆盖的范围1.3缩写说明定义文档中所涉及的缩略语(若无则填写无)1.4术语定义定义文档内使用的特定术语(若无则填写无)1.5引用标准列出文档制定所依据、引用的标准(若无则填写无)1.6参考资料列出文档制定所参考的资料(若无则填写无)1.7版本更新信息记录文档版本修改的过程,具体版本更新记录如表1所列表版本更新记录2.系统设计概述本小节描述的主要内容包括:●简要描述系统的整体结构(文字和框图相结合)●模块划分和分布(如果采用OO技术,则可以Component图和Package图表示)●系统采用的技术和实现方法3.详细设计概述本小节以模块为单位简要描述:●模块用途●模块功能●特别约定4.详细设计本小节以模块为单位详细描述:●模块的定义●模块的关联●输入/输出数据说明⏹变量描述:重要的变量及其用途⏹约束或限制条件●实现描述/算法说明⏹说明本模块的实现流程,包括条件分支和异常处理⏹模块的应用逻辑⏹模块的数据逻辑这部分可以通过流程图或者伪代码的方式实现。
5.程序提交清单程序提交清单以模块为单位分别进行描述,格式如表2所示。
表程序提交清单格式1.4编码规范*编码阶段的产品是按照代码标准和规范编写的源代码,可在必要地时候进行部署。
所以提交的文档包括:●代码标准和规范●源代码1.5测试文档1.5.1.测试计划文档测试是比较复杂和困难的过程,为了很好控制测试的复杂性和困难性,需要仔细编写完整的测试文档。
这里我们提供一个可以作为参照的系统测试计划模板。
1. 介绍1.1 目的说明文档的目的。