首页 > 其他分享 >PRD与SRS的区别

PRD与SRS的区别

时间:2023-10-07 14:12:09浏览次数:57  
标签:需求 PRD 4.1 区别 SRS 文档 软件

需求分析是软件开发过程中很重要的一个环节,目前需求分析完成后输出的文档有2种体系,一个是SRS(Software Requirements Specification,软件需求规格说明书),一个是PRD(Product Requirements Document,产品需求文档)。它们都用于需求分析,但是什么场合下使用SRS、什么场景适用PRD,很难给出明确的答案,它们之间的相似与区别可以从以下几个方面借鉴一下:出处、使用用户、编写要点、编写内容。

一、出处

1. SRS的出处

SRS 出自《GB/T 11457-2006 信息技术 软件工程术语》、《GB/T 8567-2006 计算机软件文档编制规范》,并且在《GB/T 9385-2008-软件需求规格说明书规范》中进行了标准化。

《GBT9385-2008-软件需求规格说明书规范》描述了软件需求规格说明的编制方法。它基于以下设想,即软件需求规格说明确定过程的结果是一份明确和完备的规格说明文档。本标准将有助于:

  • 软件的顾客准确地描述其希望得到什么;
  • 软件的供方正确地理解顾客想要什么;
  • 对于实现以下目标的有关单位和人员:
    ● 为其所在的组织编制一份标准的软件需求规格说明(SRS)提纲;
    ● 定义其具体软件需求规格说明的格式和内容;
    ● 编制其他的本地支持资料,如,SRS质量检查清单、或SRS编写者手册。

2. PRD的出处

历史上第一份PRD据推测应该是诞生于宝洁这家公司,因为据史料记载,宝洁在二十世纪二三十年代第一次提出了产品经理的概念,并诞生了第一位产品经理。产品经理大约从2015年开始发展,有自己的一套成熟理论体系,成为大型软件服务公司的标配。 BRD(商业需求文档)、MRD(市场需求文档)、PRD(产品需求文档)三种文档已经成为产品经理的标配。(参见:产品经理系列1——起源发展篇 | 人人都是产品经理 (woshipm.com)

BRD(Business Requirements Document,商业需求文档)

这是产品生命周期中最早的文档,其内容涉及市场分析,销售策略,盈利预测等。BRD要讲明白:用户价值(为什么用你的产品)、商业价值(为什么要做这个产品),市场分析、目标市场、竞争对手、时机、规模、趋势,产品功能、原型、实施计划、愿景,成本、ROI分析,风险及应对措施。文档重点放在定义项目的商业需求。BRD要能说出客户碰到的一个或多个商业问题,并且通过公司的产品能够解决这些问题。

BRD,就是战略需求文档,呈现形式很多,可以是商业可行性分析,可以是建模方法论等等,取决于这份文档的读者,务必根据读者的特点进行撰写,这样通过的概率会大大增加。

MRD(Market Requirements Document,市场需求文档)

BRD评审通过后就是写MRD文档,说明产品的定位。具体来说要有更细致的市场与竞争对手分析,通过哪些功能来实现商业目的,功能/非功能需求分哪几块,功能的优先级等等。

MRD重点放在为一个被提议的新产品或者现有产品的改进定义市场需求,MRD更深入提议解决方案的细节。它包括一些或者所有这些细节:
a. 解决商业问题所需要的特色
b. 市场竞争分析
c. 功能和非功能需求
d. 特色/需求的优先级
e. 用例

PRD(Product Requirements Document,产品需求文档)

MRD通过评审后就要编写PRD文档。PRD是在MRD的基础上,详细的给出了UI(User Interface 用户界面)和UE(User Experience 用户体验)。PRD文档的核心,是需求分析并根据需求开始落实产品原型,输出产品的DEMO,针对不同的阅读人群尝试重点的偏移,比如技术读者注重流程图的逻辑和原型备注,UI和测试注重原型和需求描述。PRD也就是传统意义上的需求分析,要给出功能使用的具体描述(每个UC(use case)一般有用例简述、行为者、前置条件、后置条件、UI描述、流程/子流程/分支流程等几大块)。

二、使用用户

1. SRS的用户

SRS可由来自供方、顾客或双方的一个或者多个人员编写,推荐由来自供方和顾客双方的人员联合编写。

《GB/T 8567-2006 计算机软件文档编制规范》中明确SRS的使用人员包括:开发人员和维护人员。

《GB/T 9385-2008-软件需求规格说明书规范》中明确:SRS可以为顾客和供方之间的协议建立基础、作为开发合同的一部分、为估计成本和进度提供基础。

2. PRD的用户

PRD由产品经理撰写,使用用户包括:

1.产品同事
2.运营
3.设计师
4.开发工程师
5.其他需求方(相关业务部门等)

三、编写要点

1. SRS的编写要点

SRS是对在具体环境中执行确定功能的特定软件产品、程序或一组程序的规格说明。SRS 编写人员应关注以下基本点:

a) 功能———软件将执行什么功能?
b) 外部接口———软件如何与人、系统的硬件及其他硬件和其他软件进行交互?
c) 性能———各种软件功能的速度、响应时间、恢复时间等是多少?
d) 属性———软件的可用性、可靠性、可移植性、正确性、可维护性、安全性如何?
e) 影响产品实现的设计约束———是否有使用标准、编程语言、数据库完整性方针、资源限制、运行环境等方面的要求?

编写适当的 SRS 限定了正确设计的范围,但不规定任何具体的设计:

a)宜正确地定义所有软件需求。由于将要处理的任务的性质或项目的具体特性,则软件需求是存在的。
b)不宜描述任何设计或实现的细节。这些内容应当在项目的设计阶段进行描述。
c)不宜对软件设置附加的限制条件。这些内容可在其他文件中规定,如,软件质量保证计划。

好的SRS具备以下特征:

a)正确;
b)无歧义;
c)完备;
d)一致;
e)重要性和/或稳定性分级;
f)可验证;
g)可修改;
h)可追踪。

2. PRD的编写要点

根据PRD使用的不同对象,PRD包含的内容也会有差别。为了能够使得PRD的目标用户更好的去获取到他想要的信息,一份PRD至少就应该包含以下内容:业务流程图、功能结构图、功能细节描述、界面原型等。

三、编写内容

1. SRS的编写内容

SRS文档包含以下内容:

  1. 引言
    1.1 目的
    1.2 范围
    1.3 定义、简写和缩略语
    1.4 引用文件
    1.5 综述
  2. 总体描述
    2.1 产品描述
    2.2 产品功能
    2.3 用户特点
    2.4 约束
    2.5 假设和依赖关系
    2.6 需求分配
  3. 具体需求(按照运行模式、用户类别、对象、系统特征、激励、功能层次分类,具体需求描述方式不同,下面只给出按照用户类别的描述内容)
    3.1 外部接口需求
     3.1.1 用户界面
     3.1.2 硬件接口
     3.1.3 软件接口
     3.1.4 通信接口
    3.2 功能需求
     3.2.1 用户类别1
      3.2.1.1 功能需求1.1
      ...
      3.2.1.n 功能需求1.n
     3.2.2 用户类别2
     ...
     3.2.m  用户类别m
      3.2.m.1  功能需求m.1
      ...
      3.2.m.n 功能需求m.n
    3.3 性能需求
    3.4 设计约束
    3.5 软件系统属性
    3.6 其他需求
    附录
    索引

2. PRD的编写内容

文档目录
修订记录

  1. 产品概述
    1.1 产品背景
    1.2 目标用户
    1.3 产品目标
  2. 需求列表
     列出需求模块、子模块、需求简述和优先级
  3. 功能结构
  4. 需求明细
    4.1 功能性需求
     4.1.1 用户场景
     4.1.2 优先级
     4.1.3 前置条件
     4.1.4 需求描述
      4.1.4.1 用户界面
      4.1.4.2 界面描述
      4.1.4.3 基本流程
      4.1.4.4 异常流程
     4.1.5 后置条件
     4.1.6 流程图
    4.2 非功能性需求
     4.2.1 性能需求
     4.2.2 统计需求
     4.2.3 安全需求
  5. 其它内容

标签:需求,PRD,4.1,区别,SRS,文档,软件
From: https://www.cnblogs.com/ITnoteforlsy/p/17746152.html

相关文章

  • 解读亚马逊云服务器 EC2 预留实例与按需实例的区别,及其在成本节约的优势
    随着云计算不断改变企业的运营方式,优化成本已成为首要任务。利用AmazonEC2预留实例是实现云端成本节约最有效的方法之一。以下将探讨什么是AmazonEC2预留实例,它与按需实例的区别,以及它在成本节约和灵活性方面提供的好处。在深入了解AmazonEC2预留实例的细节之前,需......
  • DTU,RTU,边缘网关,串口服务器,IO控制器 等等的区别
    DTU,RTU,边缘网关,串口服务器,IO控制器  等等的区别 工业DTUData Transfer Unit数据传输单元,又名“数据传输单元、集中器、转换器、转发器”等,通常就是路由器、网关,支持多种工业协议如mqtt\iec101\modbus等协议有线输入,再用有线或无线向远端传送。当前联网系统,所有其他设备都......
  • RAM和ROM的区别
    一、CPU,寄存器,缓存,RAM,ROM的作用和他们之间的联系中央处理器中央处理器(CPU,CentralProcessingUnit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(ControlUnit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。中央处理器主要包括运算器(算术逻辑运......
  • 阿里云服务器经济型e系列和u1有什么区别?性能差异
    阿里云服务器经济型e实例和云服务器u1有什么区别?同CPU内存配置下云服务器u1性能更强,u1实例价格也要更贵一些。经济型e实例属于共享型云服务器,不同实例vCPU会争抢物理CPU资源,并导致高负载时计算性能波动不稳定,而云服务器u1是企业级实例,实例间无CPU资源争抢,实例计算性能稳定且有严格......
  • 请求转发以及与重定向的区别
    请求转发是在服务器内部进行的,服务器将客户端的请求转发到另一个资源或Servlet处理。客户端对此一无所知,它认为仍在与原始URL交互。请求转发适用于在同一Web应用程序内部的资源之间进行交互(客户端与服务器端只发生了一次请求响应),特别是当资源之间需要共享数据和状态时。这种方式......
  • Java抽象类与接口的区别(略解)
    抽象类 接口抽象类与接口区别1.抽象类抽象类用abstract来修饰,例如:packagecom.test.abstractaaa;publicabstractclassTestAbstract{}抽象类是用来捕捉子类的通用性的,它不能被实例化,只能用作子类的超类,抽象类是被用来创建继承层级里子类的模板,例如JDK中......
  • CSS与Bootstrap的关系和区别
    1.CSS是层叠样式表(CascadingStyleSheets)的缩写,是一种样式表语言,用于控制网页的视觉效果。2.Bootstrap是一个开源的前端UI框架,基于HTML、CSS和JavaScript,用于快速开发Web应用程序和网站。3.Bootstrap需要依赖CSS作为样式描述语言,包含了一系列预定义的CSS样式、布局模......
  • 关系型数据库和非关系型数据库的区别
    关系型数据库(RelationalDatabase)和非关系型数据库(NoSQLDatabase)是两种不同的数据库管理系统。关系型数据库是基于关系模型的数据库,使用表格(表)来组织和存储数据。数据在表中以行和列的形式进行存储,每个表都有一个唯一的键(主键)来标识每一行数据。关系型数据库使用结构化查询语言(S......
  • 在C#中,String和string有什么区别?
    内容来自DOChttps://q.houxu6.top/?s=在C#中,String和string有什么区别?这两种类型之间有什么区别,我应该使用哪一个?strings="Helloworld!";Strings="Helloworld!";字符串(string)是C#中System.String的别名。因此,从技术上讲,它们之间没有区别。就像整数(int)和Syst......
  • sv的LSB 使用+SV的protect类型+RAL模型的lock原因+C语言结构体中的冒号用法+uvm版本在
    sv的LSB使用https://blog.csdn.net/gsjthxy/article/details/90722378等价关系[LSB+:STEP]=[LSB+STEP:LSB]伪代码:bit[1023:0]mem;bit[7:0]data;j=0..100mem[j*8+:8]=data;//[7:0],[15:8],[23:16]SV的protect类型https://blog.csdn.net/qq_37573794/ar......