目录

第1章 需求规格说明书概述

1.1 什么软件项目需求规格说明书

1.2  需要规格说明书在项目中阶段

1.3 需要规格说明书的作用

1.4 主要特点

1.5 衡量标准

1.7 评审注意事项

第2章 需要规格说明书的格式与主要内容

1 引言

1.1 目的

1.2 背景

1.3 定义

1.4 参考资料

2 需求概述

2.1 总体目标

2.2 运行环境

2.3 约束条件(CONSTRAINTS)与假定条件(ASSUMPATION)

3. 数据描述

3.1 静态数据

3.2 动态数据

3.3 数据库介绍

3.4 数据词典

3.5 数据采集

4. 功能需求概述

4.1 功能划分

4.2 功能概述

5. 非功能性需求概述

6. 对外接口概述

6.1 用户界面

6.2 硬件接口

6.3 软件接口

6.4 故障处理

7. 其他需求

实例参考:


第1章 需求规格说明书概述

1.1 什么软件项目需求规格说明书

软件项目需求说明书是指在研究用户要求的基础上,完成可行性分析和投资效益分析以后,由软件系统工程师或分析员编写的需求说明书

它详细定义了信息流和界面,功能需求,设计要求和限制,测试准则和质量保证要求。

当然,软件项目需求规格说明书是站在用户的角度看到的系统功能。而不是从软件系统内部的角度看到的外部接口的需求。前者是由外向内看,后者是由内向外看。

这是写需求规格说明书,必须有的立足点。

需求规格说明书关注的是从外看到系统的功能需求,而不是内部的具体设计,更不是具体的实现。

软件需求规格说明书是需求分析阶段最后的成果,它是作为需求分析的一部分而制定的可交付文档。软件需求说明书,又称为软件规格说明书,是分析员在需求分析阶段需要完成的文档,是软件需求分析的最终结果。

1.2  需要规格说明书在项目中阶段

需要规格说明书发生在概念阶段或需求阶段 ,这一阶段分为两个过程:

(1)概念的形成过程

根据用户单位业务发展和经营管理的需要,提出建设信息系统的初步构想

(2)需求分析过程

即对企业信息系统的需求进行深入调研和分析,形成《需求规范说明书》 ,经评审、批准后立项。

也就是说,需要规格说明书是在项目启动之前的阶段,没有需求规格说明说,项目是无法启动的。

1.3 需要规格说明书的作用

《需要规格说明书》代表的是客户对项目的需求。它限定了项目的目标和任务,也是客户验收的标准。

它的作用是作为用户和软件开发人员达成的技术协议书,作为着手进行设计工作和编码的基础和依据,系统开发完成以后,为产品的验收提供了依据。

需要规格说明书作用为:

(1)软件人员与用户之间事实上的技术合同说明;

(2)为项目管理的范围管理、成本管理提供了依据

(3)作为软件人员下一步进行设计和编码的基础;

(4)作为测试和验收的依据。

(5)为软件的维护提供的重要信息

1.4 主要特点

软件需求规格说明书应该完整、一致、精确、无二义性,同时又要简明、易懂、易修改。

由于软件需求说明书最终要得到开发者和用户双方的认可,所以用户要能看得懂,并且还能发现和指出其中的错误,这对于保证软件系统的质量有很大的作用。这就要求需求说明书尽可能少用或不用计算机领域的概念和术语,尽量使用行业用户的专业术语来阐述(而不是计算机领域的术语)

1.5 衡量标准

(1)完整性

每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。

不遗漏任何必要的需求信息,即目标软件的所有功能、性能、设计约束,以及所有的可能情况下的预期行为,均完整地体现在需求说明书中。

(2)正确性

每一项需求都必须准确地陈述其要开发的功能。

需求说明书中的功能、性能等描述与用户对软件的期望相一致。

(3)可行性

每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的。

(4)无二义性

对所有需求说明的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的用户性的语言表达出来。另外,需求说明书的各部分之间不能相互矛盾。

(5)可验证性

需求说明书中的任意一项需求,都存在技术和经济上可行的手段进行验证和确认

(6)可修改性(可伸缩性)

需求说明书的格式和组织方式应该保证能够比较容易地增、删和修改,并使修改后的需求说明书能够软较好地保持其他各项属性。

(7)可跟踪性

应能在每项软件需求与它的根源和设计元素、源代码、测试用例之间建立起链接链,使每项需求与用户的原始需求连起来,并为后续开发和其他文档引用这些需求项提供便利。这种可跟踪性要求每项需求以一种结构化的,粒度好的方式编写并单独标明,而不是大段大段的叙述。

也就是说,每项需要都是以一个个独立项而存在和维护的。

1.6 需求规格说明的评审review

(1)参与人员

  • 客户或客户的代表(产品经理)
  • 系统架构师
  • 系统工程师(来自目标系统受影响的技术模块领域)
  • 软件架构师以及核心开发人员(来自目标系统受影响的技术模块领域)
  • 测试架构师以及核心测试人员(来自目标系统受影响的技术模块领域)
  • 用户手册撰写人员

(2)评审流程

  • 启动kick off
  • 草拟、讨论、周会 (会议)
  • 最终文档的评审 (在线+会议)
  • 最终文档的授权

1.7 评审注意事项

(1)是否有内容与语法上的错误?

这是最基本的要求,不能有内容与语法上的错误。

(2)前后不一致性、矛盾性?

一份需求规格说明说,是经过大量的需求人员经过较长时间的讨论、输入形成的,因此需要关注前后前后一致性,检查是否有前后矛盾的地方。

(3)是否清晰、无异议的表达了需求?

可以基于SMART原则来检查需求。

(4)每个需要都是在项目范围内?

防止需要中的内容超出了需求规格说明书本身的范围。有些需求,它不属于需求规格说明书的范围,但确实项目的范围,比如对于人员的学历要求等。这些信息不应该放到需求规格说明书中。

(5)异常处理?

是否考虑了异常出错处理?没一种异常都需要明确的定义。

(6)在组织内现有的资源内,是否可以实现?

需求规格说明书是直到开发实现需要的。如果有需要,在现有的资源(人力资源和物质资源)的情况下,无法实现,这样的需求就不适合放到需求规格说明书中,需要通过分解、变通等方法来化解不可实现的需求。

1.8 需求规格说明的的格式

需要规格说明书必须用统一格式的文档进行描述,为了使需求分析描述具有统一的风格,可以采用已有的且能满足项目需要的模板,也可以根据项目特点和软件开发小组的特点对标准进行适当的改动,形成自己的模板。

第2章 需要规格说明书的格式与主要内容

1 引言

1.1 目的

本文档是进一步分析用户需求的结果,详尽说明了这一软件的需求和规格,这些规格说明时进行系统设计的基础,也是编写测试用例和进行系统测试的主要依据。同时,该文档也是用户确定软件功能需求的主要依据。

本文档撰写的目的是明确软件需求、安排项目计划、推广软件设计和组织软件开发和测试。本文档主题内容为项目的需求汇总分类以及以此为基础而建立的需求模型。

本说明书的预期读者是软件概要设计人员和详细设计人员,是软件设计的基础。

1.2 背景

背景:是指衬托其他事物的要素或背后力量。

阐述项目或特定需求产生的背景,便于各方的干系人了解事情的背景。

1.3 定义

项目的名称与标识

1.4 参考资料

其他参考资料

2 需求概述

2.1 总体目标

阐述需要解决客户哪方面的问题或痛点? 阐述客户的期望和目标。

2.2 运行环境

软件系统的运行环境(操作系统、计算机硬件等)

2.3 约束条件(CONSTRAINTS)与假定条件(ASSUMPATION)

约束:不是具体的动作或行为,而是对项目或设计的行为动作或行为进行限制。通常通过"约束”强调其限制性。

(1)业务环境约束(来自客户或出资方的约束条件)

  • 预算的约束
  • 上线时间的约束
  • 业务领域的约束
  • 业务规则的约束
  • 业务限制的约束
  • 法律或专利的约束

(2)用户使用环境的约束(使用者)

  • 使用群体的约束
  • 用户年龄的约束
  • 用户喜好的约束
  • 使用期间的环境:如移动性、车载等
  • 运行平台的约束,如只能运行在Linux环境中
  • 数据库的约束

(3)构建环境的约束(来自开发团队的实际情况的约束)

  • 开发团队的开发环境
  • 开发团队的技术水平
  • 开发团队的成员工作地点的分布
  • 开发项目管理的约束
  • 是否需要开放源代码的约束

(4)技术环境的约束

  • 业内的技术水平的约束

(5)技术要求的约束

  • 性能指标的约束
  • 功能的约束
  • 体积、总量、功耗

找出、发现这些隐性的约束是一件非常重要的任务,如果无视一些约束,有可能会成为项目或需求无法实现的一颗炸药或一个大坑。

3. 数据描述

3.1 静态数据

静态数据是指在运行过程中主要作为控制或参考用的数据,它们在很长的一段时间内不会变化,一般不随运行而变。

3.2 动态数据

动态数据包括所有在运行中发生变化的数据以及在运行中需要输入、输出的数据及在连机操作中要改变的数据。

3.3 数据库介绍

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

3.4 数据词典

IBM计算词典中定义的数据字典或元数据存储库是“有关数据的信息的集中存储库,例如含义、与其他数据的关系、来源、用法和格式”。Oracle将其定义为具有元数据的表的集合。

3.5 数据采集

数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析,处理。数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。

4. 功能需求概述

功能需求规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求功能需求有时也被称作行为需求。

功能需求,描述是开发人员需要实现什么。

产品特性,是指一组逻辑上相关的功能需求,它们为用户提供某项功能,使业务目标得以满足对商业软件而言。特性则是一组能被客户识别,并帮助他决定是否购买的需求。

4.1 功能划分

对大的功能需要进行分解,分解成一个个相对独立的功能。功能性需要取决于客户对系统的操作性需要。

4.2 功能概述

(1)用用户故事描述

(2)用户场景进行描述

(3)用用户用例进行描述

(4)用时序图进行描述

(5)用独立文本进行描述

5. 非功能性需求概述

非功能性需求,是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括安全性、可靠性、互操作性、健壮性等。

非功能性需求是随着软件系统的规模成长和复杂性增加这两个因素才逐渐成为软件工程师们的新着眼点和关注点的,早期的时候,甲方处于自身对软件技术的了解和自身对系统文件维护的方便性考虑等,对系统有了诸如:开发平台、技术流派、关键实现等等方面的要求,这被称之为“设计约束”。从甲乙双方合同的角度,设计约束也是一种需求——一种“非功能”性的需求,后来,软件的质量问题越来越突出,描述软件质量目标的要求也成为非功能性需求的一部分。于是,目前业界关于软件的非功能需求,一般就包括:质量属性要求和约束性要求。

场景的性能指标有:

(1)容量:最大用户数

(2)并发量:同时并发运行的进程数、用户数

(3)响应时间

(4)利用率:CPU、内存、网络、硬盘

(5)高可用性:高负载多长时间,系统能够持续提供服务。

6. 对外接口概述

6.1 用户界面

  • 静态页面
  • 页面切换

6.2 硬件接口

  • 硬件信号名称、含义
  • 硬件时序

6.3 软件接口

  • 消息/函数名称
  • 消息/函数格式
  • 消息时序

6.4 故障处理

  • 告警名称与含义
  • 告警处理

7. 其他需求

实例参考:

需求规格说明书.pdf

[需求管理-9]:需求规格说明书SRS相关推荐

  1. 需求管理之需求优先级的排序-需求优先级分析方法论-波士顿矩阵和KANO模型

    无论是在大公司还是在小公司,我们总会遇到事多人少的情况.想开发的需求很多,空闲的开发资源很少.需求都堆积成山了,拼命加班也完不成所有的事情.所以我们需要用到需求排序的一些方法论 需求优先级分析方法论- ...

  2. linux文件需求管理,CaliberRM 需求管理系统

    Borland CaliberRM™ 2006 是适用于整个软件交付过程管理的突破性解决方案. 设计用于捕获和管理业务.技术.功能和运营要求,CaliberRM 支持跨组织股东的有效协作,从而确保项目 ...

  3. 需求管理工具_DOORS和Reqtify — 需求管理和需求追溯工具

    IBM Engineering Requirements Management DOORS(原名 IBM Rational DOORS) 可实现对整个产品的全生命周期需求管理,覆盖从需求.到设计以及测 ...

  4. DOORS和Reqtify—需求管理和需求追溯工具

    这里写自定义目录标题 IBM Rational DOORS可实现对整个产品的全生命周期需求管理,覆盖从需求.到设计以及测试阶段.是一款具有广泛使用的企业级专业需求管理工具.DOORS可以将项目开发过程 ...

  5. 互联网产品设计:产品需求管理之需求收集

    需求收集是进行产品需求管理的第一步.需求收集得到的各种用户需求素材是产品需求的唯一来源.可以说需求收集的质量影响着产品最终的质量. 1.需求收集目的 需求收集的目的在于:通过以市场为导向的客户需求收集 ...

  6. 软件需求管理(二) 需求获取

    一. 需求获取概述 1.1相关概述 软件需求获取是软件工程的主体. 主要表现为: 发现问题->分析问题->解决问题 的过程. 需求获取阶段主要产生的文档:1.前景和范围文档 2.用例说明文 ...

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

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

  8. 笔记-项目范围管理-需求工程-需求管理

    1. 需求管理(Requirements Management,REQM) Requirements management is the process of documenting,analyzin ...

  9. 视频教程-高级软件需求分析与需求管理实践-需求分析

    高级软件需求分析与需求管理实践 近二十年软件开发.软件设计.需求分析.项目管理.部门管理.公司管理及过程改进等经十五年的需求分析及需求管理工作经验,负责数十个大型项目的需求分析和需求管理工作,涉猎建筑 ...

  10. 轻量级过程改进之需求管理

    需求管理在于管理产品研发过程中的客户需求,建立项目相关干系人对需求的共同理解,维护需求与所开发产品之间的一致性,并控制需求的变更.需求管理的重要性不言而喻,在前面讲到的项目启动.项目计划以及接下去要讲 ...

最新文章

  1. AMiner新功能:技术趋势分析—挖掘技术源头、近期热度和全局热度
  2. matlab中(1 )什么意思,matlab中area(1)什么意?mat – 手机爱问
  3. Keepalived+Nginx实现高可用负载均衡集群
  4. android微信动画制作,动画制作轻量级SDK:PAG六大优势助力开发
  5. 手写tomcat socket closed_【消费电子】:重在阅读,新增手写 BOOX Nova Pro 体验评测...
  6. android下拉弹性gif,android-pulltorefresh 下拉加载中使用gif动图
  7. C++——《算法分析》实验伍——箱子装载问题
  8. 神经网络入门概念和框架理解(YOLOv1v2v3改进分析)
  9. Integer的常用方法和String类型的常用方法
  10. 使用zlib库实现gzip格式压缩
  11. 安卓优雅的svg实践绚丽效果
  12. python QQ聊天机器人,qqbot 使用简介
  13. python中while循环只能用来实现无限循环的编程_while循环只能实现无限循环的编程...
  14. 3D游戏编程与设计5——与游戏世界交互
  15. 菱形是一种特殊的平行四边形,是四条边均相等的平行四边形。题目给出菱形的边长n,用*画出菱形。如n=1,输出:
  16. 登陆失败:用户账户限制。可能的原因包括不允许空密码.........解决方案
  17. 视频号如何发表视频呢?
  18. 第二关,KPM算法和next函数值
  19. 电阻、电感、电容元件的交流电路
  20. 知乎上对 国内机器视觉行业的发展的 讨论-经典

热门文章

  1. 安卓应用和ios应用下载地址生成一个统一二维码
  2. 2015年数学建模-A影子定位
  3. 基于斗鱼的娱乐直播视频平台--Vue移动端页面
  4. 【算法图解】 之 [二分查找法] 详解
  5. java学习心得---循环结构
  6. Android 自定义带拼音Textview 带音调
  7. h5前端 调用手机通讯录
  8. niceScroll 滚动条的用法
  9. 原生 js 实现弹窗
  10. c语言调用串口扫码枪,C#利用控件mscomm32.ocx读取串口datalogic扫描枪数据