CMM综述

CMM简介
CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。

CMM是是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。

CMM是由美国卡内基梅隆大学软件工程研究所1987年研制成功的,是目前国际上最流行最实用的软件生产过程标准和软件企业成熟度等级认证标准。

CMM模型划分为5个级别,共计18个关键过程域,52个目标,300多个关键实践。每一个CMM等级的评估周期(从准备到完成)约需12-30个月。
联想公司在CMM评估中,公司专门组成了由十个人组成的过程改进的小组,实施时间持续了一年多。从公司所花的费用来看,十个人的工资+请评估专家+动用公司的其他资源,肯定超过了几百万。

能力等级 特点 关键过程
第一级 基本级 软件过程是混乱无序的,对过程几乎没有定义,成功依靠的是个人的才能和经验,管理方式属于反应式。
第二级 重复级 建立了基本的项目管理来跟踪进度.费用和功能特征,制定了必要的项目管理,能够利用以前类似的项目应用取得成功 需求管理,项目计划,项目跟踪和监控,软件子合同管理,软件配置管理,软件质量保障
第三级 确定级 已经将软件管理和过程文档化,标准化,同时综合成该组织的标准软件过程,所有的软件开发都使用该标准软件过程 组织过程定义,组织过程焦点,培训大纲,软机集成管理,软件产品工程,组织协调,专家审评
第四级 管理级 收集软件过程和产品质量的详细度量,对软件过程和产品质量有定量的理解和控制 定量的软件过程管理和产品质量管理
第五级 优化级 软件过程的量化反馈和新的思想和技术促进过程的不断改进 缺陷预防,过程变更管理和技术变更管理

CMM/PSP/TSP
由于CMM并未提供有关实现CMM关键过程域所需的具体知识和技能,因此,美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI) 以W.S.Humphrey为首主持研究与开发了个体软件过程PSP(Personal software process)和群组软件过程TSP(Team Software Process),形成CMM/PSP/TSP体系。

PSP 个体软件过程(Personal Software Process)是由美国Carnegie Mellon大学软件工程研究所(CMU/SEI)的Watts s. Humphrey领导开发的,于1995年它的推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。 PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段, PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。PSP保障软件产品质量的一个重要途径是提高设计质量。

PSP能够说明个体软件过程的原则;帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。

TSP群组软件过程TSP(Team Software Process)指导项目组中的成员如何有效地规划和管理所面临的项目开发任务,并且告诉管理人员如何指导软件开发队伍。始终以最佳状态来完成工作。TSP实施集体管理与自己管理自己相结合的原则,最终目的在于指导开发人员如何在最少的时间内,以预定的费用生产出高质量的软件产品,所采用的方法是对群组开发过程的定义、度量和改进。

TSP致力于开发高质量的产品,建立、管理和授权项目小组,并且指导他们如何在满足计划费用的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。

CMM是过程改善的第一步,它提供了评价组织的能力、识别优先改善需求和追踪改善进展的管理方式。企业只有开始CMM改善后,才能接受需要规划的事实,认识到质量的重要性,才能注重对员工经常进行培训,合理分配项目人员,并且建立起有效的项目小组。然而,它实现的成功与否与组织内部有关人员的积极参加和创造性活动密不可分。

PSP能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和追踪个人的表现,管理自身的软件过程和产品质量。经过PSP学习和实践的正规训练,软件工程师们能够在他们参与的项目工作之中充分运用PSP,从而有助于CMM目标的实现。

TSP结合了CMM的管理方法和PSP的工程技能,通过告诉软件工程师如何将个体过程结合进小组软件过程,并将后者与 组织进而整个管理系统相联系;通过告诉管理层如何支持和授权项目小组,坚持高质量的工作,并且依据数据进行项 目的管理,向组织展示如何应用CMM的原则和PSP的技能去生产高质量的产品。

总之,单纯实施CMM,永远不能真正做到能力成熟度的升级,只有将实施CMM与实施PSP和TSP有机地结合起来,才能发挥最大的效力。因此,软件过程框架应该是CMM/PSP/TSP的有机集成。

ISO/CMM
ISO 9000族国际标准是在总结了英国的国家标准基础之上产生的,因此,欧洲通过ISO 9000认证的企业数量最多,约占全世界的一半以上。受此影响,相当多的欧洲软件企业选择了ISO 9001或TickIT****(ISO 9001)认证。

CMM是由美国卡内基-梅隆大学的软件工程研究所(SEI)开发的软件成熟度模型,美国的软件企业更多的选择取得CMM等级证书。在形式上,CMM分为5个等级(第1级级别最低,第5级级别最高),与ISO 9000审核后只有“通过”和“不通过”两个结论相比,CMM是一个动态的过程,企业在取得低级别证书后,可根据高级别的要求确定下一步改进的方向。
表面上看,获得ISO 9001标准的企业应有CMM第3至第4级的水平,但事实上,有些获得CMM第1级的企业也获得了ISO 9001证书。

ISO 9001标准只是质量管理体系的最低可接受准则,不能说已满足CMM的大部分要求。有一点可以肯定,ISO 9001认证合格的企业至少能满足CMM第2级的大部分要求以及第3级的一部分要求。

取得CMM第2级(或第3级)不能笼统的谈可以满足ISO 9001的要求,CMM 第2级的所有关键过程都涉及ISO 9001的要求,但都低于 ISO 9001的要求。另外,一些CMM第1级的组织在满足了第2级和第3级的一些关键过程的要求后,也可以获得ISO 9001认证证书。

一些CMM第2级或第3级的企业可能被认为符合ISO 9001的要求,但是,甚至一些第3级企业也需另外满足ISO 9001的要素4.15的搬运和交付要求以及补充对市售软件和可复用软件的控制。

CMMI
CMMI全称是Capability Maturity Model Integration, 即软件能力成熟度模型集成模型,是由美国国防部与卡内基-梅隆大学和美国国防工业协会共同开发和研制的。CMMI是一套融合多学科的、可扩充的产品集合, 其研制的初步动机是为了利用两个或多个单一学科的模型实现一个组织的集成化过程改进。CMMI可以解决现有不同CMM模型的重复性、复杂性,并减少由此引 起的成本、缩短改进过程,它将软件CMM2.0版草案(SW-CWW)、EIA过渡标准731(系统工程CMM)及IPD-CMM集成为一体,同时还与 ISO15504相兼容。

CMMI/IOS9001对比
CMMI大体包含了ISO9001的一些要素,ISO9001也包括了一些CMMI的内容,二者有一定的重叠。企业实施CMMI与ISO9001的做法是相同的:都是要按照标准的要求编写流程文件;都是按照流程文件进行操作。

ISO9001:建立企业运行的完整的质量管理体系,适用于各个行业。

CMMI:是专门为软件开发而形成的改进模型,所以特别适用于软件企业和系统集成企业。

ISO9001:包含了全公司主要的业务运行各个环节(除了财务、人事、IT、行政),侧重于质量管理体系的运行和持续改进,通过管理水平的提高,最终达到提高产品质量的目的。

CMMI:包含的是软件生命周期或系统集成的管理活动,侧重于软件产品开发过程或系统集成的持续改进。

ISO9001:第三方的认证活动,认证机构发证书并每年进行监督审核,公司内部要有内审、管理评审、纠正预防措施等管理活动。

CMMI:企业自己的改进活动,评估后可以由主任评估师签字,没有外部的后续监督活动,没有类似内审、管理评审、纠正预防措施等管理活动。

附参考
http://www.uml.org.cn/cmm/200606062.htm
http://www.itisedu.com/phrase/200603051508215.html
http://www.itcups.com/Articals/Artical_53678.html

此条目发表在arch/management分类目录,贴了标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据