SRS:Software Requirement Specification,软件需求规格说明书。
文档结构如下:

1. 引言

引言提出了对软件需求规格说明的纵览,这有助于读者理解文档如何编写并且如何阅读和解释。

1.1. 目的

对产品进行定义,在该文档中详尽说明了这个产品的软件需求,包括修正或发行版本号。如果这个软件需求规格说明只与整个系统的一部分有关系,那么只定义文档中说明的部分或子系统。

1.2. 文档约定(实际文档无)

描述编写文档时所采用的标准或排版约定,包括正文风格、提示区或重要符号。列如,说明了高层需求的优先级是否可以被其所有细化的需求继承,或者每个需求陈述是否都有其自身的优先级。

1.3. 预期的读者和阅读建议

列举了软件需求规格说明所针对的不同读者,列如开发人员、项目经理、营销人员、用户、测试人员或文档的编写人员。描述了文档中剩余部分的内容及其组织结构。提出了最适合于每一类型读者阅读文档的建议。

1.4. 产品的范围

提供了对指定的软件及其目的的简短描述,包括利益和目标。把软件与企业目标或业务策略相联系。可以参考项目视图和范围文档而不是将其内容复制到这里。

1.5. 参考文献

列举了编写软件需求规格说明时所参考的资料或其它资源。这可能包括用户界面风格指导、合同、标准、系统需求规格说明、使用实例文档,或相关产品的软件需求规格说明。在这里应该给出详细的信息,包括标题名称、作者、版本号、日期、出版单位或资料来源,以方便读者查阅这些文献。

2. 综合描述

这一部分概述了正在定义的产品以及它所运行的环境、使用产品的用户和已制知的限制、假设和依赖。

2.1. 产品的前景

描述了软件需求规格说明中所定义的产品的北京和起源。说明了该产品是否是产品系列中的下一成员,是否是成熟产品所改进的下一产品、是否是现有应用程序的替代品,或者是否是一个新型的、自含型产品。如果软件需求规格说明定义了大系统的一个组成部分,那么就要说明这部分软件是怎样与整个系统相关的,并且要定义出两者之间的接口。

2.2. 产品的功能

概述了产品所具有的主要功能。其详细内容将在系统特性中描述,所以在此只需要概略地总结,例如用列表的方法给出。很好地组织产品的功能,使每个读者都易于理解。用图形表示主要的需求分组以及它们之间的联系,例如数据流程图的顶层图或类图,都是有用的。

2.3. 用户类和特征

确定你觉得可能使用该产品的不同用户类并描述它们相关的特征。有一些需求可能只与特定的用户类相关。将该产品的重要用户类与那些不太重要的用户类区分开。

2.4. 运行环境

描述了软件的运行环境,包括硬件平台、操作系统和版本,还有其它的软件组件或与其共存的应用程序。

2.5. 设计和实现上的限制

确定影响开发人员自由选择的问题,并说明这些问题为什么成为一种限制。可能的限制包括如下内容:

  • 必须使用或者避免的特定技术、工具、编程语言和数据库。
  • 所需求的开发规范和标准(例如,如果由客户的公司负责软件维护,就必须定义转包者所使用的设计符号表示和编码标准。)
  • 企业策略、政府法规或工业标准。
  • 硬件限制,例如定时需求或存储器限制。
  • 数据转换格式标准。

2.6. 假设和依赖

列举出在对软件需求规格说明中影响需求陈述的假设因素(与已知因素相对立)。这可能包括你打算要用的商业足见或有关开发或运行环境的问题。你可能认为产品将符合一个特殊的用户界面设计约定,但是另一个SRS读者却可能不这样认为。如果这些假设不正确、不一致或被更改,就会使项目受到影响。

此外,确定项目对外部因素存在的依赖。例如,如果你打算把其它项目开发的组件集成到系统中,那么你就要依赖哪个项目按时提供正确的操作组件,如果这些依赖已经记录到其它文档(来历如项目计划)中了,那么在此就可以参考其它文档。

3. 外部接口需求

利用本节来确定可以保证新产品与外部组件正确连接的需求。关联图表示了高层抽象的外部接口。需要把对接口数据和控制组件的详细描述写入数据字典中。如果产品的不同部分有不同的外部接口,那么应把这些外部接口的详细需求并入到这一部分的实例中。

3.1. 用户界面

陈述所需要的用户界面的软件组件。描述每个用户界面的逻辑特征。以下是可能要包括的一些特征:

  • 将要采用的图形用户界面(GUI)标准或产品系列的风格。
  • 屏幕布局或解决方案的限制。
  • 将出现在每个屏幕的标准按钮、功能或导航链接(例如一个帮助按钮)。
  • 快捷键。
  • 错误信息显示标准。

对于用户界面的细节,例如特定对话的布局,应该写入一个独立的用户界面规格说明中,而不能写入软件需求规格说明中。

3.2. 硬件接口

描述系统中软件和硬件每一接口的特征。这种描述可能包括支持的硬件类型、软硬件之间的交流的数据和控制信息的性质以及使用的通信协议。

3.3. 软件接口

描述该产品与其他外部组件(由名字和版本识别)的连接,包括数据库、操作系统、工具、库和集成的商业组件,明确并描述在软件组件之间交换数据或消息的目的,描述所需要的服务以及内部组件通令的性质,确定将在组件之间共享的数据,如果必须用一种特殊的方法来实现数据共享机制,例如在多任务操作系统中的一个全局数据区,那么就必须把它定义为一种实现上的限制。

3.4. 通信接口

描述与产品所使用的通信功能相关的,包括电子、Web浏览器、网络通信标准或协议及电子表格等等。定义了相关的消息格式。规定通信安全或加密问题、数据传输速率和同步通信机制。

4. 系统特性

功能是根据系统特性即产品所提供的主要服务来组织的。你可能更喜欢通过使用实例、运行模式、用户类、对象类或功能等级来组织这部分内容(IEEE1998)。你还可以使用这些元素的组合。总而言之,你必须选择一种使读者易二理解预期产品的组织方案。

仅用简短的语句说明特性的名称,例如“4.1拼写检查和拼写字典管理”。无论你想说明何种特性,阐述每种特性时都将重述从4.1-4.3这三步系统特性。

4.1. 说明和优先级

提出了对该系统特性的简短说明并指出该特性的优先级是高、中,还是低。或者你还可以包括对特定优先级部分的评价,例如利益、损失、费用和风险,其相对优先等级可以从1(低)到9(高)。

4.2. 激励/响应序列

列出输入激励(用户动作、来自外部设备的信号或其它触发器)和定义这一特性行为的系统响应序列。就像在第8章讲座的那样,这些序列将与使用实例相关的对话元素相对应。

4.3. 功能需求

列出与该特性相关的详细功能。这些是必须提交给用户的软件功能,使用户可以使用所提供的特性招待6服务或者使用所指定的使用实例招待任务。描述产品如何响应可预知的出错条件或者非法输入或动作。就像本章开头所描述的那样,你必须唯一的标识每个需求。

5. 其它非功能需求

这部分列举出了所有非功能需求,而不是外部接口需求和限制。

5.1. 性能需求

阐述了不同的应用领域对产品性能的需求,并解释它们的原理以帮助开发人员作出合理的设计选择。确定相互合作的用户数或者所支持的操作、响应时间以及与实时系统的时间关系。你还可以在这里定义容量需求,例如存储器和磁盘窨的需求或者存储在数据库中表的最大行数。尽可能详细地确定性能需求。可能需要针对每个功能需求或特性分别陈述其性能需求,而不是把它们都集中在一起陈述。例如,“在运行微软Windows 2000的450MhzPentium II的计算机上,当系统至少有50%的空闲资源时,95%的目录数据库查询必须在两秒内完成”。

5.2. 安全设施需求

详尽陈述与产品使用过程中可能发生的损失、破坏或危害相关的需求。定义必须采取的安全保护或动作,还有那些预防的潜在的危险动作。明确产品必须遵从的安全标准、策略或规则。一个安全设施需求的范例如下:“如果油箱的压力超过了规定的最大压力的95%,那么必须在1秒种内终止操作”。

5.3. 安全性需求

详尽陈述与系统安全性、完整性或与私人问题相关的需求,这些问题将会影响到产品的使用和产品所创建或使用的数据的保护。定义用户身份确认或授权需求。明确产品必须满足的安全性或保密性策略。你可能更喜欢通过称为完整性的质量属性来阐述这些需求,完整性将在第11章介绍。一个软件系统的安全需求的范例如下:“每个用户在第一次登录后,必须更改翁的最初登录密码。最初的登录密码不能重用。”

5.4. 软件质量属性

详尽陈述与客户或开发人员至关重要的其产品质量特性。这些特性必须是确定、定量的并在可能时是可验证的。至少应指明不同属性的相对侧重点,例如易用程度优于易学程度,或者可移植优于有效性。

5.5. 业务规则

列举出有关产品的所有操作规则,例如什么人在特定环境下可以进行何种操作。这些本身不是功能需求,但它们可以暗示某些功能需求执行这些规则。一个业务规则的范例如下:“只有持有管理员密码的用户才能执行$100.00或更大额的退款操作。“

5.6. 用户文档

列举出将与软件一同发行的用户文档部分,例如,用户手册、在线帮助和教程。明确所有已知的用户文档的交付格式和标准。

6. 其它需求

定义在软件需求规格说明的其它部分未出现的需求,例如国际化需求或法律上的需求。你还可以增加有关操作、管理和维护部分来完善产品安装、配置、启动和关闭、修复和容错,以及登录和监控操作等方面的需求。在模板中加入与你的项目相关的新部分。如果你不需要增加其它需求,就省略这一部分。

附录A:词汇表

定义所有必要的术语,以便读者可以正确地解释软件需求说明,包括词头和缩写。你可能希望为整个公司创建一张跨越多项项目的词汇表,并且只包括特定于单一项目的软件需求规格说明中的术语。

附录B:分析模型

这个可选部分包括或涉及到相关的分析模型的位置,例如数据流程图、类图、状态转换图或实体-关系图。

附录C:待确定问题的列表

编辑一张在软件需求规格说明中待确定问题的列表,其中每一表项都是编上号的,以便于跟踪调查。

参考实现:

  1. https://gitee.com/isdu2020/srs

  2. https://blog.csdn.net/WhatWhoWhere/article/details/1865476

SRS:软件需求规格说明书相关推荐

  1. 如何写《软件需求规格说明书》

    转载自:https://www.jianshu.com/p/f9bcf52f4321 一.任务突然从天而降 自己维护一个终端一年多,今天主管突然要求补写一下<软件需求规格说明书>,有些傻眼 ...

  2. No.7软件需求规格说明书及UML

    软件需求规格说明书(SRS)是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为整个开发工作的基础. 软件需求规格说明书 国家标准BG/T 8567 ...

  3. 软件需求规格说明书模板有吗

    软件需求规格说明书(SRS)是软件工程中的一个重要文档,它描述了软件系统的功能.性能.界面和限制. 通常,软件需求规格说明书模板包括以下内容: 引言: 包括SRS的目的.范围.定义.约定.参考文献等信 ...

  4. 软件需求规格说明书通用模版_通用需求挑战和机遇

    软件需求规格说明书通用模版 When developing applications there will be requirements that are needed on more than o ...

  5. 【软件测试】导致软件缺陷的最大原因是软件需求规格说明书

    导致软件缺陷的最大原因是软件需求规格说明书. 因为软件缺陷产生的原因有很多,典型的原因如下: 软件本身的复杂性 开发人员的问题 需求的变化 进度的压力 对文档不重视 沟通不畅 偏差的累积 各种来源导致 ...

  6. 软件需求工程 高校教学平台 软件需求规格说明书 part 1 (重点!!!)

    点击查看 软件需求工程 高校教学平台 卷首语 文章目录 引言 编写目的 项目背景 预期的读者和阅读建议 预期读者 阅读建议 参考资料 总体描述 产品基本信息 产品前景 用户类及其特征 产品功能概述 用 ...

  7. 软件需求规格说明书--文档模板

                  { 产品名称} 软件需求规格说明书           编 写 人 : 编写日期 :     年     月     日 文档修订记录 版本编号 说明:如形成文件.变更内容 ...

  8. 一份合格的软件需求规格说明书的要求

    合格的软件需求规格说明书 软件需求规格说明作为产品需求的最终成果必须具有综合性:必须包括所有的需求.开发者和客户不能作任何假设.如果任何所期望的功能或非功能需求未写入软件需求规格说明那么它将不能作为协 ...

  9. [文档] 软件需求规格说明书

    软件需求规格说明书 1 范围 1.1 标识 本条应描述本文档所适用系统和软件的完整标识,适用时,包括其标识号.名称.缩略名.版本号 和发布号. 1.2 系统概述 本条应概述文档适用的系统和软件的用途: ...

  10. 软件需求规格说明书——学生成绩查询系统

    软件需求规格说明书--学生成绩查询系统 --------------------------------------------- ---------------------------------- ...

最新文章

  1. Python Tools for Machine Learning
  2. 转载:有关SQL server connection Keep Alive 的FAQ(3)
  3. 【泰语歌】กลับคำสาหล่า 歌手:Mike Piromporn
  4. 深度学习tensorflow框架的张量
  5. 一个简单的XML文档例子
  6. 基于AliOS Things玩转智能语音
  7. 七、内存、寄存器数据的传送
  8. Pycharm运行项目代码时输入可选参数
  9. HDTV(1920x1080)码率和视频质量关系的研究 1 (前期准备)
  10. Java Web文件上传原理分析(不借助开源fileupload上传jar包)
  11. 工具:帆软FineBI使用指南
  12. 理光打印机服务器响应错误,理光网络打印机服务器设置
  13. 服务器怎么读取加密狗信息,[求助]菜鸟请教:加密狗读取数据如下,请问如何分析这些数据,怎样复制这个加密狗!...
  14. 计算机或可编程控制器,浅谈可编程控制器的应用
  15. 霜降多胃病 三道养胃菜请收好
  16. Linux中有关文件的命令总结(查看、编辑、压缩、配置)
  17. 「设计模式(二) - 观察者模式」
  18. 用Python 画小猪佩奇
  19. java gc内存_Java内存模型和GC机制
  20. 为什么有些人上午容易犯困?

热门文章

  1. 基于Qt编写的在线音乐播放器
  2. C语言连接Oracle数据库
  3. 高德地图:No implementation found for void com.autonavi.base.ae.gmap.GLMapEngine.nativeInitParam
  4. 计算机二级vf相关 书籍,计算机等级考试二级VF笔试教材.doc
  5. php数组教程,PHP 数组入门教程小结
  6. 关于使用NLPIR-ICTCLAS分词系统
  7. CentOS 7 配置花生壳(phddns)自启动
  8. SVPWM调制中非零基础矢量的幅值是2/3Udc还是Udc?
  9. 服务器系统小米随身wifi,win10系统小米随身wifi不能使用详细教程
  10. PDF417二维条码生成器 C++