能力成熟度模型介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CMM 基础知识
We are Here!
简介及CMM 背景知识
CMM 内容框架
CMM 2级 CMM 3级 CMM 4 和5级 小结 Q&A
CMM 基础知识
CMM五个成熟度级别
一个定义良好的朝成熟软件 过程进化的平台 在每一个级别都必须满足一 定的目标 每达到一个级别,过程能力 都得到一定提高
CMM 基础知识
软件项目失败深层次原因
• 对软件的误解是问题的根源。 • 现有的方法是由那些有良好愿望但忘记了软件 中的“软”的那些聪明人所创建的。他们假定 开发软件就象造桥。 • 方法不正确。没有人打算失败,但是为使失败 最小化而使用的方法却是失败的。 • 开发人员士气不高,不主动。 • 管理人员、开发人员能力不够。 • 只重过程,不重人,没有良好的沟通。
• 技术 –CASE,UML –Object Oriented • 过程控制 –ISO9001,ISO9000-3,ISO15504,ISO12207 –CMM,TickIT 以上措施并没有真正解决软件危机 –“质量是制造出来的,不是检验出来”, 在制造业适用,在软件行业作用并不大(软 件过程不可见) –项目失败率还是很高
标准化,并综合成该机构的标准软件过程。
已管理级:收集对软件过程和产品质量的详细度量值
,对软件过程和产品都有定量的理解和控制。
优化级:过程的量化反馈和先进的新思想、新技术促
使过程不断改进。
行为特征——级别1:初始级
CMM 基础知识
做出不切实际的承诺 迟早会发生危机,危机发生时各项目就会脱 离计划好的软件开发过程,回到仅进行编码 和调试的工作状态。 软件项目的成功完全依赖于一个杰出的管理 人员或一个有经验、有战斗力的开发队伍。 能开发出起作用的产品,但往往超过预算并 落后于进度
CMM 基础知识
软件项目成功关键(续)
项目利益相关者广泛参与 – 最终用户参与 – 开发与营销紧密结合 – 高级管理者强大的支持 – 项目组内部有效沟通 向不确定性挑战 – 日常建构,关注真正的最终结果 – 立足于灵活 – 在项目前期阶段充分沟通,充分交流,鼓励 创新
CMM 基础知识
引入软件成熟度
软件危机:无法开发出符合预算和进度要求 的高可靠性和可用性软件。 提供新方法和新工具来提高软件开发效率和 质量的尝试失败,发现问题的实质在于软件 机构缺乏管理软件过程的能力。 软件工程研究所(Software Engineering Institute, SEI) 领导改进软件工程实践的当前状况,提高以 软件为主的系统的质量。 CMM由SEI提出,它描述了从混乱的、不成 熟的软件过程向成熟的、有纪律的软件过程 改进的一条途径,包含五个成熟度级别。
行为特征——级别5:优化级
CMM 基础知识
整个机构强调渐进的改进过程 软件小组能分析缺陷确定其产生原因,对软 件过程进行评估以预防已知缺陷再次产生 通过改变导致低耗的普遍原因来有组织地消 除耗费 本级别的特点:过程可以不断得到改进
CMM 基础知识
管 理 可 视 度
级 别
Fra Baidu bibliotek
5 4 3 2 1I n
行为特征——级别4:已管理级
CMM 基础知识
机构为软件产品和过程设定许多定量的质量 目标 进行生产率和质量测量 使用机构内部的软件过程数据库收集和分析 项目定义的软件过程的可用数据 用严格定义和一致的测量对软件过程进行了 监测 可概括为:定量和可预测 此时,允许机构在设定的数量范围内预测软 件过程趋势和质量
5 . 优 化 级 O p t i m i z i n g 注 过 程 改 进 持 续 改 进 过 程 关
4 . 已 管 理 级 M a n a g e d 理 变 更 可 预 测 的 过 程 过 程 被 测 量 并 受 控 管 3 . 已 定 义 级 D e f i n e d
标 准 、 一 致 的 过 程 过 程 被 描 述 , 并 得 到 良产 品 和 过 程 质 量 好 理 解 2 . 可 重 复 级 R e p e a t a b l e 有 纪 律 的 过 程 可 重 复 以 前 的 主 要 经 验 1 . 初 始 级 I n i t i a l 不 可 预 测 并 且 缺 乏 控 制项 目 管 理
CMM 基础知识
全面质量管理和CMM
CMM是全面质量管理(TQM)中的过程管理概念在软件方面 的应用。TQM的目标为满足现在的和将来的客户需要。
机构 项目A 项目B 系统 硬件 软件 CMM 项目C TQM 项目X
TQM对软件的应用
CMM 基础知识
CMM
• 是一个评估模型,评价当前过程的成熟 度,发现关键因素 • 是一个成功之路,来对组织的软件过程 控制、改进提供指南 • 是一个经验大成 • 是TQM应用于软件工业 • 是对机构软件开发能力的评价,类似于 各种认证考试
CMM 基础知识
CMM理论基础
过程决定质量!
CMM 基础知识
CMM的目的
• 避免软件产品开发的随意性 • 将其从艺术性、创造性的活动转变为规范化、 可重复的软件开发工艺过程,不是每个人都是 艺术家 • 可类比传统产品的制造:生产线上的工人按照 规程操作就可以生产出合格的产品。同理,软 件开发人员按规程编程,就可以开发出合格的 软件产品。
CMM 基础知识
软件项目成功关键
人员方面 –在人力资源管理方面的强大投入,有优秀的员工才 会有优秀的企业。 –发展高素质的项目管理人员,让软件项目管理人员 具有专业的技能。 –发展并把握顶尖技术人才,一个有才华的软件开发 者的创造性可以是一个普通者的十倍。 –软件开发项目应该配备有创造力的人员。最好是找 到一个有创造力的程序员,而不是指望某一个程序 员会变得有创造力。 –可以让程序员发挥他们的专长:编写代码。 –建立合理的组织结构。
集 成 工 程 过 程
CMM五个成熟度级别(续)
的,成功往往依赖于个人或小组的努力。
CMM 基础知识
初始级:无序甚至混乱,没什么过程是结果妥善定义
可重复级:建立了基本管理过程来跟踪成本、进度和
功能特性,制定了必要的过程纪律,能重复早先类似项 目取得的成功。
已定义级:已将管理和工程活动的软件过程文档化、
CMM 基础知识
软件开发的本质
• 软件开发的本质就是基于人类思考的一种 心智活动 • 计算机及运行其上的软件就是人类大脑活 动的一面镜子 • 软件与心理学的关系要比工程学、技术及 数学的关系要近的多 • 软件永久只能是软件开发人员的心理模仿 ,程序员永远也不可能让计算机做出超过 他自己想像力的事 • 需求具有不确定性,是逐步澄清的
CMM 基础知识
能力成熟度模型
( Capability Maturity Model )
Principle
CMM 基础知识
Agenda
简介和CMM背景知识
CMM 框架 CMM 2级 CMM 3级 CMM 4级5级 小结 Q&A
CMM 基础知识
Introduction
CMM的背景、概念、结构和应用 软件过程成熟度框架 能力成熟度模型的结构和相关说明 CMM的关键过程域
CMM 基础知识
将机构用于开发和维护软件的标准过程文档 化。 机构建立的过程能帮助软件管理人员和全体 技术人员更有效地实施活动。 在机构内,要指定一个负责机构过程活动的 小组,在机构内部要实施培训,保证全体人 员具备所需的知识和技能。 此级别的过程能力可概况为标准化的和一致 的,无论是软件工程活动还是管理活动,过 程度是稳定的、可重复的。
外人看软件开发过程
CMM 基础知识
Customer
Coder
“Build me Software for my Widget”
Then a Miracle Happens
Done.
这种过程可能会有什么问题?
CMM 基础知识
初学者看软件开发过程
FIGURE IT OUT. CODE IT.
SEE IF IT WORKS.
O u t
CMM 基础知识
Process Maturity Benefits
Level
Optimizing 过程特点 过程改进已经制度化 Predicted Performance
Probability
5
Time / $
Managed
4
Time / $
Defined
Software engineering and management processes defined and integrated Project management System in place; performance is repeatable Process is informal and ad-hoc; performance is unpredictable
Probability
Target
Product and process are quantitatively controlled
Probability
Target
3
Time / $
Probability
Target
Target Target
Repeatable
2
Time / $
Probability
行为特征——级别2:可重复级
CMM 基础知识
软件开发机构对软件项目制定了基本的软件 管理和控制措施。 对新项目的计划和管理基于类似工程项目 针对具体项目,通过建立基本的过程管理纪 律来提高过程能力 可概况为有纪律的,因为软件项目的跟踪和 计划是稳定的,并能够重复以前的成功。
行为特征——级别3:已定义级
不成熟的和成熟的软件机构对比
不成熟的软件机构: • 软件过程:由具体工作人员及 其管理人员临时组成 • 被动,常常强调解决燃眉之急 • 常常超出进度计划和经费预算 • 缺少评判产品质量或解决产品 或过程问题的客观基础 • 在正式提交之前,客户基本上 不了解产品 成熟的软件机构: • 具有在机构范围内管理软件开发 和维护过程的能力,所管理的过 程已形成文档,可使用,必要时 可修改过程定义 • 管理人员监督软件产品的质量以 及生产这些产品的过程 • 在分析软件产品的质量和开发过 程方面有客观而定量的依据 • 进度计划和预算基于以前的效能 数据,是非常实际的 • 成本、进度要求、产品功能与质 量能达到预期要求 • 整个机构广泛、积极地参与改进 活动,有相应的基础实施支持各 软件过程
CMM 基础知识
软件过程成熟度涉及的基本概念
CMM强调的是软件过程 能一致地、可预测地 生产高质量软件产品 的能力。 过程:为了达到给定目 标所实施的一系列步 骤。过程把人、工具 和规程集成在一起。 如下图所示:
有技能、受过 训练的、有积 极性的人员
定义任务间关联关 系的规程和方法
过程
工具和设备
CMM 基础知识
Initial
1
Time / $
CMM的结构
成熟度级别 表明 过程能力 实现 目标 解决 实施或制度化 描述 活动或基础设施 包含 关键过程域 划分为 共同特性 包含
CMM 基础知识
软件项目失败原因
• 客户需求不确定 • 最终产品的设计和特色只有在过程中才能变得 清晰,而不是开始时 • 很难制定准确的计划 • 估计不够,低估需要的时间和成本 • 来自营销、客户和管理者的压力 • 沟通失败是项目失败的最大的威胁 • 软件过程不可见
CMM 基础知识
软件开发的探索
需求、设计薄弱,测试被挤
CMM 基础知识
不成熟组织软件项目的结果
• 缺乏既定过程,开发团队角色没有定义,没有 协调,重复工作,管理混乱 • 管理者/用户对过程和产品质量缺乏洞察力, 过程和产品质量不透明 • 质量低劣 • 延期或者失败 • 软件成本超出预算 • 不按要求工作给自己和客户带来麻烦
CMM 基础知识
软件过程成熟度涉及的基本概念(续)
软件过程:开发和维护软件及相关产品(如项目计划、 设计文档、代码、测试用例和用户手册等)的一套行 为、方法、实践及变换过程。 软件过程能力:描述了遵循某软件过程可能达到的预期 结果的范围。它为机构承担下一个软件项目时可能达 到的最大期望结果提供了预测手段。 软件过程效能:对遵循一个过程所达到的实践结果的一 种度量。它关注实际结果,而软件过程能力关注预期 结果。 软件过程成熟度:针对具体的软件过程进行目前定义、 管理、测量、控制以及有效的程度。他表明软件工程 能力增长的潜力。