软件工程快速入门教程7-能力成熟度模型CMM
2019-07-20 本文已影响7人
python测试开发
什么是CMM?
能力成熟度模型(Capability Maturity Model)用作衡量组织软件过程成熟度的基准。
CMM是在80年代后期在软件工程研究所开发的。 它是由美国空军资助的一项研究的结果,作为评估分包商工作的一种方式。 后来基于1991年创建的CMM-SW模型来评估软件开发的成熟度,其他多个模型与CMM-I集成在一起

什么是能力成熟度模型(CMM)级别?
- 初始
- 重复/管理
- 定义
- 量化管理
- 优化

不同级别的CMM会发生什么?
水平 | 活动 | 优点 |
---|---|---|
1级初始 | 在第1级,该过程通常是混乱和临时的;能力的特征是基于个人而非组织; 未衡量进展;开发的产品通常是计划和超出预算;计划,成本,功能和质量目标的差异很大 | 没有 |
2级管理 | 需求管理; 估算项目参数,如成本,进度和功能;衡量实际进度;制定计划和流程; 定义了软件项目标准;识别和控制产品,问题报告的变化等;项目之间的流程可能不同 | 流程变得更容易理解;管理人员和团队成员花费更少的时间来解释事情的完成方式以及执行事务的时间;项目得到更好的估计,更好的计划和更灵活;质量已融入项目中;成本可能最初很高,但加班时间会下降;更多文书工作和文件 |
Level-3定义 | 澄清客户要求;解决设计要求,制定实施流程;确保产品符合要求和预期用途;系统地分析决策'纠正和控制潜在的问题 | 流程改进成为标准;解决方案从“编码”发展到“工程化”;在整个项目工作中出现质量门,整个团队参与该过程;风险得到缓解,不会让团队感到意外 |
4级定量管理 | 统计管理项目的流程和子流程;了解流程绩效,定量管理组织的项目; | 优化整个组织的流程绩效;促进组织中的定量项目管理。 |
5级优化 | 及早发现并消除缺陷的原因;确定并部署新工具和流程改进,以满足需求和业务目标 | 促进组织创新和部署;推动因果分析和解决方案 |
下图给出了在不同CMM级别发生的情况的图示

实施CMM需要多长时间?
CMM是维护任何软件开发公司产品质量的最理想的流程,但其实施所需的时间比预期的要长。
-
CMM实施不会在一夜之间发生
-
这不仅仅是一个“文书工作”。
-
典型的实施时间是
- 3-6个月- >准备
- 6-12个月- >实施
- 3个月- >进行评估准备
- 12个月-每个新级别> b
参考资料
- python测试开发项目实战-目录
- python工具书籍下载-持续更新
- python 3.7极速入门教程 - 目录
- 讨论qq群630011153 144081101
- 原文地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
CMM的内部结构
CMM中的每个级别都定义为关键过程域或KPA (key process area) ,级别1除外。 每个KPA都定义了一组相关活动,这些活动在共同执行时实现了一组对提高软件能力至关重要的目标
对于不同的CMM级别,有一组KPA,例如对于CMM模型-2,KPA是
- REQM-需求管理
- PP-项目规划
- PMC-项目监测和控制
- SAM-供应商协议管理
- PPQA-流程和质量保证
- CM配置管理
同样,对于其他CMM模型,您有特定的KPA。 要了解KPA的实施是否有效,持久和可重复,它将根据以下基础进行绘图
- 承诺执行
- 能够执行
- 活动执行
- 测量和分析
- 验证实施
CMM模型的局限性
- CMM确定流程应该解决的问题,而不是如何实施
- 它没有解释软件过程改进的所有可能性
- 它专注于软件问题,但不考虑战略业务规划,采用技术,建立产品线和管理人力资源
- 它没有说明组织应该从事什么样的业务
- CMM在目前正面临危机的项目中没有用处
为何使用CMM?
今天,CMM充当软件行业的“批准印章”。 它有助于以各种方式提高软件质量。
- 它指导可重复的标准流程,从而缩短了如何完成工作的学习时间
- 实践CMM意味着实践标准协议进行开发,这意味着它不仅可以帮助团队节省时间,还可以清楚地了解要做什么和期望什么
- 质量活动与项目完美结合,而不是单独的事件
- 它充当项目和团队之间的通勤者
- CMM的努力始终是为了改进流程
摘要
CMM于80年代末首次在美国空军引入,用于评估分包商的工作。 后来,通过改进版本,它被实现为跟踪软件开发系统的质量。
整个CMM级别分为五个级别。
- 1级 (初始):系统的要求通常是不确定的,误解和不受控制的。 这个过程通常是混乱和临时的。
- 2级 (管理):估算项目成本,进度和功能。 软件标准已定义
- 3级 (定义):确保产品符合要求和预期用途
- 4级 (定量管理):统计管理项目的流程和子流程
- 5级 (成熟度):识别和部署新工具和流程改进,以满足需求和业务目标