软件能力成熟度模型(CMM)是一个旨在协助组织改进其软件过程的模型。该模型提供了一种评估组织在软件开发方面的成熟度的方法,从而有助于组织定位现有软件进程的强点和弱点,并识别提高这些进程的机会。
CMM最初开发于1987年,由美国软件工程研究所(SEI)创建。它在1988年推出了CMM模型的第一版,并在1993年推出了第二版。在1993年还推出了CMM的版本1.1,该版本包括了多项增强功能,使其更易用、更准确。
CMM是一个五级模型。它将组织的软件工程能力分为五个依序递增的成熟度级别。随着组织所处的成熟度级别的提高,其软件开发过程的质量也相应提高。
下面是CMM的五个成熟度级别:
1. 初始级别(Level 1)
在这个级别上,组织的软件过程是不可预测的,且通常是非结构化的。在这个级别上,软件开发几乎完全由程序员的技能和经验决定,而不是由组织的软件开发过程所规定的。在这个级别上,组织可能缺乏软件开发标准,且软件开发活动通常是为了解决特定的问题而进行的。这个级别的组织缺乏持续的软件开发过程改进机制,因此,错误和问题的发生是常态。
2. 可重复级别(Level 2)
在这个级别上,组织开始制定规范化的软件开发过程,并对此进行文档化。此时,组织已经建立了一定的软件开发标准,并可以遵循这些标准来开发软件。这个级别的组织已经有了对软件开发过程进行监督和管理的体系,从而能够实现对软件开发过程的控制。
3. 定义级别(Level 3)
在这个级别上,组织拥有了一套成熟的软件开发过程,并对此进行了完全的文档化。组织在这个级别上已经清楚地了解其软件开发过程并能够识别、记录和跟踪与之相关的数据。此时,组织已经拥有一套独具特色的过程,可以在不同的项目中使用,并且这些过程都是标准化的。
4. 管理级别(Level 4)
在这个级别上,组织已经建立了一套完整的过程度量体系,并根据这些度量来对软件开发过程进行管理和监督。此时,组织已经具备了根据数据进行决策的能力,并能够对过程进行定量的评估和改进。
5. 优化级别(Level 5)
在这个级别上,组织已经拥有了一套成熟的、高度优化的软件开发过程,并能够对其进行不断改进。此时,组织已经具备了持续的软件开发过程改进机制,并能够根据过程度量的结果来进行优化。