所有与需求相关的活动通称为需求工程。
需求工程中的活动可分为两大类,一类属于需求开发,另一类属于需求管理。
(1)需求开发(Requirement Development, RD)的目的是通过调查与分析,获取用户需求并定义产品需求。
(2)需求管理(Requirement Management, RM)的目的在客户与开发方之间建立对需求的共同理解,维护需求与其他工作成果的一致性,并控制需求的变更。
需求工程的结构图如下:
流程图如下:
一、需求开发
需求开发可分为两个阶段:“用户需求调查阶段”和“产品需求定义阶段”。而“需求分析”则贯穿于上述两个阶段。需求调查阶段和需求定义阶段在逻辑上存在先后关系,实际工作中二者通常是迭代进行的。
1、需求调查
需求调查的目的是通过各种途径获取用户的需求信息(原始材料),产生《用户需求说明书》。
2、需求分析
需求分析的目的是对各种需求信息进行分析,消除错误,刻画细节等。常用的需求分析方法有“问答分析法”、“结构化分析法”和“面向对象分析法”。
3、需求定义
需求定义的目的是根据需求调查和需求分析的结果,进一步定义准确无误的产品需求,产生《产品需求规格说明书》。系统设计人员将依据《产品需求规格说明书》开展系统设计工作。
二、需求管理
需求管理过程域主要有3个规程:需求确认、需求跟踪与需求变更控制。
1、需求确认
需求确认是指开发方和客户共同对需求文档进行评审,双方对需求达成共识后作出书面承诺,使需求文档具有商业合同效果。
2、需求跟踪
需求跟踪是指通过比较需求文档与后续工作成果之间的对应关系,建立与维护“需求跟踪矩阵”,确保产品依据需求文档进行开发。
3、需求变更控制
需求变更控制是指依据“变更申请-审批-更改-重新确认”的流程处理需求的变更,确保需求的变更不会失去控制而导致项目发生混乱。