CMM能力成熟度模型
缩写
英文缩写 | 中文全称 |
---|---|
CMM | 能力成熟度模型 |
CMMI | 能力成熟度模型集成 |
TQM | 全面质量管理 |
SEI | 软件工程研究所 |
IDEAL | 初始化、诊断、确定、行动、推进 |
ISO | 国际标准化组织 |
CMU | 卡耐基•梅隆大学 |
GAO | 美国总审计局 |
JTC1 | 联合技术委员会1 |
MQ | 成熟度问卷 |
KPA | 关键过程域 |
版本控制软件:GIT
知识点
Humphrey开发了两种方法(软件过程评估和软件成熟度评价)和一个成熟度问卷,用以估计软件过程成熟度。
CMM的主要特点:
-
基于实际实践
-
最好地反映了实践的情况
-
反映了软件过程改进和软件过程评估执行人员的执行
-
形成文档
-
文档可以公开使用
深入了解软件过程成熟度的途径:
-
研究非软件机构
-
执行和考察软件过程评估和软件能力评价
-
征求对模型变更的意见,并加以分析
-
同工业界和*部门代表一起参加学术会议和研讨会
-
从工业界和*部门评审人员哪里征求反馈意见
软件过程能力描述了遵循某软件过程可能达到的预期结果的范围。
软件过程效能表示遵循一个过程所达到的实际结果的一种度量。
软件过程效能关注实际结果;软件过程能力关注预期结果。
成熟度级别,行为特征:
-
初始级:软件过程的特点是无秩序的,甚至是混乱的。几乎没有什么过程是经过妥善定义的,成功往往依赖于个人或小组的努力。
-
可重复级:建立了基本的项目管理过程来跟踪成本、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。
-
已定义级:已将管理和工程活动两方面的软件过程文档化、标准化,并综合成该机构的标准软件过程。所有的项目均使用经批准、剪裁的标准软件过程来开发和维护软件。
-
已管理级:收集对软件过程和产品质量的详细度量值,对软件过程和产品都有定量的理解和控制。
-
优化级:过程的量化反馈和现金的新思想、新技术促使过程不断改进。
提高CMM级别的含义:
级别1 | 级别2 | 级别3 | 级别4 | 级别5 | |
---|---|---|---|---|---|
过 | 几乎没有稳定过程存在或被使用过 | 进行文档化,并进行稳定估计和计划,约定过程处于该项目级别 | 整个机构使用综合管理和工程过程 | 定量理解并使之保持稳定 | 持续地、系统地改进过程 |
程 | “仅仅执行过程” | 当问题出现时确定并进行修改 | 预测并预防问题,或将它们的影响降到最低 | 了解单个问题产生的根源并将其排除 | 了解问题的公共源头并将其排除 |
人 | 成功取决于个人的杰出表现 | 成功取决于个人素质,管理系统支持 | 项目组一起工作,也可以是集成产品小组 | 每个项目都有着强烈的团队精神 | 整个机构中有着强烈的团队精神 |
工作方式是“救火” | 理解和管理约定 | 根据不同的任务计划和提供培训 | 过程改进涉及每个人 | ||
员 | 个纪律之间的关系不协调甚至可能是对立的 | 人员得到培训 | |||
技术 | 引入新技术有风险 | 已建立技术支持,稳定的活动 | 定量评价新技术 | 定量评价新技术 | 尽早跟踪新技术并推广应用 |
测 | 数据收集与分析是混乱的 | 单个项目使用的计划和管理数据 | 在所有定义的过程中收集和使用数据 | 整个组织中将数据的定义和收集标准化 | 使用数据进行评价选择过程改进 |
量 | 在整个项目中系统地共享数据 | 数据被用来定量地理解和稳定过程 |
作为一个成熟的机构,首先期待的改进是可预测性;第二个改进是可控性;第三个改进是有效性。
CMM结构:
-
成熟度级别表明过程能力,包含关键过程域
-
关键过程域实现目标,划分为五个共同特性
-
共同特性解决实施或制度化,包含关键实践
-
关键实践描述活动或基础设施
关键过程域:
-
初始级,也就是第一级,没有关键过程域
-
可重复级:
-
需求管理
-
软件项目计划
-
软件项目跟踪和监督
-
软件分包合同管理
-
软件质量保证
-
软件配置管理
-
-
已定义级:
-
机构过程焦点
-
机构过程定义
-
培训大纲
-
综合软件管理
-
软件产品工程
-
组间协调
-
同行评审
-
-
已管理级:
-
定量过程管理
-
软件质量管理
-
-
优化级:
-
缺陷预防
-
技术更新管理
-
过程更改管理
-
级别2关键过程域的目标:
-
需求管理的目标是,在客户和解决客户需求的软件项目之间,建立对客户需求的共同理解。这种与客户间的一致是计划和管理软件项目的基础。
-
软件项目计划的目标是,制定实施软件工程与管理软件项目的合理的计划。
-
软件项目跟踪和监督的目标是,能够随时掌握软件项目的实际开发过程,使得当软件项目的执行活动与软件计划相背离时,管理部门能采取有效的措施。
-
软件分包合同管理的目标是,选择高质量的软件分承制方,并进行有效的管理。
-
软件质量保证的目标是,为管理者提供有关软件项目的过程和产品的适度可见性。
-
软件配置管理的目标是,保证软件项目生成的产品在软件生命周期中的完整性。
级别3关键过程域的目标:
-
机构过程焦点的目标是,为改进机构的整体软件过程能力,建立负责软件过程活动的机制。
-
机构过程定义的目标是,开发和维护一组可用的能提高项目软件过程整体效能的软件过程资源集合,并为在定量过程管理中确定有意义的数据提供基础,这些资源提供了一组稳定的准则,并通过诸如培训等机制使其制度化。
-
培训大纲的目标是,提高个人的技能和知识,使其能更有效地、更好地完成工作。
-
综合软件管理的目标是,将软件工程和管理活动结合成为密切相关、定义完整的软件过程。
-
软件产品工程的目标是,始终执行经过严格定义,并综合了所有软件工程活动的工程过程,从而高效生产出稳定的软件产品。
-
组间协调的目标是,使软件工程组与其他小组能积极协作,从而使项目能更好、更有效地满足客户需求。
-
同行评审的目标是,尽早地、有效地排除软件产品中的缺陷。
级别4关键过程域的目标:
-
定量过程管理的目标是,定量地控制软件项目的过程效能。
-
软件质量管理的目标是,定量地评价软件产品的质量,并实现具体的质量目标。
级别5关键过程域的目标:
-
缺陷预防的目标是,明确产生缺陷的原因并预防它们再次发生。
-
技术更新管理的目标是,确定新技术(如工具、方法和过程),并有序地将这些技术引入机构内。
-
构成更改管理的目标是,不断改进机构中所使用的软件工程,从而提高软件质量和生产率,缩短产品开发生命周期。
关键实践描述了对关键过程域的有效实施和制度化起最重要作用的基础设施和活动。
为了方便,用共同特性将描述关键过程域的关键实践组织起来。
共同特性是一些属性,指明一个关键过程域的执行和制度化是否有效、可重复和可持续。共有五个特性:
-
执行约定
-
执行约定描述机构为确保过程的建立和持续而必须采取的一些措施。
-
-
执行能力
-
执行能力描述了项目或机构完整地实现软件过程所必须有的先决条件。
-
-
执行活动
-
执行活动描述了执行一个关键过程域所必需的活动、任务和规程。
-
-
测量和分析
-
测量和分析描述了为确定与过程有关的状态所需的基本测量实践。
-
-
验证实现
-
验证实现描述了为确保执行的活动与已建立的过程一致所采取的步骤。
-
“定向培训”这个术语大致指传授肤浅技能或知识而不是使其成为一个专家。定向培训是指对某个专题进行概述和介绍,培训对象为监督该专题完成情况的人员以及与此相关的人员。
SEI制定的软件改进方法成为IDEAL方法。IDEAL是一个整体的框架,描述了成功的过程改进所需经历的阶段、实施的活动和所需的资源。代表着则称软件过程改进周期的5个阶段:
-
初始化(Initiating)
-
诊断(Diagnosing)
-
建立(Establishing)
-
行动(Acting)
-
推进(Leveraging)
一般有两种类型的评估:软件过程评估和软件能力评价。
-
软件过程评估用于决定机构当前软件过程的状态,决定一个机构所面临的高优先级的过程相关问题,并且获得机构对软件过程改进的支持。
-
软件能力评价用来确定合格的软件项目承制方,或用来监督在目前的软件项目中正在进行的软件过程的状态。
评估和评价的共同步骤:
-
选择估价小组
-
填写成熟度问卷
-
进行响应分析
-
现场访问、会谈和文档评审
-
提出基于CMM的调查结果清单
-
制作KPA(关键过程域)剖面图
基于CMM的估价方法:
-
使用软件过程成熟度问卷开始现场调查
-
使用CMM指导进行现场调查
-
以CMM的关键过程域的概念明确地提出过程地强弱之处,找出问题
-
获得一个基于关键过程域目标地满足分析的剖面图
-
根据调查结果清单和关键过程域剖面图,向合适的部门或单位提出结论意见
-