CMM是Capability Maturity Model for Software (軟件能力成熟度模型)的英文簡稱,是由專業組織--美國卡內基-梅隆大學的軟件工程研究所(SEI)開發的軟件成熟度模型,是目前國際上最流行、最實用的軟件生產過程標準和軟件企業成熟度等級認證標準。
CMM的核心是把軟件開發視為一個過程,并根據這一原則對軟件開發和維護進行過程監控和研究,以使其更加科學化、標準化,使企業能夠更好的實現商業目標。它側重于軟件過程開發的管理及軟件工程能力的改進與評估,因此CMM被用作評價軟件承包商的能力并幫助組織改善軟件過程質量,協助軟件開發機構建立嚴格、標準的軟件開發過程,最及時、高效地組織軟件開發隊伍進行軟件開發,所以CMM成為當今企業從事規模軟件生產不可缺少的一項內容。
在形式上,CMM把軟件開發機構按照不同開發水平劃分為5個級別:Initial(初始化)、Repeatable(可重復)、 Defined(已定義 )、Managed(已管理)和 Optimizing(優化中)。
Initial級:軟件過程沒有任何標準和規章,完全是手工作坊的方式,軟件產品的質量具有不可預測性。
Repeatable級:軟件制作已基本形成固定過程,并引入了簡單的過程管理。軟件企業可依據一定的標準重復利用類似的軟件產品,以前的開發經驗成為開發新產品能否成功的極為重要制約因素。
Defined級:軟件產品開發和維護的基本過程被記錄下來成為文檔,軟件工程和過程管理也緊密的結合起來,形成了"標準軟件過程"。
Managed級:針對軟件過程的每一個階段都進行了監控、取樣和定量分析,形成了一個關于軟件制作和維護流程的數據庫并不斷更新,以保證軟件過程保持較高的質量。
Optimizing級:整個軟件開發機構的重心轉移到優化軟件過程;Managed級取得的關于軟件過程的數據,軟件開發機構進行成本收益綜合分析,明確軟件開發中出現的問題和錯誤,并找到方法杜絕錯誤的再次發生。
CMM提供了一個框架,將軟件過程改進的進化步驟組織成以上5個成熟等級,為過程不斷改進奠定了循序漸進的基礎。這5個成熟度等級定義了一個有序的尺度,用來測量一個組織的軟件過程成熟和評價其軟件過程能力,這些等級還能幫助組織自己對其改進工作排出優先次序。每一個級別包含若干關鍵域,評估師為申請企業做評估主要考察這些關鍵域及其實踐的執行情況。 |