CMMI的全称为Capability Maturity Model Integration,即能力成熟度模型集成。CMMI是CMM模型的最新版本。早期的CMMI(CMMI-SE/SW/IPPD),SEI在部分国家和地区开始推广和试用。随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型。 [1]

中文名
能力成熟度模型集成
外文名
Capability Maturity Model Integration
简    称
CMMI
开发机构
卡耐基梅隆大学软件工程研究所
级    别
五级分级
学    科
软件工程

发展

编辑

CMMI(Capability Maturity Model Integration For Software,软件能力成熟度模型集成)是在CMM(Capability Maturity Model For Software,软件能力成熟度模型)的基础上发展而来的。CMMI是由美国卡耐基梅隆大学软件工程研究所(Software Engineering Institute,SEI)组织全世界的软件过程改进和软件开发管理方面的专家历时四年而开发出来的,并在全世界推广实施的一种软件能力成熟度评估标准,主要用于指导软件开发过程的改进和进行软件开发能力的评估。

CMM模型自20世纪80年代末推出,并于20世纪90年代广泛应用于软件过程的改进以来,极大地促进了软件生产率的提高和软件质量的提高,为软件产业的发展和壮大做出了巨大的贡献。

然而,CMM模型主要用于软件过程的改进,促进软件企业软件能力成熟度的提高,但它对于系统工程、集成化产品和过程开发、供应商管理等领域的过程改进都存在缺陷,因而人们不得不分别开发软件以外其他学科的类似模型。

自从引入基于模型的过程改进之后,工程界至少在三个重要领域已经有了变化。

首先,执行工程的环境已经变得更加复杂。工程量更大、需要更多的人员、需要跨越公司界限、发布范围更宽更广,而且必须继续加快实现的进度,以满足客户的需要。这样导致各种协调工作的大量增加。

其次,执行工程任务的方式已经有了进化。交叉学科群组、并行工程、高度自动化的过程以及多国标准等都影响到工程实践。这样一来,一个工程项目可能要涉及到几个国际标准

第三,软件工程研究所的软件能力成熟度模型(CMM)的成功,导致了各种模型的衍生,而每一种模型都探讨了某一特定领域中的过程改进问题。各机构也已采用多种改善模型分别处理各自的关键过程问题。在工程组织中模型的繁衍导致了过程改进目标和技术的冲突,也导致了实践人员在应用各种不同的模型来实现特定的需求时容易产生混淆,这就要求培训工作也随之增长。

所有这些变化都表明,有必要将各种过程改进工作集成起来。包含在当代工程中各种各样的学科和过程是密切交叉在一起的。在应用不同模型时,效率低下且容易混淆,常常要付出极其昂贵的代价。因而需要有一种单一的过程改进框架而又能跨越多种学科的工具。软件能力成熟度模型集成(CMMI)就是用来解决这三类问题的。 [2]

基本思想

编辑

开发和应用CMMl的主要原因有三点:一是软件项目的复杂性的快速增长使过程改进的难度增大,二是软件工程的并行与多学科组合,三是实现过程改进的最佳效益。

(1)解决软件项目的过程改进难度增大问题。CMM成功实施以后,极大地提高了软件企业的开发效率和软件产品的质量,从而也提高了软件产品的可靠性和软件产业的信誉,这样人们就对软件寄予了更大的希望。人们希望软件能够完成更多、更大、更复杂的任务。

(2)实现软件工程的并行与多学科组合。CMM模型的成功实践,促进了工程和产品开发的组织发生了巨大的变革,变革的目标主要是为了消除与分段开发有关的低效。在分段开发过程中,中间产品传给下一阶段的工作人员时,有可能要进行大量的返工,以纠正原先的理解错误。并行工程、交叉学科群组、交又功能群组、集成化产品群组以及集成化产品和过程开发等,都代表了在产品或服务的整个生命周期的合适时间内处理这类问题的不同方法。这种倾向意味着设计人员和客户要与制造人员、测试人员和用户共同工作,以支持开发需求的制造组织。这种工作方式蕴涵着所有关键的相关人员要支持产品或服务开发的所有阶段。

(3)实现过程改进的最佳效益。尽管过程改进存在复杂化的因素,但软件管理专家们相信,其中的许多障碍可以通过一个集成过程改进的公共模型来克服。这种信念反映了在集成方面所进行的工作和CMMl项目的作者和评审人员的经验。人们相信,正如通过CMM的过程改进能够产生显著的效益一样,集成过程改进也能产生更大的效益。

从根本上来说,过程改进集成主要影响四个领域:成本、侧重点、过程集成和灵活性。其中某些变化可能比另一些变化容易量化,但所有这些都体现了过程改进集成的真正优势。 [2]

CMMI模型的表示法

编辑

在CMMI中,每一种CMMI学科模型都有两种表示法:阶段式表示法和连续式表示法。

不同表示法的模型具有不同的结构。连续式表示法强调的是单个过程域的能力,从过程域的角度考察基线和度量结果的改善,其关键术语是“能力”;而阶段式表示法强调的是组织的成熟度,从过程域集合的角度考察整个组织的过程成熟度阶段,其关键术语是“成熟度”。

(1)阶段式表示法

软件CMM是一种阶段式模型,该模型经过多年的成功使用已经被证明是有效的,这为选择阶段式表示法模型提供了最强有力的证据。考虑从不成熟组织向成熟组织的发展过程,阶段式表示法具有两方面优势。

首先,阶段式模型为支持组织的过程改进提供了一个过程平台,该模型将软件组织的软件能力成熟度描述为5级。对于着眼于改善过程成熟度的组织来说,阶段式模型提供了一种明确的、行之有效的跨越式发展途径。阶段式模型中所描述的组织的五个成熟度等级中,每实现一次等级间的跨越,组织就致力于解决某一方面的问题。例如,组织从成熟度等级1到成熟度等级2,主要致力于项目管理过程的改进;从成熟度等级2到成熟度等级3,主要致力于广泛的组织级过程的改进;从成熟度等级3到成熟度等级4,主要致力于过程定量管理的过程的改进;从成熟度等级4到成熟度等级5,主要致力于技术革新和优化过程的改进。通过这种方式,阶段式模型确定了组织进行过程改进的最佳次序。

其次,阶段式模型可以为组织定义一个过程成熟度等级,便于进行跨组织的比较。在阶段式模型中,每一个过程域都被指定归属到一个成熟度等级中。因此,基于阶段式模型为组织所定义的成熟度等级中,过程域的预期范围和应用将变得非常清晰。这样,在对不同的组织进行比较时,只要对比组织所达到的不同的成熟度等级,即可知道不同组织在执行过程域方面所存在的差别。

阶段式表示法存在两方面的缺点:一是阶段式表示法采用分组形式,将过程域划分到五个等级中。在一般情况下,一个组织要到达某一个等级,必须满足该等级及其低等级的所有过程域,因而缺乏灵活性。另外,阶段式表示法的每个等级都会出现同时进行多个过程改进的情况,因而工作量大,所花费的成本也很大。

(2)连续式表示法

相比之下,连续式模型不如阶段式模型常用,采用连续式模型也有如下两方面的优势:

首先,连续式模型为用户进行过程改进提供了比较大的自由度。如同上面所说,阶段式模型确定了组织进行过程改进的最佳次序,但同时也限定了用户在进行过程改进时必须遵循单一的改善路径。而连续式模型则允许用户根据组织的业务目的来选择过程改进活动的次序。在连续式模型中,用户可以选择定义组织的成熟度等级,同时还可以选择定义更适合于自身业务环境的过程域的次序。组织可以在一个自己选择的次序中使过程域达到给定的能力等级,而不必遵循单一的阶段式模型的原则。

其次,基于连续式模型对组织的过程进行评估,其评估结果具有更好的可见性。在连续式模型中,可以为每个过程域定义多个能力等级,从而可以增强对过程改进中强项和弱点的认识。由于连续式模型是对每个个别的过程域进行单独的评定,并给出个别过程域的能力等级特征图,这样更便于观察。

连续式表示法也存在两方面的缺点:一是由于连续式表示法没有规定过程域应用的顺序,因而组织的过程改进需要软件过程改进专家的指导,以便确定组织需要改进的过程和改进的先后次序。另外,尽管组织应用连续式表示法进行了过程改进,但难以与其他软件组织进行组织间过程能力的比较。 [2]

级别

编辑

CMMI共有5个级别,代表软件团队能力成熟度的5个等级,数字越大,成熟度越高,高成熟度等级表示有比较强的软件综合开发能力。

CMMI一级,执行级。在执行级水平上,软件组织对项目的目标与要做的努力很清晰,项目的目标可以实现。但是由于任务的完成带有很大的偶然性,软件组织无法保证在实施同类项目时仍然能够完成任务。项目实施能否成功主要取决于实施人员。

CMMI二级,管理级。在管理级水平上,所有第一级的要求都已经达到,另外,软件组织在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对项目相关的实施人员进行了相应的培训,对整个流程进行监测与控制,并联合上级单位对项目与流程进行审查。二级水平的软件组织对项目有一系列管理程序,避免了软件组织完成任务的随机性,保证了软件组织实施项目的成功率。

CMMl三级,明确级。在明确级水平上,所有第二级的要求都已经达到,另外,软件组织能够根据自身的特殊情况及自己的标准流程,将这套管理体系与流程予以制度化。这样,软件组织不仅能够在同类项目上成功,也可以在其他项目上成功。科学管理成为软件组织的一种文化,成为软件组织的财富。

CMMI四级,量化级。在量化管理级水平上,所有第三级的要求都已经达到,另外,软件组织的项目管理实现了数字化。通过数字化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。

CMMI五级,优化级。在优化级水平上,所有第四级的要求都已经达到,另外,软件组织能够充分利用信息资料,对软件组织在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。

由上述的5个级别可以看出,每一个级别都是更高一级的基石。要上高层台阶必须首先踏上所有下层的台阶。应用

CMMI是一个庞大的过程元模型,自发布以来在世界软件界产生了巨大的影响。CMMI等级评估已经成为业界公认的标准,CMMI的证书成了一个企业或组织能力和形象的标志,没有这个证书不仅难以获得国外项目,甚至也难以在国内一些项目的竞标中获胜。CMMI适合企业操作,避免了某些管理体系只重理论而忽视实践的缺陷。在我国,随着媒体的宣传和政府的支持,许多企业引入了CMMI咨询和认证,对于整个软件行业的管理提升及研发效率提高起到了很大的帮助作用。但也有一些企业引入CMMI体系后,只留下一些形式上的开发流程和文档模板,在管理上并无实质性改进。对于CMMI,业界一直存在着两种声音,有人认为CMMI执行过度,得不偿失;也有人说它过于通用,实用价值不大;但多数人还是认同它,并根据需要加以应用。 [3]

作用

编辑

很多软件企业纷纷实施CMMI管理模式,不少企业如:东软、托普、华为等企业通过了三级或四级评估。这一方面反映了我国企业在进入WTO后的危机意识,以及与世界接轨的迫切愿望。另一方面则反映出我国软件企业在改进管理方法上所作的努力。但是CM-MI到底能够为我们做什么呢?实际上这个问题对不同的人有不同的答案。对采购部门的人员来说,掌握了CMMI技术可以有目的地考察项目实施人员或公司的实施能力,从而保证所采购的项目能够顺利完成。对于项目经理来说,掌握CMMl技术能够提高自己的项目管理能力,从而能够使项目高质量、低成本、按期限地完成。对于企业领导人来说,CMMI技术不仅能够提升企业的管理水平,还能够引入科学的管理理念,提升企业的整体管理水平。

在美国,很多企业通过CMMI评估一方面为了满足承包国防工程或一些大企业的工程的要求,另一方面也是为了提高企业自身的管理能力。美国政府的工程项目,绝大多数都要求承包商具有一定的CMMI级别作为参加投标的资格。越来越多的大型企业业开始要求其工程承包商具有一定的CMMl级别。级别高的企业在赢得项目的竞标中具有一定的优势。因此,如果没有CMMI的等级评估,企业就会失去很多商机。 [1]

应用

编辑

CMMI是一个庞大的过程元模型,自发布以来在世界软件界产生了巨大的影响。CMMI等级评估已经成为业界公认的标准,CMMI的证书成了一个企业或组织能力和形象的标志,没有这个证书不仅难以获得国外项目,甚至也难以在国内一些项目的竞标中获胜。CMMI适合企业操作,避免了某些管理体系只重理论而忽视实践的缺陷。在我国,随着媒体的宣传和政府的支持,许多企业引入了CMMI咨询和认证,对于整个软件行业的管理提升及研发效率提高起到了很大的帮助作用。但也有一些企业引入CMMI体系后,只留下一些形式上的开发流程和文档模板,在管理上并无实质性改进。对于CMMI,业界一直存在着两种声音,有人认为CMMI执行过度,得不偿失;也有人说它过于通用,实用价值不大;但多数人还是认同它,并根据需要加以应用。

有关 CMMI的更多相关文章

  1. 微软TFS Agile/CMMI/Scrum

    二.VS Online 与 Agile/Cmmi/Scrum 介绍了背景,那就言归正传了.VS Online 和文章标题有什么关系呢? 成功注册VS Online之后,我准备创建自己的project时 ...

  2. 期许伟大-基于CMMI的过程改进之道探索

    原文作者:上海科维安信息技术顾问有限公司QAI China 何丹博士 CMMI主任评估师   一.引子     近年来,由美国SEI  (软件工程研究所)开发的SW-CMM  (软件过程能力成熟度模型 ...

  3. 在CMMI推广过程中EPG常犯的错误(转)

    本文转自: http://developer.51cto.com/art/200807/86953.htm 仅用于个人收藏,学习.如有转载,请联系原作者. ---------------------- ...

  4. CMMI能搭救企业吗?

    曾经有朋友跟我提起,他们公司突然有人关注我了,我自然很开心了,看来我名声在外了,哈哈!但我的朋友说,他是这样关注的:“他怎么还在那个公司?他们不是过了5级了吗?我们公司过了级后,EPG(Enginee ...

  5. 0. CMMI快乐之旅——内容简介及目录

    摘要: 这是我几年前发表于 www.cmmionline.net 网站(现在升级为www.umlonline.org 网站)数十篇文章,全方位分享了我对CMMI的理解,现我打算整理这些文章陆续在CSD ...

  6. CMMI整体理解

    CMMI的目的,一是质量,二是时间表,三是最低的成本:我的理解就是即以最低的成本,在既定的时间表要求下,达到相应的质量水平. CMMI是什么?我的理解是,CMMI并不是一个过程说明书,它不是告诉我们怎 ...

  7. PMBOK/CMM/CMMI/OPM3

    1968年为了解决大型软件项目的软件危机,北大西洋公约组织(NATO)提出了“软件工程”这一术语,以改进软件开发设计过程. 1969年美国项目管理协会(PMI)组织成立,从1981年起经过30年的努力 ...

  8. CMMI集谈

    SEPG(Software Engineering Process Group)是软件工程过程组的缩写,指由软件过程专家组成的团队,负责在软件组织内推动和促进软件过程改进.最早在CMM中提出,1990 ...

  9. [原创] 初识Agile/CMMI/Scrum

    一.背景介绍 在朋友(aehyok)的建议下,初步去了解Visual Studio Online,简称VS Online(即原来的 Team Foundation Service,简称TFS) VS ...

  10. [转]软件开发过程(CMMI/RUP/XP/MSF)是与非?

    经常看到和听到大家在争论敏捷过程.RUP和CMM 哪个软件开发过程更好或者哪个过程不好,各自都有理由.争论得不亦乐乎......实际上,没有十全十美的过程,也不存在更好的过程.关键是什么样的过程适合自 ...

随机推荐

  1. HNU_团队项目_出现的Error总结_1

    今天开始记录开发中的Error,实时更新,以10条为一个博客,会给出相应的错误截图和解决方法.数据库框架Mybatis的配置和使用,详见之后发布的相关博客. 之后会对每一个错误进行分析,单独成一篇随笔 ...

  2. Jmeter使用CSV Data参数化,中文参数传递过程出现乱码问题

    解决方式:文件编码改为GB2312.GBK.GB18030(utf-8同样会乱码)

  3. HTTP及WEB框架简述

    HTTP介绍 Hyper Text Transfer Protocol,超文本传输书协议,是万维网数据通信的基础,规定了请求和响应标准. HTTP工作原理 HTTP 请求以及响应的步骤 客户端连接到W ...

  4. 大觅网02Day

    docker环境搭建:(注:请先完成上一次的环境搭建) A.部署环境(导入上次系统的时候修改虚拟机的内存) 1.安装系统自带版本Docker:apt-get install docker.io 2.查 ...

  5. C学习笔记-gcc

    GNU CC(通常称为GCC)是GNU项目的编译器,它能够编译C.C++语言编写的程序 gcc的优点 使用gcc,程序员可以控制生成二进制执行文件中调试代码的数量和类型. 和其他编译器一样,gcc也可 ...

  6. Find Duplicate Subtrees

    Given a binary tree, return all duplicate subtrees. For each kind of duplicate subtrees, you only ne ...

  7. Linux下面查看网卡的信息

    查看linux下面网卡的速度信息 Study From 百度知道 (懒得翻墙) 1. centos机器 安装的比较全(个人比较懒 没有使用core最小化安装, 避免出问题麻烦 公司网络太垃圾) 使用 ...

  8. (5.12)mysql高可用系列——复制中的在线切换GTID模式/增加节点/删除节点

    目录 [0]需求 前提,已经假设好基于传统异步复制的主库和从库1. [0.1]传统异步切换成基于GTID的无损模式 [0.2]增加特殊要求的从库 [1]操作环境 [2]构建 复制->半同步复制 ...

  9. 【案例分享】SpreadJS金融行业应用实践,开发基于Web Excel的指标补录平台

    SpreadJS作为一款基于 HTML5 的纯前端电子表格控件,以“高速低耗.高度类似Excel.可无限扩展”为产品特色,提供移动跨平台和浏览器支持,可同时满足 .NET.Java.App 等应用程序 ...

  10. 关于一个查询的JAVA界面,希望对你有启发

    package work2; import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; ...