[需求管理-9]:需求规格说明书SRS
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[需求管理-9]:需求规格说明书SRS相关的知识,希望对你有一定的参考价值。
目录
2.3 约束条件(CONSTRAINTS)与假定条件(ASSUMPATION)
第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. 其他需求
实例参考:
以上是关于[需求管理-9]:需求规格说明书SRS的主要内容,如果未能解决你的问题,请参考以下文章