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