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