什么是CMM?
CMM是由美國卡內基梅隆大學(xué)的軟件工程研究所(SEI)創(chuàng )立的CMM(Capability Maturity Model 軟件能力成熟度模型)認證評估,在過(guò)去的十幾年中,對全球的軟件產(chǎn)業(yè)產(chǎn)生了非常深遠的影響。
CMM是目前世界公認的軟件產(chǎn)品進(jìn)入國際市場(chǎng)的通行證,它不僅僅是對產(chǎn)品質(zhì)量的認證,更是一種軟件過(guò)程改善的途徑。軟件開(kāi)發(fā)企業(yè)通過(guò)CMM的評估認證不僅僅是目標,它是推動(dòng)軟件企業(yè)在產(chǎn)品的研發(fā)、生產(chǎn)、服務(wù)和管理上不斷成熟和進(jìn)步的手段,是一種持續提升和完善企業(yè)自身能力的過(guò)程。
CMM分幾個(gè)等級?
CMM共有五個(gè)等級,分別標志著(zhù)軟件企業(yè)能力成熟度的五個(gè)層次。從低到高,軟件開(kāi)發(fā)生產(chǎn)計劃精度逐級升高,單位工程生產(chǎn)周期逐級縮短,單位工程成本逐級降低。據SEI統計,通過(guò)評估的軟件公司對項目的估計與控制能力約提升40%到50%;生產(chǎn)率提高10%到20%,軟件產(chǎn)品出錯率下降超過(guò)1/3。
對一個(gè)軟件企業(yè)來(lái)說(shuō),達到CMM2就基本上進(jìn)入了規模開(kāi)發(fā),基本具備了一個(gè)現代化軟件企業(yè)的基本架構和方法,具備了承接外包項目的能力。CMM3評估則需要對大軟件集成的把握,包括整體架構的整合。一般來(lái)說(shuō),通過(guò)CMM認證的級別越高,其越容易獲得用戶(hù)的信任,在國內、國際市場(chǎng)上的競爭力也就越強。因此,是否能夠通過(guò)CMM認證也成為國際上衡量軟件企業(yè)工程開(kāi)發(fā)能力的一個(gè)重要標志。
CMM的五個(gè)等級
◆ CMM 1--初始級
軟件過(guò)程是無(wú)序的,有時(shí)甚至是混亂的,對過(guò)程幾乎沒(méi)有定義,成功取決于個(gè)人努力。管理是反應式的。
◆ CMM 2--已管理級
建立了基本的項目管理過(guò)程來(lái)跟蹤費用、進(jìn)度和功能特性。制定了必要的過(guò)程紀律,能重復早先類(lèi)似應用項目取得的成功經(jīng)驗。
◆ CMM 3--已定義級
已將軟件管理和工程兩方面的過(guò)程文檔化、標準化,并綜合成該組織的標準軟件過(guò)程。所有項目均使用經(jīng)批準、剪裁的標準軟件過(guò)程來(lái)開(kāi)發(fā)和維護軟件,軟件產(chǎn)品的生產(chǎn)在整個(gè)軟件過(guò)程是可見(jiàn)的。
◆ CMM 4--量化管理級
分析對軟件過(guò)程和產(chǎn)品質(zhì)量的詳細度量數據,對軟件過(guò)程和產(chǎn)品都有定量的理解與控制。管理有一個(gè)作出結論的客觀(guān)依據,管理能夠在定量的范圍內預測性能。
◆ CMM 5--優(yōu)化管理級
過(guò)程的量化反饋和先進(jìn)的新思想、新技術(shù)促使過(guò)程持續不斷改進(jìn)。
什么是CMMI?
CMMI(Capability Maturity Model Integration)即能力成熟度集成模型,起初是美國國防部的一個(gè)設想,由工業(yè)界、美國政府和卡內基?梅隆大學(xué)軟件工程研究所率先倡導。他們想把現在所有的以及將被發(fā)展出來(lái)的各種能力成熟度模型,集成到一個(gè)框架中去。這個(gè)框架有兩個(gè)功能,第一,軟件采購方法的改革;第二,建立一種從集成產(chǎn)品與過(guò)程發(fā)展的角度出發(fā)、包含健全的系統開(kāi)發(fā)原則的過(guò)程改進(jìn)。
就軟件而言,CMMI是SW-CMM的修訂本。它兼收了SW-CMM 2.0版C稿草案和SPA中更合理、更科學(xué)和更周密的優(yōu)點(diǎn)。
CMMI項目更為工業(yè)界和政府部門(mén)提供了一個(gè)集成的產(chǎn)品集,其主要目的是消除不同模型之間的不一致和重復,降低基于模型改善的成本。CMMI將以更加系統和一致的框架來(lái)指導組織改善軟件過(guò)程,提高產(chǎn)品和服務(wù)的開(kāi)發(fā)、獲取和維護能力。
CMMI項目致力于幫助企業(yè)緩解這種困境。CMMI為改進(jìn)一個(gè)組織的各種過(guò)程提供了一個(gè)單一的集成化框架,新的集成模型框架消除了各個(gè)模型的不一致性,減少了模型間的重復,增加透明度和理解,建立了一個(gè)自動(dòng)的、可擴展的框架。因而能夠重總體上改進(jìn)組織的質(zhì)量和效率。CMMI主要關(guān)注點(diǎn)就是成本效益、明確重點(diǎn)、過(guò)程集中和靈活性四個(gè)方面。與原有的能力成熟度模型類(lèi)似,CMMI也包括了在不同領(lǐng)域建立有效過(guò)程的必要元素,反映了業(yè)界普遍認可的"最佳"實(shí)踐;專(zhuān)業(yè)領(lǐng)域覆蓋軟件工程、系統工程、集成產(chǎn)品開(kāi)發(fā)和系統采購。在此前提下,CMMI為企業(yè)的過(guò)程構建和改進(jìn)提供了指導和框架作用;同時(shí)為企業(yè)評審自己的過(guò)程提供了可參照的行業(yè)基準。
CMMI的基本思想:
1、解決軟件項目過(guò)程改進(jìn)難度增大問(wèn)題
2、實(shí)現軟件工程的并行與多學(xué)科組合
3、實(shí)現過(guò)程改進(jìn)的最佳效益
CMMI的原則:
1、強調高層管理者的支持。過(guò)程改進(jìn)往往也是由高層管理者認識和提出的,大力度的、一致的支持是過(guò)程改進(jìn)的關(guān)鍵。
2、仔細確定改進(jìn)目標,首先應該對給定時(shí)間內的所能完成的改進(jìn)目標進(jìn)行正確的估計和定義并制定計劃。選擇能夠達到的目標和能夠看到對組織的效益。
3、選擇最佳實(shí)踐,應該基于組織現有的軟件活動(dòng)和過(guò)程財富,參考其他標準模型,取其精華去其糟粕,得到新的實(shí)踐活動(dòng)模型。
4、過(guò)程改進(jìn)要與組織的商務(wù)目標一致,與發(fā)展戰略緊密結合。
CMMI目標:
1、為提高組織過(guò)程和管理產(chǎn)品開(kāi)發(fā)、發(fā)布和維護能力的提供保障。
2、幫助組客觀(guān)織評價(jià)自身能力成熟度和過(guò)程域能力,為過(guò)程改進(jìn)建立優(yōu)先級以及執行過(guò)程改進(jìn)。
CMMI的方法:
1、決定哪個(gè)CMMI模型等級最適合組織過(guò)程改進(jìn)需要。
2、選擇模型的表示法是連續式還是階段式。
3、決定組織需要用到的模型中的知識領(lǐng)域。
4、類(lèi)似CMM提出的過(guò)程改進(jìn)6步,集成化過(guò)程改進(jìn)分成:開(kāi)始集成過(guò)程改進(jìn),建造集成改善平臺,集成傳統過(guò)程,啟動(dòng)新過(guò)程,進(jìn)行改進(jìn)評估。
CMMI內容:
CMMI內容分為三個(gè)級別
◆Required必需的:
是模型和過(guò)程改進(jìn)的基礎。
模型構件是目標,代表了過(guò)程改進(jìn)想要達到的最終狀態(tài),它的實(shí)現表示了項目和過(guò)程控制已經(jīng)達到了某種水平。當一個(gè)目標對應一個(gè)關(guān)鍵過(guò)程域,就稱(chēng)為"特定目標";對應整個(gè)關(guān)鍵過(guò)程域就稱(chēng)為"公用目標"。整個(gè)CMMI模型包括了54個(gè)特定目標,每個(gè)關(guān)鍵過(guò)程域都對應了一到四個(gè)特定目標。每個(gè)目標的描述都是非常簡(jiǎn)捷的,為了充分理解要求的目標就是擴展"期望"的構件。
◆Expected期望的:
在過(guò)程改進(jìn)中起到主要作用,但是某些情況不是必須的可能不會(huì )出現在成功的組織模型中。
模型構件是方法,代表了達到目標的實(shí)踐手段和補充認識。每個(gè)方法都能映射到一個(gè)目標上,當一個(gè)方法對一個(gè)目標是唯一就是"特定方法";而能適用于所有目標時(shí)就是"公用方法"。CMMI模型包括了186個(gè)特定方法,每個(gè)目標有兩到七個(gè)方法對應。
◆Informative提供信息的:構成了模型的主要部分,為過(guò)程改進(jìn)提供了有用的指導,在許多情況下他們對需要和期望的構件做了進(jìn)一步說(shuō)明。
CMMI包括了10種"提供的信息":目的,概括和總結了關(guān)鍵過(guò)程域的特定目標;介紹說(shuō)明,介紹關(guān)鍵過(guò)程域的范圍、性質(zhì)和實(shí)際方法和影響等特征;引用,關(guān)鍵過(guò)程域之間的指向是通過(guò)引用;名字,表示了關(guān)鍵過(guò)程域的構件;方法和目標關(guān)系,關(guān)鍵過(guò)程域中方法映射到目標的關(guān)系表;注釋?zhuān)⑨岅P(guān)鍵過(guò)程域的其他模型構件的信息來(lái)源;典型工作產(chǎn)品集,定義關(guān)鍵過(guò)程域中執行方法時(shí)候產(chǎn)生的工作產(chǎn)品;子方法,通過(guò)方法活動(dòng)的分解和詳細描述;學(xué)科擴充,CMMI對應學(xué)科是獨立的,這里提供了對應特定學(xué)科的擴展;公用方法的詳細描述,關(guān)鍵過(guò)程域中公用方法應用實(shí)踐的詳細描述。
CMMI評估方法:
自1991年起,CMM出現了很多模型,覆蓋了各種各樣的專(zhuān)業(yè)領(lǐng)域。其中著(zhù)名的模型有:系統工程、軟件工程、軟件采購、集成產(chǎn)品、流程開(kāi)發(fā)等。
當企業(yè)想要在組織內不同專(zhuān)業(yè)領(lǐng)域的流程改進(jìn),這些針對不同專(zhuān)業(yè)領(lǐng)域的模型在架構?內容和方法上的不同限制了組織成功實(shí)施改進(jìn)的能力。此外,將這樣模型在組織內部集成也提高了培訓?認證和改進(jìn)的費用。一套包括多個(gè)專(zhuān)業(yè)領(lǐng)域的模型加上整合的培訓和認證支持將解決這些問(wèn)題。
CMMI(Capability maturity model integration)是為了合并三個(gè)模型到一個(gè)框架中
Capability Maturity Model for Software (SW-CMM) v2.0 draft C,
Electronic Industries Alliance Interim Standard (EIA/IS) 731
Integrated Product Development Capability Maturity Model (IPD-CMM) v0.98
正如其他CMM模型,CMMI提供了流程改進(jìn)的指導,而不是流程或流程的描述。組織使用的實(shí)際流程取決于很多因素,包括應用領(lǐng)域?組織框架和規模。CMMI將許多經(jīng)過(guò)驗證的方法加入架構中,來(lái)幫組組織評價(jià)成熟度?某個(gè)軟件流程的能力度,并且建立改進(jìn)的優(yōu)先順序和實(shí)施改進(jìn)。
從CMMI框架可以產(chǎn)生不同的CMMI模型,因此必須首先確定那種模型最適合企業(yè)流程改進(jìn)的需要。
階段式描述 or 連續式描述
系統工程 or 軟件工程 or 兩者皆有
使用連續式描述可以根據企業(yè)需要選擇流程改進(jìn)順序,降低企業(yè)風(fēng)險,這給通過(guò)ISO做流程改進(jìn)提供了一個(gè)方便的比較。使用能力度(Capability)來(lái)衡量。
階段式描述提供了已經(jīng)過(guò)驗證的流程改進(jìn)順序,方便從CMM移植過(guò)來(lái)。使用成熟度(Maturity)來(lái)衡量流程改進(jìn)。
系統工程包括整個(gè)系統的開(kāi)發(fā),可能包括軟件也可能不包括。
軟件工程用于軟件系統的開(kāi)發(fā),主要集中在使用系統的?科學(xué)的?量化的方法來(lái)開(kāi)發(fā)?運行?維護軟件。
CMMI的評估方式:
自我評估:用于本企業(yè)領(lǐng)導層評價(jià)公司自身的軟件能力。
主任評估:使本企業(yè)領(lǐng)導層評價(jià)公司自身的軟件能力,向外宣布自己企業(yè)的軟件能力
CMMI的評估類(lèi)型:
軟件組織的關(guān)于具體的軟件過(guò)程能力的評估。
軟件組織整體軟件能力的評估(軟件能力成熟度等級評估)。