CMM(Capability Maturity Model)是卡耐基梅隆大學軟件工程研究院(SEL,Software Engineering Institute)受美國國防部委托制定的軟件過程改良、評估模型,也稱為SEL SW-CMM,(SoftwareEngineering Institute SoftWare--Capability Maturity Model)。該模型于1991年發布,目前修改至1.1版,并發展為系列標準模型。全世界已經有1萬多家軟件企業經過CMM認證。SEL預計發布的下一個版本是CMMI。
CMM的核心是把軟件開發視為一個過程,并根據這一原則對軟件開發和維護進行過程監控和研究,以使其更科學化,標準化。是企業能夠更好的實現商業目標。因此,CMM可以作為企業軟件過程改良的參照標準(Checklist),協助軟件開發機構建立嚴格、標準的軟件開發過程,最及時、高效的組織軟件開發隊伍進行軟件開發。
由于CMM是為美國國防部制訂的,所以這一標準比國際上質量認證的其他一些標準,如ISO9000系列要復雜許多。CMM把軟件開發機構按照不同開發水平劃分為5個級別:Initial(初始化)、Repeatable(可重復)、Defined(已定義)、Managed(已管理)和Optimizing(優化中)。
Initial級,軟件過程沒有任何標準和規章,完全是手工作坊的方式,軟件產品的質量具有不可預測性。
Repeatable級,軟件制作已基本形成固定過程,并引入了簡單的過程管理。軟件企業可依據一定的標準重復利用類似的軟件產品,以前的開發經驗成為開發新產品能否成功的極為重要制約因素。
Defined級,軟件產品開發和維護的基本過程被記錄下來成為文檔,軟件工程和過程管理也緊密的結合起來,形成了"標準軟件過程"。
Managed級,針對軟件過程的每一個階段都進行了監控、取樣和定量分析,形成了一個關于軟件制作和維護流程的數據庫并不斷更新,以保證軟件過程保持較高的質量。
Optimizing級,整個軟件開發機構的重心轉移到優化軟件過程。基于Managed級取得的關于軟件過程的數據,軟件開發機構進行成本收益綜合分析,明確軟件開發中出現的問題和錯誤,并找到方法杜絕錯誤的再次發生。