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 对象(组件)的关键算法
如果对象(组件)中涉及关键算法,如采用何种算法加密、何种算法搜索等,