CMMI之需求管理流程

简介: CMMI之需求管理流程

需求管理(Requirement Management, RM)的目的在客户与开发方之间建立对需求的共同理解,维护需求与其他工作成果的一致性,并控制需求的变更。

需求管理过程域是SPP模型的重要组成部分。本规范阐述了需求管理过程域的三个主要规程:

  • 需求确认 [SPP-PROC-RM-VALIDATE]
  • 需求跟踪 [SPP-PROC-RM-TRACKING]
  • 需求变更控制 [SPP-PROC-RM-CHANGE]

上述每个规程的“目标”、“角色与职责”、“启动准则”、“输入”、“主要步骤”、“输出”、“完成准则”和“度量”均已定义。

本规范适用于国内IT企业的软件研发项目。建议用户根据自身情况(如商业目标、研发实力等)适当地修改本规范,然后推广使用。

8.1介绍

我们把所有与需求相关的活动通称为需求工程。需求工程中的活动可分为两大类,一类属于需求开发,另一类属于需求管理。图8-1为需求工程的结构图

需求管理过程域主要有3个规程:需求确认、需求跟踪与需求变更控制。

一、需求确认

需求确认是指开发方和客户共同对需求文档进行评审,双方对需求达成共识后作出书面承诺,使需求文档具有商业合同效果。

二、需求跟踪

需求跟踪是指通过比较需求文档与后续工作成果之间的对应关系,建立与维护“需求跟踪矩阵”,确保产品依据需求文档进行开发。

三、需求变更控制

需求变更控制是指依据“变更申请-审批-更改-重新确认”的流程处理需求的变更,确保需求的变更不会失去控制而导致项目发生混乱。

需求管理过程域产生的主要文档有:

  • 《需求评审报告》,同技术评审报告的模板[SPP-TEMP-TR-REPORT]
  • 《需求跟踪报告》,模板见[SPP-TEMP-RM-TRACKING]
  • 《需求变更控制报告》,模板见[SPP-TEMP-RM-CHANGE]

8.2 需求确认

8.2.1 目的

  • 开发方和客户对需求文档如《用户需求说明书》和《产品需求规格说明书》进行评审,并作书面承诺。

补充说明:《用户需求说明书》和《产品需求规格说明书》可以分开也可以放在一起进行需求确认,视项目的具体情况而定。

8.2.2角色与职责

  • 开发方和客户共同组织人员对需求文档如《用户需求说明书》和《产品需求规格说明书》进行评审。
  • 开发方负责人(项目经理)和客户对需求文档作书面承诺,使之具有商业合同效果。

8.2.3 启动准则

  • 需求文档如《用户需求说明书》和《产品需求规格说明书》已经完成。

8.2.4 输入

  • 需求文档如《用户需求说明书》和《产品需求规格说明书》。

8.2.5 主要步骤

[Step1] 非正式需求评审

  • 项目经理先在项目内部组织人员进行非正式的需求评审,以消除明显的错误和分歧。非正式的需求评审方式请参考技术评审过程域的对应规程[SPP-PROC-TR-ITR]。

[Step2] 正式需求评审

  • 项目经理邀请同行专家和用户(包括客户和最终用户)一起评审需求文档,尽最大努力使需求文档能够正确无误地反映用户的真实意愿。正式需求评审方式请参考技术评审过程域的对应规程[SPP-PROC-TR-FTR]。

[Step3] 获取需求承诺

       当需求文档通过正式的评审之后,开发方负责人(项目经理)和客户对需求文档作书面承诺,使之具有商业合同效果。示例如下:

       本需求文档建立在双方对需求的共同理解基础之上,我同意后续的开发工作根据该需求文档开展。如果需求发生变化,我们将按照“需求变更控制规程”执行。我明白需求的变更将导致双方重新协商成本、资源和进度等。

       甲方负责人签字

乙方负责人签字

8.2.6 输出

  • 《需求评审报告》
  • 书面的需求承诺

8.2.7 结束准则

  • 需求文档通过了正式评审,并且获得开发方和客户的书面承诺。

8.2.8 度量

  • 项目经理统计工作量和上述文档的规模

8.3 需求跟踪

8.3.1 目的

  • 将系统设计、编程、测试等阶段的工作成果与需求文档进行比较,建立与维护“需求文档-设计文档-代码-测试用例”之间的一致性,确保产品依据需求文档进行开发。

3.3.2 角色与职责

  • 项目经理跟踪需求。

3.3.3 启动准则

  • 需求文档已经通过正式评审并获得了承诺。
  • 系统设计、编程、测试等阶段的工作成果如设计文档、代码、测试用例已经产生。

3.3.4 输入

  • 需求文档
  • 设计文档、代码、测试用例

3.3.5 主要步骤

[Step1] 建立与维护需求跟踪矩阵

  • 正向跟踪。检查需求文档中的每个需求是否都能在后续工作成果中找到对应点。
  • 逆向跟踪。检查设计文档、代码、测试用例等工作成果是否都能在需求文档中找到出处。
  • 正向跟踪和逆向跟踪合称为“双向跟踪”。不论采用何种跟踪方式,都要建立与维护需求跟踪矩阵(即表格)。需求跟踪矩阵保存了需求与后续工作成果的对应关系。矩阵单元之间的可能存在“一对一”、“一对多”或“多对多”的关系。由于对应关系比较复杂,最好在表格中加必要的文字解释。表8-1为简单的需求跟踪矩阵格式。
  • 当需求文档或后续工作成果发生变更时,要及时更新需求跟踪矩阵。

[Step2] 查找不一致

  • 使用需求跟踪矩阵的优点是很容易发现需求文档与后续工作成果之间的不一致之处,例如:
  • 后续工作成果没有实现需求文档中的某些需求;
  • 后续工作成果实现了需求文档中的不存在的需求;
  • 后续工作成果没有正确实现需求文档中的的需求;
  • 项目经理将发现的“不一致性”记录在《需求跟踪报告》之中,并通报给相关责任人(工作成果的开发者)。

[Step3] 消除不一致

  • 相关责任人给出消除“不一致”的措施和计划,项目经理将该措施和计划记录到《需求跟踪报告》之中。
  • 相关责任人消除“不一致性”之后,项目经理更新“需求跟踪矩阵”。

8.3.6 输出

  • 《需求跟踪报告》

8.3.7 结束准则

  • 每个开发阶段的“需求跟踪矩阵”都已经建立。
  • 已经消除了需求文档与后续工作成果之间的不一致性。

8.3.8 度量

  • 项目经理统计工作量和上述文档的规模。

8.4 需求变更控制

8.4.1 目的

  • 修改“原需求文档”中不正确的内容,产生新的需求文档。
  • 控制需求文档的变更,防止发生混乱。

补充说明:本规程中的“原需求文档”是指已经通过了评审并获得书面承诺的需求文档。

8.4.2 角色与职责

  • 开发方负责人(项目经理)和客户共同控制需求变更。

8.4.3 启动准则

  • 某人(来自开发方或客户方)提出变更“原需求文档”的申请。

8.4.4 输入

  • “原需求文档”

8.4.5 主要步骤

[Step1] 需求变更申请

  • 需求变更申请人撰写“需求变更申请书”,递交给项目经理或客户方负责人。
  • “需求变更申请书”必须阐述:(1)变更原因;(2)变更的内容;(3)此变更对项目造成的影响。

[Step2] 审批需求变更申请

       开发方负责人(项目经理)和客户共同审批“需求变更申请书”:

  • 如果任何一方不同意变更,则退回变更请求,项目按照“原需求文档”执行。
  • 如果双方都同意变更,转向[Step3]

[Step3] 更改需求文档

  • 需求分析员根据[Step1] 和[Step2] 更改“原需求文档”,产生新的需求文档。

[Step4] 重新进行需求确认

  • 重新进行需求评审,参见需求确认规程中的 [Step2]。
  • 重新获取书面的需求承诺,参见需求确认规程中的 [Step3]。

8.4.6 输出

  • 《需求变更控制报告》

8.4.7 结束准则

  • 新的需求文档已经被确认。

8.4.8 度量

  • 项目经理统计工作量。

8.5 实施建议

  • 先对项目经理和客户进行培训,让他们掌握必要的需求管理知识。
  • 对需求管理过程域产生的所有有价值的文档进行配置管理。
  • 对于非合同项目,本规范中有关客户的活动可以被裁减掉。



📢文章下方有交流学习区!一起学习进步!也可以前往官网,加入官方微信交流群💪💪💪

📢创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒

📢你的支持和鼓励是我创作的动力❗❗❗

目录
相关文章
|
10月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
456 1
|
Linux Shell
在Linux中,如何设置环境变量?
在Linux中,如何设置环境变量?
|
语音技术
FunASR英文离线文件转写软件包问题之实时语音听写软件包功能如何解决
FunASR英文离线文件转写软件包问题之实时语音听写软件包功能如何解决
290 0
|
存储 Java 数据库连接
Spring Boot 配置主从数据库实现读写分离
Spring Boot 配置主从数据库实现读写分离
2008 0
|
机器学习/深度学习 人工智能 安全
如何建设一支高效的人工智能团队
如何建设一支高效的人工智能团队
1482 0
如何建设一支高效的人工智能团队
|
消息中间件 存储 资源调度
实时计算 Flink版产品使用问题之在消费Kafka的Avro消息,如何配置FlinkKafka消费者的相关参数
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
机器学习/深度学习 定位技术
GEE(CCDC-2)——根据以获取的研究区CCDC系数进行土地覆被分类分析
GEE(CCDC-2)——根据以获取的研究区CCDC系数进行土地覆被分类分析
511 0
|
架构师 测试技术
为什么有了《技术协议》,还要《产品需求规格说明书》
为什么有了《技术协议》,还要《产品需求规格说明书》
|
运维 资源调度 Kubernetes
「开源人说」第五期 | KubeVela:一场向应用交付标准的“冲锋”
「开源人说」第五期聚焦云原生领域开源至今仅两年多的项目——KubeVela,将镜头对准 KubeVela 项目背后的代码贡献者和落地实践者,讲述这个从第一天就诞生在社区的技术,如何走到对不同场景应用“海纳百川”,直至成为 CNCF 孵化项目,并逐渐向应用交付领域的事实标准演进的故事。 阅读下文,让我们跟随 KubeVela 创始团队,一起了解它的开源背后的故事。
200038 1
「开源人说」第五期 | KubeVela:一场向应用交付标准的“冲锋”

热门文章

最新文章