|
2.4.1 CMM概述
随着软件技术的发展,软件系统的复杂性和人们对软件系统的要求越来越高,原有的软件系统开发方法远远不能适合这种发展,成本高、交付迟和质量差成为突出的问题。20多年来,新的开发方法和技术也没有满足软件生产率与质量的期望,于是,产生了这样的看法:"软件发展的主要问题是管理问题,而不是技术问题。"美国国防部要求美国卡内基梅隆(Carnegie
Mellon)大学的软件工程研究所(Software Engineering Institute,SEI),研究如何评估软件开发组织有无能力来承接相应的软件项目。
软件能力成熟度模型(Capability Maturity Model For Software,SW-CMM,也简称为CMM)是由CMU的SEI研究提出的,其目的是帮助软件企业进行对软件工程过程的管理和改进,增强开发与制造能力,从而能按时地、不超预算地制造出高质量的软件。目前,CMM是国际上最流行、最实用的一种软件生产过程标准,已经得到了众多国家软件产业界的认可,成为当今企业从事规模软件生产不可缺少的一项内容。
CMM提供了一个软件过程改进框架,根据这个框架开发企业内部具体的软件过程,可以极大程度地提高按计划的时间和成本提交有质量保证的软件产品的能力。CMM以具体实践为基础,以逐步演进的框架形式不断地完善软件开发和维护过程,CMM描述了一个有效的软件过程的各个关键元素,指出了一个软件企业如何摆脱杂乱无意、不成熟的软件过程,形成一个有序的、成熟的软件过程所必经的进货、提高的途径。CMM所列举的实践几乎覆盖了软件工程过程的所有活动,并规划出五个成熟级别,企业只要把精力集中放在这些实践活动上,就能保证平稳地提高自身的软件过程和向客户交付令其满意的产品。
CMM的管理思想基础
CMM的基本思想是基于已有60多年历史的产品质量原理。希袄特(Walter Shewart)在30年代发表了统计质量控制原理,戴明(W
Ewards Deming)和朱兰(Joseph Juran)的关于质量的著作又进一步发展和论证了该原理。将质量原理变为成熟度框架的思想是克劳斯比(Philip
Crosby),是在其著作"Quality is Free"中首先提出的。他的质量管理成熟度网络描绘了采用质量实践时的5个进化阶段,而该框架后来又由IBM的拉迪斯(Rom
Radice)和他的同事们在汉弗莱(Watts Humphrey)指导下进一步改进以适应软件过程的需要。1986年,汉弗苹将此成熟框架带到了SEI并增加了成熟度等级的概念,将这些原理应用于软件开发,发展成为软件过程成熟度框架,形成了当前软件产业界正在使用的框架。
CMM的发展过程
1986 年11月,SEI应美国联邦政府的要求,在Mitre 公司的帮助下,着手进行一项研究,这项研究的最初目的是向美国政府提供一种针对软件承包商能力的评估方法。
经过将近一年的努力,1987 年9月,SEI 发布了其研究成果,其中包括一个过程成熟度框架(Process Maturity Framework)的概要描述和一个软件成熟度问卷(Maturity
Questionnaire)。作为其研究成果的实际应用,评估是一方面,另一方面就是可以用来确定软件组织的过程薄弱点,从而可以帮助软件组织在过程改进时"有的放矢"。最初的过程成熟度框架和成熟度问卷经过四年的实际应用,SEI
根据其评估工作中的所得以及来自政府和企业的反馈,在1991 年,SEI 将过程成熟度框架发展为软件能力成熟度模型CMM1.0 版本,以更好的对软件组织的过程改进工作提供指导。
1991 年到1992 年期间,CMM1.0 版本被软件界广泛的使用。1992年4月,大约200 名软件专家组织了一次CMM研讨会。在这些不断的反馈下,1993年,CMM1.0
发展成CMM1.1版本。从1995年,即CMM1.1发布后的第3年起,CMM又进入了另一个修改的高峰期。美国政府和软件业界大力支持和积极参与下,SEI先后发表了CMM
2.0版的A版、B版和C版草案;1997年,应美国国防部之请,CMM 2.0(C)版草案停止推进。SEI宣布,CMM1.1版和CMM2.0版的草案都有效,并且SEI及其授权的机构为这两种版本提供相应的服务。
自CMM1.1发布起,为与之配合,在以后几年里SEI相继研制并发布了"人员能力成熟度模型(P-CMM)","软件采办能力成熟度模型(SA-CMM)"和"系统工程能力成熟度模型(SE-CMM)"及其支持文件。经过试运行,产生了把SW-CMM、P-CMM、SA-CMM和SE-CMM合并在一起的想法和行动,于是开始了上述的CMMI研制工作。
CMMI(Capability Maturity Model Integration)是美国国防部的一个设想,他们希望把所有现存的与将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架用于解决两个问题:第一,软件获取办法的改革;第二,建立一种从集成产品与过程发展的角度出发、以及包含健全的系统开发原则的过程改进。
目前,SEI将与 ISO合作,互相促进以便把软件评估、改进和能力评价建立为一个国际标准,它们之间将相互影响以达到更好的目的。
|