|
CMM能做什么
一前言
提升软件质量从来就是软件工程中的重要研究课题,但是也是至今没有满足结果的课题,因此软件质量无法保证目前依然是软件企业的难题。CMM试图从管理学的角度来解决这一问题,特别是希望控制软件的开发过程来保证软件质量。无疑这是个重大的进展。但是事实上,如果没有在理论上和技术条件的支持,软件开发过程也是难以控制的。此项研究的目标是研制适合进行软件开发过程控制的软件结构,技术,平台和管理系统,为软件企业自然地达到某一高级CMM等级提供技术,方法和管理手段。此项研究也可以看作为软件企业CMM等级进化提供的可操作的必要条件----技术条件。同时此项研究对CMM能做什么和不能做什么进行了讨论。
二CMM简介
2.1什么是CMM
CMM是英文Capability Maturity Model 的缩写,也就是能力成熟度模型,和是由美国长内梅隆大学软件工程研究所(SEI)提出的。
CMM的研究在美国政府的要求下开始于1186年,并于1991年推出CMM1.0版。
自CMM1.0提出之后引起软件专家的注意,并且引起了激烈的争论。SEI在研究了这些争论后于1999年完成了CMM2.0版。今天我们讨论的主要是CMM2.0版。
由于CMM的视点(对一个问题的着眼点)很好,使得能力成熟度短语被广泛地应用,例如:人力资源能力成熟度和系统能力工程成熟度等。
CMM是根据软件企业的管理模式对软件企业的一个评估标准,例如:某企业具有某CMM等级资质。
SEI认为CMM是企业的进化模型,但是由于CMM没有提出企业从某某CMM等级进化为更高级CMM等级进化为更高级CMM等级的方法,因此我们不认为是进化模型。
2.2为什么提出CMM
众所周知,在各种各样的工程中,软件工程是最难以控制的工程之一。因为“软件是一种逻辑系统,设计软件比设计硬件所使用的逻辑量要多10至100倍。”我们认为不仅如此,这主要是没有有效的理论和方法来建立这个逻辑系统。由于没有适合的逻辑系统,这意味着这么复杂的逻辑要由人脑来控制,而人脑对于复杂逻辑的控制能力是有限的。明显,由于要由人脑来控制复杂逻辑的一困难问题,因此对于软件工程的控制事实变为对人脑的控制,但是这是不可能。
由于上述原因,软件工程存在着如下问题:
“软件成本过高,软件开发进度难以控制,估计软件工作量困难,软件质量难以保证和修正维护软件困难”,从而“造成软件开发失败”。
为了解决这一问题,CMM认为“人们面临的不仅是技术问题,更重要的是管理问题”。
三CMM主要内容
在叙述CMM内容时,引用最多的是下图:

并且解释为:
(1)初始级-软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和步骤可循的状态,软件产品所取得的成功往往依赖极个别人的努力和机遇。
(2)可重复级-已建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。
(3)已定义级-用于管理的和工程的软件过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。全部项目均已采用与实际情况相吻合的、适当修改的标准软件过程来进行。
(4)已管理级-软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认证和控制。
(5)优化级-通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续性地对过程进行改进。
通常情况下边是有含意的,它表示节点间的关系。但是在图G中的边没有任何含意,例如:它没有给出从低级向高级进化的方法。从严格学术的观点看,这种表达是有缺点的。
返回
|