需求开发及需求管理
1、需求的概念
1.解决用户问题或达到用户目标的条件或能力
2.为遵循合同、标准、规格、或其他要求的正式文档,系统必须满足或拥有的条件或能力。
按文档化表现上述两条中的条件,或能力,就是SRS
2、需求分类
- 原始需求
- 业务需求
- 功能需求
3、软件需求规格说明书的特点
- 软件需求完整性
- 软件需求的正确性
- 软件需求无歧义性
- 软件需求一致性
- 软件需求可验证性
- 软件需求可追踪性
一、需求开发
1、需求开发概述
需求开发由需求分析人员与用户接触,交流,并对市场需求进行分析的一系列活动。需求开发包括四个阶段的活动:
● 需求获取
● 需求分析
● 需求定义
● 需求验证
2、需求获取
产品需求的获取:市场调研,由市场部门获得,体现了对市场的把握程度。分析潜在(目标)客户群
项目需求的获取:针对特定的用户,而且可以以合同的形式固定下来
3、需求分析
分析原始需求(显性需求),需要充分挖掘其隐藏起来的内容,精确定义所有需求(显性、隐性)的规格,例如:
• 原始需求:客户要求“你们给我做的电商项目要有能搜索商品的功能”
• 需求分析:需求小张分析道:“如果用户搜索商品,是输入商品的名称搜索呢?还是输入商品品牌呢?还是输入商品的关键字呢?”
4、需求定义
以规范的格式将所有的需求规格描述出来,最终产物SRS
5、需求验证
是指需求结束后,由客户、公司决策层、专家来确定是不是要将这些需求放入项目中,有没有超出合同预算,或者是缺少了哪些需求,以保证合同要求。
在大型项目中,需要验证需求规格说明书与工作任务书是否一致。
二、需求管理
1、需求管理概述
● 需求管理是一种获取、组织并记录系统需求的系统化方案。
● 是一个是客户与项目团队对不断变更的系统需求达成并保持一致的过程。
● 诸多实践证明,需求管理可以提高项目的成功率。
需求在软件生命周期中举足轻重的地位决定了其重要性,需求由管理活动来控制和保障需求的正确性,一致性,并且保证所有的需求都被开发和测试。
2、软件需求管理流程
- 需求分配
- 软件需求评审
- 软件需求基线
- 软件需求跟踪
3、软件需求管理工具
当前企业中多采用流程管理工具进行需求的管理,常见的有:禅道、QC(Quality Center)…
如果项目中不采用管理工具,则需要需求跟踪矩阵进行管理
三、需求评审
1、需求表达应避免的问题
- 需求描述过多涉及到具体的设计和实现
- 超出规格:对需求描述大大超出用户要求
- 过度限制:对需求进行不必要的限制
- 需求描述基于未经确认的假设
- 不确定性
- 以相对的方式描述解决
- 没有结束的需求
- 主观或含糊的描述需求
2、软件需求规格说明书写作要点
● 项目介绍
● 产品环境介绍
● 软件功能
● 用户特征
● 假设和依赖关系
● 功能需求
● 性能需求
● 用户接口
● 软件接口
● 硬件接口
● 标准符合度
● 硬件约束
● 技术限制和本地化
3、功能需求
输入:对该功能所有输入数据的详细描述。
● 输入来源
● 数量
● 度量单位
● 时间要求
● 包括精度和容忍度的有效输入范围
处理:描述对输入数据所执行的所有操作和如何获得输出的过程
● 输入数据的有效性检测
● 操作的确切次序,包括各事件的时序
● 对异常情况的回应
用于把系统输入转换到相应输出的任何方法(诸如:方程式,数学算法,逻辑操作)对输入数据的有效性检测
4、性能需求
描述对软件的静态的和动态的量化需求
静态量化需求可能包括:
● 支持的终端数目
● 支持的同时使用的用户数
● 处理的文件和记录的数目
● 表和文件的大小
动态量化需求可能包括:
● 在正常或峰值工作量情况下一个特定时间段处理事务或任务的数目及数据量
● 在正常或峰值工作量情况下处理某个事务或任务所占用系统资源的数量
三、同行评审
1、同行评审的概念
同行评审(Peer Review)是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。
● 需要前期准备、计划和时间进度表
● 越早越好
2、同行评审的作用
● 早期发现缺陷
● 去除缺陷
● 降低成本
● 提高质量
3、同行评审的类型
● 正规检视
● 技术评审
● 走读