简介•CMMI全称是CapabilityMaturityModelIntegration,即软件能力成熟度模型集成,是由美国国防部与卡内基-梅隆大学和美国国防工业协会共同开发和研制的,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。•其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。产生的背景•CMM是指软件能力成熟度模型,英文缩写为SW-CMM,简称CMM。CMM的定义是:对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。•自1991年SW-CMM首次发布后,SEI又开发了其他成熟度模型,包括:系统工程、采购、人力资源管理和集成产品开发等。虽然各个模型针对的专业领域不同,但彼此之间也有一定的重叠,后SEI将各个模型整合,建立统一模型,就产生了CMMI模型。起源•CMMI是一套融合多学科的、可扩充的产品集合,该模型包含了从软件需求提出、软件设计、开发、编码、测试、交付运行到软件退役的软件整个生存周期里各个软件过程的各项基本要素;是软件过程的有机汇集,旨在为软件组织改进其过程和提高其对软件产品或服务的开发、采购以及维护的能力中提供指导。•CMMI起源于三个模型(源模型),分别是:软件能力成熟度模型(SW-CMM)2.0版,C稿电子行业协会临时标准(EIA/IS731)集成产品开发能力成熟度模型(IPD-CMM)v0.98发展史1991:第一个CMM模型:软件CMM自1991年以来,相继有多个学科领域的CMM模型问世:SE-CMM,SW-CMM,IPD-CMM等1997:开发一个CMM模型的集成框架2002:CMMIV1.1(包含了CMMI-SE/SW/IPPD/SS模型)正式发布2006:CMMIV1.2正式发布2010:CMMIV1.3正式发布(包含开发、采购、服务模型)评估方法•SEI将CMMI的评估过程分为ClassA、B、C三种类型:•SCAMPIARCA类评估•CMMIA类评估过程,是正式的标准过程,目的是获得评估等级,评估过程需执行所有的评估要求步骤,在CMMI标准中需要满足ARC要求(CMMI的评估要求),相对需要组建正式评估小组,并需要授权的评估师进行评估,具体评估过程详细描述参见SCAMPI(StandardCMMIAppraisalMethodforProcessImprovement)评估方法介绍。•SCAMPIARCB类评估•CMMIB类评估过程,则只需要满足部分的ARC要求,并可以只需要收集更少的信息,一般必须由访谈方式获得信息,这里不需要最终产生组织的成熟度级别,评估组的负责人可以是授权评估师或由组织内部相应的有经验的成员担当,这可以认为是组织内部的评估过程,可以在过程改进过程中的诊断过程中使用,也可以在组织发展过程中进行阶段性评估审计时使用。•SCAMPIARCC类评估•CMMIC类评估过程,则满足更少的ARC要求,这是组织快速浏览过程,只确定相对较少过程域,不需要授权评估师和给出组织成熟度级别的一种非正式评估过程。一般是特定少数或一个项目,或针对少数过程或一个过程在组织中执行的情况进行评估,一般是在组织发展过程中进行。表现形式•一个组织可以从过程域能力或组织成熟度两种角度选择过程改进的途径。•通过过程域能力的角度进行选择的就是分别在每个过程域中建立基线并度量改进结果。这种方法在连续式表示法中得到了支持,使用的关键术语是“能力”。•通过组织成熟度的角度进行选择则强调过程域集合,这些过程域集合的目睹是用来定义整个组织的过程成熟度的已验证阶段。在阶段式表示法中采用了此方法,使用的关键术语是“成熟度”。连续式模型•连续式表述关心选择特定的过程域进行改进,以及该过程域期望的能力度等级。在这个背景下,一个过程是否已执行或不完整是重要的,所以,不完整作为连续式表示的开始点。•能力度等级,属于连续式表述,应用于个别过程域的组织过程改进的达成。这些等级对一个过程域有递增地改进过程的方式。•四个能力度等级:0不完整级1已执行级2已管理级3已定义级能力度等级能力0级:不完整级•一个不完整过程是一个没有执行或部分执行的过程。无法满足过程域的一个或多个特定目标,以及因为没有制度化部分执行过程的理由,这个等级没有通用目标。能力1级:已执行级•一个已执行过程是一个完成生产工作产品所需工作,满足过程域特殊目标的过程。能力2级:已管理级•一个已管理过程是一个依据方针进行策划和执行,雇佣有技术的人员拥有充足的资源来产生受控输出;相关利益人参与监督、控制和评审,且经评价符合其过程描述的已执行过程。能力3级:已定义级•已定义过程是一个已管理过程,过程根据组织的定义指导定义组织标准过程,并纳入工作产品、度量与其他过程改进信息至组织过程资产。阶段式模型•成熟度等级,属于阶段式表述。每个成熟度等级包含已定义好的组织过程子集,每一个成熟度等级会使一个重要的组织过程子集合变得成熟,为提升到下一个成熟度做准备。•五个成熟度等级:1初始级2已管理级3已定义级4量化管理级5优化级成熟度等级成熟度1级:初始级•过程通常都是随意和混乱的,组织往往没有提供一个稳定的环境来支持过程。项目的成功都有赖于组织内个人的能力和英雄主义。•成熟度1级的组织趋势描述为过度承诺,一次危机就会抛弃其过程,并且不能重复成功。成熟度2级:已管理级•可确保组织的项目是按照方针策划和实施过程;项目雇佣具备技能的人员并给与足够的资源,产出可控制的产品,纳入干系人,监督、控制与审查,以及评估遵循过程说明的程度。•成熟度2级所反映的过程规范,可提供帮助以确保现有的实践在有压力的情况下,仍维持运行。成熟度3级:已定义级•建立与改进组织标准过程,是成熟度3级的基础。•项目根据定义指导,定义组织标准过程以建立它们的定义过程。成熟度4级:量化管理级•组织与项目针对质量与过程绩效建立量化目标,并使用它们当做管理过程的准则。•成熟度3级和4级之间的一个重要区别是过程性能的可预见性。在成熟度4级,使用统计和其他量化技术来控制项目和已选择的子系统的性能,并且预测都是部分地基于对过程数据的统计的细致分析。成熟度5级:优化级•组织基于对商业目标和绩效需要的量化理解继续改进其过程,通过渐增与创新过程及技术改进,专注于持续改进过程绩效。建立组织量化过程改进目标,度量与评估部署过程改进的影响。改进活动的目标是已定义过程与组织标准过程。•成熟度4级和5级之间的一个重要差别是关注管理和改进组织性能。在成熟度4级,组织和项目着重在子过程级别理解和控制组织性能并使用结果来管理项目。在成熟度5级,组织使用从多个项目收集的数据来关注整体的组织性能,使用数据分析结果来识别性能中的不足和差距,这些差距可用于推动组织过程改进,生成可度量的性能改进。过程不可预计,不可控,项目不可重复,依赖个人英雄项目级过程管理、项目可重复组织级过程定义和实施过程度量和统计控制持续改进12345初始级已管理级已定义级量化管理级优化级级--初始级•过程处于馄饨状态,有时候只是一些无秩序的习惯•过程性能依赖于个人的能力和英雄行为•一旦指派最优秀的人员执行任务时,高质量和出色表现是有可能的•过程性能不可预计•没有有效的实施管理活动•只有输入(需求)和输出(系统产品)•产品可能是在某种不规则的过程中产生不可预测的过程性能级--已管理级•项目管理是有纪律的•组织方针建立并遵照执行•项目计划和过程描述已经文档化并执行•足够的资源•在整个生命周期指派了职责和权利•过去的成功能够重用在新的类似项目中•纪律保证现有惯例在多种压力情况下得以维持•工作任务和工作产品对于管理着在定义的点上是可见的过程是“已管理的”InOut•需求输入,通常会有期望的系统产品输出•按照方针制定了项目计划•项目活动按照计划执行•在定义的点上实施度量和评审•可以重复成功实践级--已定义级•建立了组织的标准软件过程•建立了负责组织的软件过程活动的机构•项目定义的软件过程•项目进展和状态的可视性•组织的软件能力均衡、一致•具有受到维护的过程描述•能为本组织的过程财富(资源)贡献工作成果、度量项目以及其它过程改进信息过程是“已定义的”•项目定义的软件过程•项目进展和状态的可视性•组织的软件能力均衡、一致级--量化管理级•过程性能的可预见性•使用统计和其他量化技术来控制项目和已选择的子系统的性能•组织与项目针对质量与过程绩效建立量化目标,并使用它们当做管理过程的准则级--优化级•关注管理和改进组织性能•建立组织量化过程改进目标•持续改进过程绩效级进行简单项目估算有比较完整的项目计划关键节点进行检查跟踪任务周报、里程碑报告关键产品进行评审无3级1.可依据组织级的资产库进行项目估算和项目计划2.依据组织采集指南和项目特点进行项目的过程裁剪各类评审风险管理(其他同2级)1.EPG负责过程改进工作2.有效开展组织级培训活动4级根据组织级性能基线,性能模型,采用统计学的方法量化管理项目(其他同3级)1.采取统计学计划监控项目的实际性能与项目最终目标进行比较2.在问题未发生前,采取措施使项目的最终结果在项目目标范围内(其他同3级)定义组织级性能基线和模型供项目使用(其他同3级)5级定义需要深究原因的问题(其他同4级)出现需要深究原因的问题时,采用根源分析的方法进行分析和解决问题(其他同4级)EPG在出现影响组织商业目标达成的问题时,采用根源分析的方法进行分析和解决问题(其他同4级)模型组件•CMMI模型组件按照类型被群组成三个类型:必要的、期望的以及辅助的。必要的组件•必要的组件是说明一个组织要满足某一过程域所需要达成的成果。在CMMI中的特定目标及通用目标是必要的模型组件。目标满足是在评估中决定某过程域是否有达成或满足的基础。期望的组件•期望的组件说明一个组织要达成某一个必要的组件所需要执行的作法。期望的组件用来指导要执行改进或评估的个人与团体。期望的组件包含特定实践和通用实