CMMI 定义:
Capability Maturity Model Integration,即能力成熟度模型集成。
是在CMM(Capability Maturity Model For Software,软件能力成熟度模型)的基础上发展而来的
软件能力成熟度评估标准,主要用于指导软件开发过程的改进和进行软件开发能力的评估
CMMI 解析:
过程域 (Process Area)
CMMI包含过程域。
过程域是一类最佳实践的集合,这些实践属于同一类过程。它们是建立过程能力最主要的元素(模块)
过程域对象 代表应用中的业务逻辑或流程。
(ps:过程域与过程概念不同,过程域是实践的集合,没有严格的先后顺序,是一个堆,而过程是活动偏序集,活动存在先后次序)
CMMI 22个PA:
过程域的部件可以划分为3类
1.必要的(必需的)
描述组织达到某个过程域 必需满足 的部份,这种满足在组织过程中的实现是可视的。
CMMI的必需部件是目标(特性目标和共性目标),这些目标在评估中作为判断一个过程达到和满意的基本原则,从而确定过程能力。
2.期望的
说明组织要达到某个目标的一般性做法。指导那些实施过程改进或者执行评估的人用于判断过程域是否达到目标。
CMMI的期望部件是特定实践和共性实践。
实践是期望的,也就是说最好那么做,不那么做也可以,但是你要证明你的替换做法是可以满足目标要求的,怎么判定是否满足了目标要求了?同样也是由评估组成员进行检验判断。与时俱进,最佳实践在今年是最佳,明年就未必
3.信息的
信息部件是对如何达到必需部件和期望部件的更加详细的描述,给出模型的细节
关键组件
特定目标(Specific goal, SG)
适用于单一的过程域,并强调其唯一的特征,此特征用来说明必需要执行什么以满足该过程域
特定目标是必要的模型组件,在评估时用来确定某过程域是否符合其目标
每个过程域有多个或者一个特定目标
特定实践(Specific Practice, SP)
是一种活动,这组活动被期望可达成某过程域的特定目标
每个特定目标下有多个特定实践活动
共性目标(Generic Goal, GG)
相同目标的叙述可适用于多个过程域(同一目标的陈述对应多个过程域)
描述组织制度化实施的特征
达到某个过程域的共性目标,代表该过程域相关过程的计划和实施得到控制与改进,也象征这些过程是有效、可重复及可持续的。
共性实践(Generic Practice, GP)
同一实践的陈述对应了多个过程域。共性实践说明一组活动,这组活动被期望可达成给定的共性目标
共性实践提供制度化,确保过程域的相关过程是有效、可重复及可持续的
共性实践详细说明(Generic Practice Elaboration)
是介绍性的模型组件
出现在各过程域,并提供指南以说明共性实践要如何应用于过程域
例如:
当共性实践
“按需要培训人员,以执行或支持以策划过程”集成至配置管理过程域,就是要说明如何进行配置管理相关活动的特定培训。
典型工作成果(Typical work products)
当执行一个实践时,通常会以工作成果的形式产生输出 DEMO
是介绍性的模型组件,提供某特定或者共性实践的产出范例,这些范例具有代表性,但不是全部的有效工作产品
例如:
项目监控过程域的特定实践
“依据项目计划中的参数监督项目实际数据”中的一个典型成果是“明显偏离的记录”
子实践(Subpractices)
提供了详细的说明,用于实施某个特定实践或者共性实践
子实践以规范式的文字描述,是CMMI模型中介绍性的模型组件,提供可用于过程改进的意见而不具强制性
例如:
在项目监控过程域中特定实践
“对确定的问题采取纠正措施”的一个子实践是 “为处理所识别的问题而采取措施,并形成文件”
CMMI表示模型
连续式
应用灵活,所以组织可以决定那些过程域作为重点
将过程域分为4大类型
每类过程中的过程域又进一步分为基础的和高级的
阶段式 (更重要)
5个成熟度等级分别是,每个等级都有若干个过程域:
第1级:初始级
第2级:受管理级
第3级:已定义级
第4级:定量管理级
第5级:持续优化级
成熟度等级:是一组经过定义的渐进式改进指标,达到每个成熟度,则代表组织过程的某重要部分有了稳固的基础分为5个等级,处理初始级外,成熟度等级是循序渐进的,前一个等级是后一个等级实现的基础
第一阶段到第五个阶段,软件开发生产的计划精度越来越高,每单位工程的生产周期越来越短,每单位工程的成本越来越低。
过程能力按等级划分
每一等级的实践为达到高等级要求打下基础
过程能力:指的是过程稳定实现过程目标的能力,可以从稳与准两个维度判断
1.初始级
不需要评估的,它妹有过程域,你随便创个公司搞开发就是了
- 过程通常是混乱的,而且组织通常没有提供稳定的开发环境
- 这些组织的成功,往往依赖于组织中个人的能力和拼搏精神,而不是使用一套经过验证的过程
- 具有明显的不成熟过程的特点,组织的过程能力是不可视和不可预测的,缺乏开发和维护软件所需的稳定环境
- 组织也可以开发出可以工作的产品和服务,但是往往伴随项目费用的超支和进度的拖延
2.已管理级
焦点开始集中在软件过程的管理上,一个受管理的过程则是一个可重复的过程。从管理角度可以看到一个按计划执行的并且阶段可控的、规范化的软件开发过程
- 组织已完成第2级所有过程域的特定目标和共性目标
- 组织的项目已确保需求是被管理的,而且其过程是经过计划、执行、度量及控制的
- 已建立了管理软件项目的方针和实施这些方针的规程,使得软件项目的有效管理过程制度化,有能力去跟踪成本、进度和质量。
- 由于遵循以前项目所制定的确实可行的计划,项目计划处在项目管理系统的有效控制之下,使具有类似应用的项目能重复以前的成功实践,尽管项目所实施的具体过程可能不同
- 一个有效过程是可特征化,已文档的、已实施的,可培训的和可测量的软件过程,在预定的时间节点,管理层都可以了解工作成果的情况
- 项目管理过程被文档化和遵循
- 以往项目的成功实践可以重复
- 处于已管理级组织中的项目已设置基本的软件管理控制,需求、过程、工作成果以及服务是受管理的
3.已定义级
通过裁剪组织的标准软件过程来建立自定义的软件过程
- 组织已经完成第2级和第3级的所有过程的特定目标和共性目标,工程过程都已经详尽地说明,并应用标准、规程、工具及方法来表现
- 包含一组协调的、集成的、适度定义的软件过程过程和管理过程,具有良好的文档化、标准化,使整个软件过程具有可视性、一致性、稳定性和可重复性,软件过程被集成为一个有机的整体
- 组织标准过程是成熟度第3级的基础,项目可对组织的标准过程进行裁减,以建立项目过程。
- 员工理解过程中的角色和职责
- 整个过程中,产品的生产是可视的
4.已管理
对软件产品的质量、开发进度和其它开发目标进行有效的评估和预测
- 组织已经达到成熟度第二级、第三级和第四级的所有过程域的特定目标和共性目标,选定对整体过程绩效有重大影响的子过程,并使用统计和其他的量化技术来控制这些子过程。
- 建立质量与过程绩效的量化目标,并以该目标为管理过程的准则。量化目标是根据客户、最终用户、组织以及过程执行者的需求而设定的。以统计的术语表示质量和过程绩效,并使他们在整个过程中受到管理
- 可以建立有关软件过程和产品质量的、一致的度量体系,采集详细的数据进行分析,从而对软件过程进行有效的定量控制和管理。
- 由于有完整的度量体系,过程是已测量的并在可测的范围内运行,组织的软件过程能力可概括为过程效率和产品质量方面的可预测的高质量。
- 具有良好的风险管理,可以识别出开发新应用领域的软件所带来的风险,并得到有效的回避、控制等
已管理级已定义级的区别
标准、过程和规程的范围不同
在第2级中,某过程在不同案例间的标准、过程说明以及规程可能有相当的差异
在第3级中,项目的标准、过程说明以及规程都是从组织的标准过程裁减而来的,已适用于某些特殊项目或单位。组织的标准过程包括了成熟度第2级和第3级的过程,因此除了裁减指南所允许的差异之外,整个组织所执行的过程都是一致的
第3级的过程说明比第2级更加详细与严谨,基于对过程活动的了解,以及对过程、产品与服务的详细度量,可更主动地管理过程
5.优化级
其焦点是软件过程的持续改进,所谓持续改善是指可根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。如果一个企业达到了这一级,那么表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。
- 组织已经达到成熟度第二级、第三级、第四级和第五级所有过程域的特定目标和共性目标,根据对过程变化共性原因的量化了解,持续进行过程改进
- 第五级专注于持续改进过程绩效,已经建立组织的量化过程改进目标,并持续修订以反映持续变化的经营目标。
- 量化的过程改进目标也当作管理过程改进的准则,用于度量、评估以进行的过程改进效果。
- 优化级不断改善组织的软件过程能力和项目的过程性能,利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续过程改进成为可能
- 为了预防缺陷的出现,组织有办法识别出弱点,并预先针对性地加强过程。
- 在对新技术和软件过程改进的时候,利用有关软件过程有效性的数据能进行成本效益分析,识别出最具有价值的技术创新或者过程创新并推广到整个组织。
- 追求新技术、利用新技术,实现软件开发中的方法和新技术的革命