CMMI的全称为Capability Maturity Model Integration,即能力成熟度模型集成。
CMMI是CMM模型的最新版本。CMMI是由美国卡耐基梅隆大学软件工程研究所(Software Engineering Institute,SEI)组织全世界的软件过程改进和软件开发管理方面的专家历时四年而开发出来的,并在全世界推广实施的一种软件能力成熟度评估标准,主要用于指导软件开发过程的改进和进行软件开发能力的评估。随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型。
开发和应用CMMl的主要原因有三点:一是软件项目的复杂性的快速增长使过程改进的难度增大,二是软件工程的并行与多学科组合,三是实现过程改进的最佳效益。
有两种表示法:阶段式表示法和连续式表示法。
不同表示法的模型具有不同的结构。连续式表示法强调的是单个过程域的能力,从过程域的角度考察基线和度量结果的改善,其关键术语是“能力”;而阶段式表示法强调的是组织的成熟度,从过程域集合的角度考察整个组织的过程成熟度阶段,其关键术语是“成熟度”。
其中,更为广泛应用的是阶段式表示法。
对于着眼于改善过程成熟度的组织来说,阶段式模型提供了一种明确的、行之有效的跨越式发展途径。阶段式模型中所描述的组织的五个成熟度等级中,每实现一次等级间的跨越,组织就致力于解决某一方面的问题。
阶段式模型可以为组织定义一个过程成熟度等级,便于进行跨组织的比较。
成熟度等级分为5个等级,等级越高,成熟度越大。
1. 初始级——过程混乱,不可预测且控制乏力
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。企业面临的首要问题是管理上的而不是技术上的。
2.可管理级——实现了基本的项目管理,项目可以重复以往的成功
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
3. 已定义级——实现了组织范围的过程标准化
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
4. 量化管理级——过程得到测量与控制
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
5. 优化管理级——关注于持续的过程改进
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
能力度等级共有六个能力度等级(0~5),每个能力度等级对应到一个一般目标,以及一组一般执行方法和特定方法。
0 不完整级;1 已执行级;2 已管理级;3 已定义级;4 量化管理级;5 最优化级
CMMI为企业带来价值主要体现在以下几个方面:
1.规范化。能保证软件开发的质量与进度,能对“杂乱无章、无序管理”的项目开发过程进行规范。
2.有利于成本控制。
3.有助于提高软件开发者的职业素养。
4.能够解决人员流动所带来的问题。公司通过过程改进,建立了财富库以共享经验, 而不是单纯依靠某些人员。
5.有利于提升公司和员工绩效管理水平,以持续改进效益。通过度量和分析开发过程和产品,建立公司的效率指标。