什么是能力成熟度模型 (Capability Maturity Model)CMM是指“能力成熟度模型”,是對于軟件組織在定義、實施、度量、控制和改善其軟件過程的實踐中各個發(fā)展階段的描述。CMM的核心是把軟件開發(fā)視為一個過程,并根據(jù)這一原則對軟件開發(fā)和維護進行過程監(jiān)控和研究,以使其更加科學化、標準化、使企業(yè)能夠更好地實現(xiàn)商業(yè)目標。
CMM是一種用于評價軟件承包能力并幫助其改善軟件質量的方法,側重于軟件開發(fā)過程的管理及工程能力的提高與評估。CMM分為五個等級:一級為初始級,二級為可重復級,三級為已定義級,四級為已管理級,五級為優(yōu)化級。
其所依據(jù)的想法是:只要集中精力持續(xù)努力去建立有效的軟件工程過程的基礎結構,不斷進行管理的實踐和過程的改進,就可以克服軟件生產中的困難。CMM它是目前國際上最流行、最實用的一種軟件生產過程標準,已經(jīng)得到了眾多國家以及國際軟件產業(yè)界的認可,成為當今企業(yè)從事規(guī)模軟件生產不可缺少的一項內容。
CMM為軟件企業(yè)的過程能力提供了一個階梯式的改進框架,它基于過去所有軟件工程過程改進的成果,吸取了以往軟件工程的經(jīng)驗教訓,提供了一個基于過程改進的框架;它指明了一個軟件組織在軟件開發(fā)方面需要管理哪些主要工作、這些工作之間的關系、以及以怎樣的先后次序,一步一步的做好這些工作而使軟件組織走向成熟。
能力成熟度模型的歷史和發(fā)展
信息時代,軟件質量的重要性越來越為人們所認識。軟件是產品、是裝備、是工具,其質量使得顧客滿意,是產品市場開拓、事業(yè)得以發(fā)展的關鍵。而軟件工程領域在1992年至1997年取得了前所未有的進展,其成果超過軟件工程領域過去15年來的成就總和。
軟件管理工程引起廣泛注意源于20世紀70年代中期。當時美國國防部曾立題專門研究軟件項目做不好的原因,發(fā)現(xiàn)70%的項目是因為管理不善而引起,而并不是因為技術實力不夠,進而得出一個結論,即管理是影響軟件研發(fā)項目全局的因素,而技術只影響局部。到了20世紀90年代中期,軟件管理工程不善的問題仍然存在,大約只有10%的項目能夠在預定的費用和進度下交付。軟件項目失敗的主要原因有:需求定義不明確;缺乏一個好的軟件開發(fā)過程;沒有一個統(tǒng)一領導的產品研發(fā)小組;子合同管理不嚴格;沒有經(jīng)常注意改善軟件過程;對軟件構架很不重視;軟件界面定義不善且缺乏合適的控制;軟件升級暴露了硬件的缺點;關心創(chuàng)新而不關心費用和風險;軍用標準太少且不夠完善等等。在關系到軟件項目成功與否的眾多因素中,軟件度量、工作量估計、項目規(guī)劃、進展控制、需求變化和風險管理等都是與工程管理直接相關的因素。由此可見,軟件管理工程的意義至關重要。
1987年,美國卡內基. 梅隆大學軟件研究所(SEI)受美國國防部的委托,率先在軟件行業(yè)從軟件過程能力的角度提出了軟件過程成熟度模型(CMM),隨后在全世界推廣實施的一種軟件評估標準,用于評價軟件承包能力并幫助其改善軟件質量的方法。它主要用于軟件開發(fā)過程和軟件開發(fā)能力的評價和改進。它側重于軟件開發(fā)過程的管理及工程能力的提高與評估。CMM自1987年開始實施認證,現(xiàn)已成為軟件業(yè)最權威的評估認證體系。CMM包括5個等級,共計18個過程域,52個目標,300多個關鍵實踐