需求规格说明书【样本】

                                                                             编号        

 

                                                                             版本        

 

 

 

 

 

         项目名称                                  

 

 

         项目负责人                                

 

 

 

 

                              

 

                             

 

                             

 

                             

 

 

 

 

 

 

 

                                                 


   

 

1 引言............................................................................................................(  )

1.1 编写目的.................................................................................................(  )

1.2 参考资料.................................................................................................(  )

1.3 术语定义.................................................................................................(  )

2 概述............................................................................................................(  )

2.1 产品的描述.............................................................................................(  )

2.2 产品的功能.............................................................................................(  )

2.3 实现语言... .............................................................................................(  )

2.4 用户特点.................................................................................................(  )

2.5 一般约束.................................................................................................(  )

3 具体需求....................................................................................................(  )

3.1 功能需求.................................................................................................(  )

3.1.1 引言......................................................................................................(  )

3.1.2 输入......................................................................................................(  )

3.1.3 处理......................................................................................................(  )

3.1.4 输出......................................................................................................(  )

3.2 外部接口需求.........................................................................................(  )

3.2.1 用户界面..............................................................................................(  )

3.2.2 硬件接口..............................................................................................(  )

3.2.3 软件接口..............................................................................................(  )

3.2.4 通信接口..............................................................................................(  )

3.3 性能需求.................................................................................................(  )

3.3.1 静态数值需求......................................................................................(  )

3.3.2 动态数值需求......................................................................................(  )

3.4 设计约束.................................................................................................(  )

3.4.1 硬件限制..............................................................................................(  )

3.4.2 其他约束..............................................................................................(  )

3.5 属性.........................................................................................................(  )

3.5.1 可使用性..............................................................................................(  )

3.5.2 安全性..................................................................................................(  )

3.5.3 可维护性..............................................................................................(  )

3.5.4 可移植性..............................................................................................(  )

3.6 其它需求.................................................................................................(  )

3.6.1 数据库..................................................................................................(  )

3.6.2 操作......................................................................................................(  )

3.6.3 故障处理..............................................................................................(  )

4 数据需求....................................................................................................(  )

4.1 数据描述.................................................................................................(  )

4.2 数据采集.................................................................................................(  )

4.2.1 要求与范围..........................................................................................(  )

4.2.2 处理......................................................................................................(  )

4.3 数据词典.................................................................................................(  )

5 支持信息....................................................................................................(  )

5.1 目次和索引.............................................................................................(  )

5.2 附录.........................................................................................................(  )


1 引言

1.1 编写目的

    说明编写需求规格说明的主要目的。

1.2 参考资料

    列出下列资料的作者、标题、编号、发表日期和出版单位,必要时说明如何得到这些资料:

    a. 本项目经核准的计划任务书、合同和上级机关的批文;

    b. 项目开发计划;

    c. 本文档中引用的文件、资料,其中应包括软件开发规范。

1.3 术语定义

    列出本文档中用到的可能会引起混淆的专门术语和缩写词的原文。

2 概述

    本章描述软件产品的特性及影响其需求的一般因素。

    必须注意到:本章不罗列具体的需求,而仅设法使需求更加易于理解。

2.1 产品的描述

    a. 用一个名字标识要生产的软件产品。例如,宿主数据库管理系统、报表生成器等;

    b. 说明软件产品将干什么,如果需要的话,还要说明这个软件产品不干什么;

    c. 说明此软件产品的应用情况及开发意图,其中应当:尽可能精确地描述所有相关的利益、目的以及最终目标:如果有较高层次的规格说明存在(例如,已存在系统需求规格说明),则应使这里的陈述与高层次规格说明中的类似陈述一致;

    d. 列出开发项目的委托单位、承办单位及其主管部门;

    e. 如果被开发软件是独立的,则应在本节描述被开发软件的概况;

    f. 如果需求规格说明定义的软件是一个较大的系统或项目中的一个组成部门,那么本节应当:概述这个较大的系统或项目的每一个组成部分的功能,并标识其接口;标识被开发软件的主要外部接口。注意,这里仅仅是一个综述性的描述。

    用图形表达一个较大的系统或项目的主要组成、相互联系和外部接口是非常直观的。

    本节不应当具体的进行设计方案的描述,也不应当描述解决问题时的具体设计约束。本节应对在需求规格说明具体需求一章中列出的设计约束提出理由。

2.2 产品的功能

    本节应简单叙述被开发软件的功能。例如,对于一个财务管理系统,需求规格说明可以在这节描述帐目维护、财务报表等的基本要求,而不必把为完成这些功能所要求的大量细节描写出来。有时本节内容可以直接从较高层次的规格说明中引用(如果存在)。为了清晰起见,要注意:

    a. 应当给出一个使用户、委托单位或者第一次读这个文档的人易理解的功能清单;

    b. 可以用图形表达不同的功能和它们之间的关系。但要注意,这样的图形不是产品设计时需要的,而只是一个有效的解释性工具。

    本节不应当陈述具体需求,而只应对需求规格说明具体需求一章中要描述的需求给出理由。

2.3 实现语言

    本节要列出所采用的编程语言。

2.4 用户特点

    本节描述影响具体需求的该产品最终用户的特点。

    软件生存周期的运行和维护阶段,许多人员与系统有关。这些人员中有用户、操作员、维护人员和系统工作人员。这些人的某些特点,象教育水平、经验、技术专长等,都对系统运行有重要影响。

    如果系统的大多数用户是临时用户,那么他们的具体需求可能是要求系统包含有许多如何完成基本功能的提示,而不是记忆许多繁琐的细节。

    本节不陈述具体需求或针对某些特殊需求而考虑的若干具体设计约束,本节应对在需求规格说明的具体需求一章中描述的某些具体需求或设计约束提供理由。

2.5 一般约束

    本节给出对一些条款的概括描述,这些条款将影响承办单位在设计阶段的工作和计划,这些条款包括:

    a. 管理方针;

    b. 硬件的限制;

    c. 与其他应用的接口;

    d. 并行操作;

    e. 实时性能;

    f. 检查功能;

    g. 控制功能;

    h. 信号交换协议;

    i. 应用的临界点;

    j. 安全和保密方面的考虑。

    本节不列举具体的需求或具体的设计约束。但是,应对具体需求一章中描述的某些具体需求和设计约束提供理由。

3 具体需求

    本章包括软件开发者进行设计时所需要的全部细节。通常本章是需求规格说明中篇幅最长和最重要的部分。

    a. 必须按照本标准4.4描述的标准(可验证的、无歧义的等),对需求规格说明中的每个具体需求给出详细定义;

    b. 应当利用引言、概述和附录部分中的有关讨论及交叉引用关系,提供每个具体需求的背景及注释内容;

    c. 具体需求的一种分类方法为:功能需求,性能需求,设计约束,属性,外部接口需求,其他需求。

    必须注意到:

    a. 具体需求应当按逻辑可读的方式组织;

    b. 每一个具体需求应使用指定的方法进行客观的验证。

3.1 功能需求

    本节描述软件产品的输入经过什么处理,产生什么输出,它描述在软件中发生的基本操作。

对于每一类功能或者有时对于每一个功能,需要描述其输入、处理和输出等需求。这些内容用四小节描述:

3.1.1 引言。在本节中应当描述完成本功能的目的,所使用的方法和技术,还应当包括可以清楚说明本功能意图的来源或背景材料以及有关需求的注释内容。

3.1.2 输入。本节应包括:

    a. 对本功能全部输入数据的详细描述,它们包括:输入源,数量,度量单位,时间关系,有效输入的范围,精度和公差;

    b. 操作员具体的控制要求,其中包括操作员活动的描述,控制台或操作员的位置等。例如,在打印表格时,要求操作员调整打印纸位置的需求;

    c. 指明引用的接口规格说明或相应的接口控制文档。

3.1.3 处理。本节陈述为获得期望的输出,而对输入数据和中间参数进行的全部操作。它可包括如下内容:

    a. 输入数据的有效性检查;

    b. 操作的精确顺序,包括事件的时间设定;

    c. 非正常情况的处理,例如对溢出、通信故障、错误处理的响应;

    d. 操作对参数的影响;

    e. 降级运行的需求;

    f. 把系统输入变换为相应输出的方法(如方程式、数学算法和逻辑操作)。例如可以列出:在工资管理软件包中关于房租计算的公式,求解微分方程的算法,天气预报软件包使用的气象学模型;

    g. 输出数据的有效性检查。

3.1.4  输出。这一节应包括:

3.1.4.1 该功能所有输出数据的详尽描述,包括:

    a.输出的目的地;

    b.数量;

    c.度量单位;

    d.时间关系;

    e.有效输出的范围,包括精度和公差;

    f.非法值的处理;

    g.错误信息。

3.1.4.2 有关接口说明或接口控制文档的参考资料。对于非标准输出设备此部分内容尤其重要。

    对于某些输入输出并重的系统来说,需求规格说明应描述所有有意义的输入输出对及其序列。当一个系统要求记录它的状态,并根据当前输入和过去的状态确定输出时,序列是重要的。这种系统的工作如同有穷状态机。

3.2 外部接口需求

3.2.1 用户界面

    本节应当描述:

    a. 用户使用软件产品时的界面需求。例如,如果系统的用户通过显示统筹终端操作,就必须指定如下需求:对屏幕格式的要求,报表或菜单的页面显示格式和内容,有关输入和输出的时间,用户命令的形式;

    b. 界面的优化问题。可以简单的用一个表列出系统用户做什么或不做什么。例如,要求的是长的还是短的出错信息。与其他需求一样,这种需求也应该是可验证的。

3.2.2 硬件接口

    本节应当陈述软件产品与系统硬件设备之间每一个接口的逻辑特点。还可能包括如下事宜:要支持什么样的设备,如何支持这些设备。

3.2.3 软件接口

    在这里应当陈述其它有关软件(如数据库管理系统、操作系统、或者数学软件包)的使用方法,以及同其它相连接软件的接口。

    对每一有关的软件产品,必须提供如下内容:

    a. 名字;

    b. 助忆符;

    c. 版本号;

    d. 源程序。

    对于每个与其它软件接口,本部分应:

    a. 描述与本软件产品相联接的软件的基本功能,以及达到的目的;

    b. 描述传递信息的内容和格式定义接口。对已有完整文档的接口,只需要引用描述该接口的文档。

3.2.4 通信接口

    本节应说明各种通信接口。例如,局部网络协议等。

3.3 性能需求

    本节应从整体上说明该软件、人与该软件相互作用的静态或动态数值需求。

3.3.1 静态数值需求包括:

    a. 支持的终端数;

    b. 支持的同时操作的用户数;

    c. 处理文件和记录数;

    d. 表和文件的大小;

    e. 对数据的精度要求,包括数学的、逻辑的传输的精度等。

3.3.2 动态数值需求包括诸如处理和任务的数量,以及在正常情况下和峰值工作条件下在一定时间周期中要处理的数据总数。有关响应时间、更新处理时间、数据转换和传输时间也在本节陈述。

3.4 设计约束

    说明其它需遵守的硬件限制等标准和设计约束。

3.4.1 硬件限制

    a. 硬件配置的特点(接口数、指令系统等)

    b. 主存贮器和辅助存贮器的容量;

    c. CPU速度。

3.4.2 其他约束

    本节描述除硬件限制外的其它约束。它们有:

    a. 报表格式;

    b. 数据命名;

    c. 检查追踪。

3.5 属性

在软件的具体需求中可以有若干属性。下面仅列出其中的一部分,应注意它们不是一个完整的清单。

3.5.1 可使用性

    列出保证软件的可使用性达到预定要求的需求。如检测点、恢复和重启动性等。

3.5.2 安全性

    本节指出保护软件的要求,以防止突然或非法的访问、使用、修改或者泄密。本节的具体需求包括:

    a. 利用某些密码技术;

    b. 掌握特殊的记录或历史数据;

    c. 给不同的模块分配不同的功能;

    d. 限定一个程序中某些区域间的通讯。

3.5.3 可维护性

    本节指定若干需求,以确保软件是可维护的。

3.5.4 可移植性

    本节列出确保用户程序和用户界面的兼容方面的需求(如果有的话),以及为把被开发软件从一种运行环境移植到另一个运行环境的需求等。

3.6 其它需求

    由于软件的类型、用户的特点等,某些特殊的需求在下列各节描述。

3.6.1 数据库

    说明作为产品一部分被开发的数据库的需求。例如:使用的频率,访问的能力,数据元素、记录和文件的关系,数据保留需求等。

3.6.2 操作

    说明用户要求的常规和特殊的操作,例如:用户初始的操作,数据处理支持的功能,后援和恢复操作等。

3.6.3 故障处理

    列出可能发生的软件和硬件故障,并指出这些故障对各项性能指标所产生的影响以及对故障处理的要求。

4 数据需求

4.1 数据描述:

    数据分静态数据和动态数据两类。静态数据指在运行过程中一般不改变的数据。动态数据则指运行中要输入、输出的数据,以及在运行过程中要改变的数据。

    a. 静态数据  列出作为控制和引用而使用的静态数据元素;

    b. 动态输入数据  列出动态输入数据元素,包括在常规操作和特殊操作中要输入的数据元素;

    c. 动态输出数据  列出动态输出数据元素,包括在常规运行中和特殊情况下输出的数据元素;

    d. 内部生成数据  列出对用户软件之内部生成的数据元素;

    e. 说明对数据元素的约束  列出由于需要进一步扩充或使用而对数据元素提出的约束。例如:最大容量,文件和记录的最大个数等,必须着重描述在设计、实现和运行中被确定是临界点的那些约束。

4.2 数据采集

4.2.1 要求与范围

    本节说明数据由委托单位还是由承办单位采集,以及说明被采集数据的有关特性,它们包括:

    a. 输入单位  说明输入数据通过什么组织机构输入;

    b. 输入介质和设备  列出用于把数据输入系统内部的介质和设备;

    c. 输出介质和设备  列出用于接受输出数据的介质和设备;

    d. 数据范围  列出数据的有效范围;

    e. 量纲  给出数学型数据的度量单位、增量、零点的定标。对于非数字型数据,要列出每一种合法值的关系;

    f. 转换因子  对于必须经过模拟转换或数字转换处理的测试量,要给出转换因子。

    g. 更新和处理的频度  给出预定的输入数据的更新频率和处理频率。

4.2.2 处理

     对数据采集的处理规程制订专门的规定,包括符合实际情况的详细格式、预计的数据通讯介质等。

4.3 数据词典

    本节对“需求规格说明”中出现的全部数据元素进行说明。包括它们的来源、名称、类型等。

5 支持信息

    支持信息有目次、附录和索引,它们使需求规格说明更易于使用。

5.1 目次和索引是“需求规格说明”重要组成部分,应当按照易使用的原则编写目次和索引。

5.2 附录是需求规格说明的可选组成部分。可根据需要编制附录。附录可以包括:

    a. 输入、输出的格式实例,或用户调查结论;

    b. 对有助于阅读需求规格说明的支持信息和背景材料;

    c. 对软件所解决问题的描述;

    d. 用户或委托单位的历史、背景、发展和操作特点;

    e. 按进度进行编排的交叉引用表。以及需要进一步完善的软件需求;

    f. 用于编码和介质的专用装配命令,以满足保密、输出、初始装入或其它需求。

    当需求规格说明有附录时,必须明确指明附录是否为需要考虑此部分。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值