提升软件质量从来就是软件工程中的重要研究课题,但是也是至今没有满足结果的课题,因此东软件质量无法保证目前依然是软件企业的难题。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认为人们面临的不仅是技术问题,更重要的是管理问题。
文章来源于领测软件测试网 https://www.ltesting.net/