第一級:初始級
在初始級,企業(yè)一般不具備穩(wěn)定的軟件開發(fā)與維護(hù)的環(huán)境。常常在遇到問題的時候,就放棄原定的計劃而只專注于編程與測試。
第二級:可重復(fù)級
在這一級,建立了管理軟件項目的政策以及為貫徹執(zhí)行這些政策而定的措施。基于過往的項目的經(jīng)驗來計劃與管理新的項目。
第三級:定義級
在這一級,有關(guān)軟件工程與管理工程的一個特定的、面對整個企業(yè)的軟件開發(fā)與維護(hù)的過程的文件將被制訂出來。同時,這些過程是集成到一個協(xié)調(diào)的整體。這就稱為企業(yè)的標(biāo)準(zhǔn)軟件過程。
第四級:定量管理級
在這一級,企業(yè)對產(chǎn)品與過程建立起定量的質(zhì)量目標(biāo),同時在過程中加入規(guī)定得很清楚的連續(xù)的度量。作為企業(yè)的度量方案, 要對所有項目的重要的過程活動進(jìn)行生產(chǎn)率和質(zhì)量的度量。軟件 產(chǎn)品因此具有可預(yù)期的高質(zhì)量。
第五級:(不斷)優(yōu)化級
在這個等級,整個企業(yè)將會把重點放在對過程進(jìn)行不斷的優(yōu)化。企業(yè)會采取主動去找出過程的弱點與長處,以達(dá)到預(yù)防缺陷 的目標(biāo)。同時,分析有關(guān)過程的有效性的資料,作出對新技術(shù)的 成本與收益的分析,以及提出對過程進(jìn)行修改的建議。
CMM第一級:初始級
◆ 特征
(1)軟件過程的特點是雜亂無章,有時甚至混亂,幾乎沒有定義過程的規(guī)則或步驟。
(2)過分的承諾,常作出良好的承諾:如“按照軟件工程方式,有序的工程來工作”;或達(dá)到高目標(biāo)的許諾。但實際上卻出現(xiàn)一系列問題。
(3)遇到危機就放棄原計劃過程,反復(fù)編碼和測試。
(4)成功完全依賴個人努力和杰出的專業(yè)人才,取決于超常的管理人員和杰出有效的軟件開發(fā)開發(fā)人員。具體的表現(xiàn)和成果都源 于或者說是決定于個人的能力和他們先前的經(jīng)驗、知識以及他們的進(jìn)取心和積極程度。
(5)能力只是個人的特性,而不是開發(fā)組織的特性。依靠著個人的品質(zhì)或承受著巨大的壓力;或找竅門取得成果。但此類人一旦離去,對組織的穩(wěn)定作用也消失。
(6)軟件過程是不可確定的和不可預(yù)見的。軟件成熟性程度處于第一級軟件組織的軟件過程在實際的工作過程中被經(jīng)常的改變(過程是隨意的)。這類組織也在開發(fā)產(chǎn)品,但其成果是不穩(wěn)定的,不可預(yù)見的,不可重復(fù)的。也就是說,軟件的計劃、預(yù)算、功能和產(chǎn)品的質(zhì)量都是不可確定和不可預(yù)見的。
◆ 過程
(1)極少存在或使用穩(wěn)定的過程
(2)所謂“過程”,往往是“就這么干”而言。
(3)各種條例,規(guī)章制度互不協(xié)調(diào),甚至互相矛盾。
◆ 人員
(1)依賴個人努力和杰出人物。一旦優(yōu)秀人物離去,項目就無法繼續(xù)。
(2)人們的工作方式如同“救火”,就是在開發(fā)過程中不斷地出現(xiàn)危機,以及不斷的“救火”。
◆ 技術(shù)
引進(jìn)新技術(shù)是極大風(fēng)險。
◆ 度量
不收集數(shù)據(jù)或分析數(shù)據(jù)。
◆ 改進(jìn)方向
(1)建立項目管理過程,實施規(guī)范化管理,保障項目的承諾。
(2)首要任務(wù)是進(jìn)行需求管理,建立客戶與軟件項目之間的共同理解,使項目真正反映客戶的要求。
(3)建立各種軟件項目計劃、如軟件開發(fā)計劃、軟件質(zhì)量保證計劃、軟件配置管理計劃、軟件測試計劃、風(fēng)險管理計劃及過程改進(jìn)計劃。
(4)開展軟件質(zhì)量保證活動(SQA)。
CMM第二級:可重復(fù)級
◆ 特征
(1)進(jìn)行較為現(xiàn)實的承諾,可按以前在同類項目上的成功經(jīng)驗建立的必要過程準(zhǔn)則來確保再一次的成功。
(2)主要是逐個項目地建立基本過程管理條例來加強過程能力。
(3)建立了基本的項目管理過程來跟蹤成本、進(jìn)度和功能。
(4)管理工作主要跟蹤軟件經(jīng)費支出、進(jìn)度及功能。識別在承諾方面出現(xiàn)的問題。
(5)采用基線(BASELINE)來標(biāo)志進(jìn)展、控制完整性。
(6)定義了軟件項目的標(biāo)準(zhǔn),并相信它,遵循它。
(7)通過子合同建立有效的供求關(guān)系。
◆ 過程
(1)軟件開發(fā)和維護(hù)的過程是相對穩(wěn)定的,但過程建立在項目一級。
(2)有規(guī)則的軟件過程是在一個有效的工程管理系統(tǒng)的控制之下,先前的成功經(jīng)驗可以被重復(fù)。
(3)問題出現(xiàn)時,有能力識別及糾正。承諾是可實現(xiàn)的。
◆ 人員
(1)項目的成功依賴于個人的能力以及管理層的支持。
(2)理解管理的必要性及對管理的承諾。
(3)注意人員的培訓(xùn)問題。
◆ 技術(shù)
建立技術(shù)支持活動,并有穩(wěn)定的計劃。
◆ 度量
每個項目建立資源計劃。主要是關(guān)心成本、產(chǎn)品和進(jìn)度。有相應(yīng)的管理數(shù)據(jù)。
◆ 改進(jìn)方向
(1)不再按項目制定軟件過程,而是總結(jié)各種項目的成功經(jīng)驗,使之規(guī)則化,把具體經(jīng)驗歸納為全組織的標(biāo)準(zhǔn)軟件過程。把改進(jìn)組織的整體軟件過程能力的軟件過程活動,作為軟件開發(fā)組織的責(zé)任。
(2)確定全組織的標(biāo)準(zhǔn)軟件過程,把軟件工程及管理活動集成到一個穩(wěn)固確定的軟件過程中。從而可以跨項目改進(jìn)軟件過程效果,也可作為軟件過程剪裁的基礎(chǔ)。
(3)建立軟件工程過程小組(SEPG)長期承擔(dān)評估與調(diào)整軟件過程的任務(wù),以適應(yīng)未來軟件項目的要求。
(4)積累數(shù)據(jù),建立組織的軟件過程庫及軟件過程相關(guān)的文檔庫。
(5)加強培訓(xùn)。
CMM第三級:確定級
◆ 特征
(1)無論管理方面或工程方面的軟件過程都已文件化、標(biāo)準(zhǔn)化,并綜合成軟件開發(fā)組織的標(biāo)準(zhǔn)軟件過程。
(2)軟件過程標(biāo)準(zhǔn)被應(yīng)用到所有的工程中,用于編制和維護(hù)軟件。有的項目也可根據(jù)實際情況,對軟件開發(fā)組織的標(biāo)準(zhǔn)軟件過程進(jìn)行剪裁。
(3)在從事一項工程時,產(chǎn)品的生產(chǎn)過程、花費、計劃以及功能都是可以控制的,從而軟件質(zhì)量也可以控制。
(4)軟件工程過程組(SEPG)負(fù)責(zé)軟件活動。
(5)在全組織范圍內(nèi)安排培訓(xùn)計劃。
◆ 過程
(1)整個組織全面采用綜合性的管理及工程過程來管理。軟件工程和管理活動是穩(wěn)定的和可重復(fù)的,具有連續(xù)性的。
(2)軟件過程起了預(yù)見及防范問題的作用,能使風(fēng)險的影響最小化。
◆ 人員
(1)以項目組的方式進(jìn)行工作。如同綜合產(chǎn)品團(tuán)隊。
(2)在整個組織內(nèi)部的所有人對于所定義的軟件過程的活動、任務(wù)有深入了解,大大加強了過程能力。
(3)有計劃地按人員的角色進(jìn)行培訓(xùn)。
◆ 技術(shù)
在定性基礎(chǔ)上建立新的評估技術(shù)。
◆ 度量
(1)在全過程中收集使用數(shù)據(jù)。
(2)在全項目中系統(tǒng)性地共享數(shù)據(jù)。
◆ 改進(jìn)方向
(1)開始著手軟件過程的定量分析,以達(dá)到定量地控制軟件項目過程的效果。
(2)通過軟件的質(zhì)量管理達(dá)到軟件的質(zhì)量目標(biāo)。
CMM第四級:管理級
◆ 特征
(1)制定了軟件過程和產(chǎn)品質(zhì)量的詳細(xì)而具體的度量標(biāo)準(zhǔn),軟件過程和產(chǎn)品質(zhì)量都可以被理解和控制。
(2)軟件組織的能力是可預(yù)見的,原因是軟件過程是被明確的度量標(biāo)準(zhǔn)所度量和操作。不言而喻,軟件產(chǎn)品的質(zhì)量就可以預(yù)見和得以控制。
(3)組織的度量工程保證所有項目對生產(chǎn)率和質(zhì)量進(jìn)行度量、并作為重要的軟件過程活動。
(4)具有良好定義及一致的度量標(biāo)準(zhǔn)來指導(dǎo)軟件過程,并作為評價軟件過程及產(chǎn)品的定量基礎(chǔ)。
(5)在開發(fā)組織內(nèi)已建立軟件過程數(shù)據(jù)庫,保存收集到的數(shù)據(jù),可用于各項目的軟件過程。
◆ 過程
(1)開始定量地認(rèn)識軟件過程。
(2)軟件過程的變化小,一般在可接受的范圍內(nèi)。
(3)可以預(yù)見軟件過程中和產(chǎn)品質(zhì)量方面的一些趨勢。一旦質(zhì)量經(jīng)度量后超出這些標(biāo)準(zhǔn)或是有所違反,可以采用一些方法去改正,以達(dá)到良好的目標(biāo)。
◆ 人員
每個項目中存在強烈的群體工作意識。因為每人都了解個人的作用與組織的關(guān)系,因此能夠產(chǎn)生這種群體意識。
◆ 技術(shù)
不斷的在定量基礎(chǔ)上評估新技術(shù)。
◆ 度量
(1)在全組織內(nèi)進(jìn)行數(shù)據(jù)收集與確定。
(2)度量標(biāo)準(zhǔn)化。
(3)數(shù)據(jù)用于定量地理解軟件過程及穩(wěn)定軟件過程。
◆ 改進(jìn)方向
(1)缺陷防范,不僅僅在發(fā)現(xiàn)了問題時能及時改進(jìn),而且應(yīng)采取特定行動防止將來出現(xiàn)這類缺陷。
(2)主動進(jìn)行技術(shù)變動管理、標(biāo)識、選擇和評價新技術(shù),使有效的新技術(shù)能在開發(fā)組織中施行。
(3)進(jìn)行過程變動管理,定義過程改進(jìn)的目的,經(jīng)常不斷地進(jìn)行過程改進(jìn)。
CMM第五級:優(yōu)化級
◆ 特征
(1)整個組織特別關(guān)注軟件過程改進(jìn)的持續(xù)性、預(yù)見及增強自身,防止缺陷及問題的發(fā)生,不斷地提高他們的過程處理能力。
(2)加強定量分析,通過來自過程的質(zhì)量反饋和吸收新觀念,新科技,使軟件過程能不斷地得到改進(jìn)。
(3)根據(jù)軟件過程的效果,進(jìn)行成本/利潤分析,從成功的軟件過程中吸取經(jīng)驗,加以總結(jié)。把最好的創(chuàng)新成績迅速向全組織轉(zhuǎn)移, 對失敗的案例,由軟件過程小組進(jìn)行分析以找出原因。
(4)組織能找出過程的不足并預(yù)先改進(jìn),把失敗的教訓(xùn)告知全體組 織以防止重復(fù)以前的錯誤。
(5)對軟件過程的評價和對標(biāo)準(zhǔn)軟件過程的改進(jìn),都在全組織內(nèi)推 廣。
◆ 過程
(1)不斷地系統(tǒng)地改進(jìn)軟件過程。
(2)理解并消除產(chǎn)生問題的公共根源,在任何一個系統(tǒng)中都可找到:由于隨機變化造成重復(fù)工作、進(jìn)而導(dǎo)致時間浪費。為了防止浪 費人力可能導(dǎo)致的系統(tǒng)變化。要消除“公共”的無效率根源,防止浪費發(fā)生。盡管所有級別都存在這些問題,但這是第五級的焦點。
◆ 人員
(1)整個組織都存在自覺的強烈的團(tuán)隊意識。
(2)每個人都致力過程改進(jìn),人們不再以達(dá)到里程碑的成就而滿足, 而要力求減少錯誤率。
◆ 技術(shù)
基于定量的控制和管理,事先主動考慮新技術(shù)、追求新技術(shù)。可以實現(xiàn)軟件開發(fā)中的方法和新技術(shù)的革新、以防止出現(xiàn)錯誤,不斷提 高產(chǎn)品的質(zhì)量和生產(chǎn)率。
◆ 度量
利用數(shù)據(jù)來評估,選擇過程改進(jìn)。
◆ 改進(jìn)方向
保持持續(xù)不斷的軟件過程改進(jìn)。
CMM總結(jié):五層結(jié)構(gòu)圖
我們看到,在第五級上,技術(shù)和過程的改進(jìn)像普通商業(yè)活動一樣有計劃、有管理地進(jìn)行。由于組織不斷的致力于改進(jìn)過程的能力,所以軟件開發(fā)組織的能力可持續(xù)改進(jìn)。這種改進(jìn)不僅表現(xiàn)在對存在的軟件過程逐步改進(jìn),不表現(xiàn)在采用新技術(shù)和新方法方面的革新。
畫一個圖吧:(CMM的五層結(jié)構(gòu)圖)
????????? -----------------
???????? /?? 優(yōu) 化 級???? /
??????? /????? (5)?????? /
??????? -----------------
?????????????? ↑
?????????????? | 不斷改進(jìn)的過程
?????????????? |
????????? -----------------
???????? / 可 管 理 級??? /
??????? /????? (4)?????? /
??????? -----------------
?????????????? ↑
?????????????? | 能預(yù)見的過程
?????????????? |
????????? -----------------
???????? /?? 確 定 級???? /
??????? /????? (3)?????? /
??????? -----------------
?????????????? ↑
?????????????? | 標(biāo)準(zhǔn)一致的過程
?????????????? |
????????? -----------------
???????? /? 可 重 復(fù) 級?? /
??????? /????? (2)?????? /
??????? -----------------
?????????????? ↑
?????????????? | 有紀(jì)律的過程
?????????????? |
????????? -----------------
???????? /? 初 始 級????? /
??????? /???? (1)??????? /
??????? -----------------