CMMI 软件能力成熟度模型集成简介
一、简介
CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成(也有称为:软件能力成熟度集成模型),是美国国防部的一个设想,1994年由美国国防部(United States Department of Defense)与卡内基-梅隆大学(Carnegie-Mellon University)下的软件工程研究中心(Software Engineering Institute,SEISM)以及美国国防工业协会(National Defense Industrial Association)共同开发和研制的,他们计划把现在所有现存实施的与即将被发展出来的各种能力成熟度模型,集成到一个框架中去,申请此认证的前提条件是该企业具有有效的软件企业认定证书。
CMMI自出道以来,它所达到的目标就没有变过,第一个是质量,第二个是时间表,第三就是要用最低的成本。不过特别强调的是,CMMI不是传统的、仅局限于软件开发的生命周期,它应该被运用于更广泛的一个范畴——工程设计的生命周期。TSP的建立,也是为了支持CMMI的这样一个系统。那么CMMI究竟是什么呢?它并不是一个过程,也不是告诉你怎么去做一件事情。如果用一句话来概括什么是CMMI,它就是各个进程的一个关键的元素,在很多领域里面一个集成的点。它是这样的一个基本架构,能够用来度量你的有效性和实用性;能够找出这样的一些机会,继续改进的机会,包括在商业目标、策略还有降低项目的风险等方面。
二、构成
CMMI是由一系列的目标所构成,CMMI有一个总目标,那就是组织的过程的持续改进,这也是CMMI的愿景。在这个总目标之下,CMMI又细分为多个子目标,子目标又分为特定目标(SG)和通用目标(GG)两种;每一个G(子目标)下设有不同的实践(P)对G(子目标)的实现进行支持;SG下的实践被称为特定实践(SP),GG下的实践则被称通用实践(GP)。
CMMI除有一整套目标体系外,还根据项目管理、质量管理的关键点,建立了过程域(PA),过程域分为四个类别:过程管理类、项目管理类、工程类、以及支持类等,每一个PA都有若干个不同地SG予以支持,而GG则是支持于所有的PA实现。
三、实施意义
实施CMMI其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。
四、CMMI的价值
1.能保证软件开发的质量与进度,能对"杂乱无章、无序管理"的项目开发过程进行规范。
2.有利于成本控制。因为质量有所保证,浪费在修改、解决客户的抱怨方面的成本会降低很多。绝大多数情况是缺少规范制度,只是求快。项目完成后,要花很多时间修修补补,费用很容易失控。
3.有助于提高软件开发者的职业素养。每一个具体参与其中的员工,无论是项目经理,还是工程师,甚至一些高层管理人的做事方法逐渐变得标准化、规范化。
4.能够解决人员流动所带来的问题。公司通过过程改进,建立了财富库以共享经验, 而不是单纯依靠某些人员。
5.有利于提升公司和员工绩效管理水平,以持续改进效益。通过度量和分析开发过程和产品,建立公司的效率指标。
五、实施目标
1、为提高组织过程和管理产品开发、发布和维护的能力提供保障。
2、帮助组织客观评价自身能力成熟度和过程域能力,为过程改进建立优先级以及执行过程改进。
3、初步目标是集成三个特殊的过程改进模型:软件CMM、系统工程能力评估标准以及集成化产品和过程开发模型,这项集成的目的是通过一种手段减少实现基于多学科模型的过程改进成本。
4、长期目标是为今后把其他学科(如获取过程和安全性)添加到CMMI中奠定基础。为了促进模型集成,CMMI产品开发组建立了一个自动的、可扩展的框架,其中可放入构件、培训资料构件以及评估资料。在已定义的规则控制下,更多的新学科能被加入到该框架中。