CMM是Capability Maturity Model的縮寫形式,是美國國防部委托CMU-SEI(卡耐基梅隆大學的軟件工程協(xié)會)開發(fā)的一套標準,用以對軟件承包商的開發(fā)能力進行評估。
美國防部因外包項目而造成的損失以億美元為單位計,而CMM的實施則極大的提高了其外包項目的開發(fā)管理水平。后來,很多軟件開發(fā)商發(fā)現(xiàn)CMM可用來改進軟件開發(fā)管理過程,CMM因此得以推廣,進而在全球范圍內(nèi)流行。對于CMM,國內(nèi)所宣揚的其實只是CMM家族的一個標準SW-CMM,也就是軟件能力成熟度模型,其它的還有SE-CMM、IPPD-CMM、P-CMM等。隨著在過程改進方面的應用,CMM逐漸暴露出了很多缺點(畢竟過程改進不是CMM的初衷),而且CMM家族各標準之間也不太兼容,在90年代末,SEI組織開發(fā)了CMMI(Capability Maturity Model Integration),其目的是在過程改進方面提供更好的支持,其中Integration的用意是解決現(xiàn)有不同CMM模型的重復性、復雜性問題,并對CMM家族標準進行統(tǒng)一。CMMI將軟件CMM2.0版草案C(SW-CMM)、EIA過渡標準731(SE-CMM)及IPD-CMM集成為一體,同時,還與ISO15504相兼容。從內(nèi)容組織上看,CMMI更適合有志于改進過程的企業(yè)根據(jù)自身情況定制改進方案。SEI在2001年12月發(fā)布CMMI 1.1版本的同時,也正式宣布:自2006年起將只支持CMMI。
CMMI模型由一系列的PA(過程域)組成,這些PA構成了集成能力模型的核心,為企業(yè)提供了軟件工程、系統(tǒng)工程、集成產(chǎn)品及過程開發(fā)方面的過程改進框架和指南。CMMI模型有階段式和連續(xù)式兩種表示方法,用以滿足不同的過程改進需求,企業(yè)可以根據(jù)商業(yè)目標對其進行剪裁和選擇使用,滿足自身的過程改進需求。在CMMI中,軟件組織可以按照兩中模型改進自己的軟件開發(fā)過程——連續(xù)的和階段性的模型
CMMI是以3個基本成熟度模型為基礎綜合生成的,分別是面向軟件開發(fā)的SW-CMM ( Software-CMM ) 、面向系統(tǒng)工程的SE-CMM ( System Engineering-CMM ) 以及面向并行工程的IPD-CMM (Integrated Product Development-CMM ) ?;谄髽I(yè)會將系統(tǒng)或產(chǎn)品的某些部分采用外購或協(xié)同開發(fā)模式進行的考慮,SEI又將外購成熟度模型SA-CMM ( Supplier Sourcing-CMM ) 作為CMMI的第4個模型源。這4個模型源詳細表述如下:
一、軟件工程 ( SW-CMM ):軟件工程的對象是軟件系統(tǒng)的開發(fā)活動,要求實現(xiàn)軟件開發(fā)、運行、維護活動系統(tǒng)化、制度化、量化。
二、系統(tǒng)工程 ( SE-CMM ):系統(tǒng)工程的對象是完整系統(tǒng)的開發(fā)活動,可能包括也可能不包括軟件。系統(tǒng)工程的核心是將客戶的需求、期望和約束條件轉化為產(chǎn)品解決方案,并對解決方案的實現(xiàn)提供全程的支持。
三、并行工程 ( IPD-CMM ):集成產(chǎn)品開發(fā)是指在產(chǎn)品生命周期中,通過所有相關人員的通力合,采用系統(tǒng)化的進程來更好地滿足客戶的需求、期望和要求。如果項目或企業(yè)選擇IPD進程,則需要選用模型中的有與IPD相關的實踐。
四、外購工程 ( SS-CMM ):外購協(xié)作過程適用于那些供應商的行為對項目的成功與否起到關鍵作用的項目。主要內(nèi)容包括:識別并評價產(chǎn)品的潛在來源、確定需要采購的產(chǎn)品的目標供應商、監(jiān)控并分析供應商的實施過程、評價供應商提供的工作產(chǎn)品以及對供應協(xié)議和供應關系進行適當?shù)恼{(diào)整。