CMM描述了五個級別的軟件過程成熟度(初始級可重復(fù)級已定義級已管理級優(yōu)化級
,成熟度反映了軟件過程能力(Software Process Capability)的大小,任何一個軟件機構(gòu)的軟件過程必定屬于其中某個級別。除了第一級以外,每級成熟度又由若干關(guān)鍵過程域(Key Process Area)構(gòu)成。五個成熟度及其關(guān)鍵過程領(lǐng)域如圖所示:
圖中的每個關(guān)鍵過程域分別針對軟件過程的某一方面,具體描述了某級成熟度下軟件過程在該方面所應(yīng)達到的的一組目標(biāo)和實現(xiàn)這些目標(biāo)的一組關(guān)鍵活動(Key Practice)。所有關(guān)鍵活動被劃分為五類,分別為完成該組目標(biāo)所需的承諾(Commitment to Perform)、前提條件(Ability to Perform)、實際動作(Activities performed)、度量分析(Measurement and Analysis)以及驗證(Verifying Implementation)。上述五方面被稱為五個Common Features。
CMM的結(jié)構(gòu)如圖所示:
需要提出的是,任何一個成熟度級別的關(guān)鍵過程域集都是本級描述的關(guān)鍵過程域集和所有下級的關(guān)鍵過程域集的并集。如3級的關(guān)鍵過程域就應(yīng)有13個不同的域,其中7個是3級自己包含的,6個屬于2級成熟度,而4級應(yīng)有15個域。
?
第一級:初始級(
The Initial Level
)
初始級的軟件機構(gòu)缺乏對軟件過程的有效管理,其軟件項目的成功來源于個人英雄主義而非機構(gòu)行為,因此它不是可重復(fù)的。
第二級:可重復(fù)級(
The Repeatable Level
)
概述:
第二級軟件機構(gòu)的主要特點是:項目計劃和跟蹤的穩(wěn)定性,項目過程的可控性和以往成功的可重復(fù)性。更具體的說:
-
機構(gòu)建立了管理軟件項目的策略和實現(xiàn)這些策略的過程。
-
新項目的計劃和管理基于類似項目的經(jīng)驗。
-
過程能力的增強基于以各個項目為基礎(chǔ)的有紀(jì)律的基本過程管理。
-
不同的項目可有不同的過程,而對機構(gòu)的要求是具有指導(dǎo)項目建立適當(dāng)管理過程的策略。
-
每個項目都確定了基本的軟件管理控制,包括:
-
基于前面項目的經(jīng)驗和新項目特點,做出現(xiàn)實的項目承諾(如預(yù)算、交付期、軟件質(zhì)量等);
-
軟件項目管理者要跟蹤開支、日程、軟件功能;
-
滿足承諾的過程中的出現(xiàn)的問題要及時發(fā)現(xiàn),妥善解決;
-
定義了軟件項目標(biāo)準(zhǔn),且機構(gòu)確保其被遵守。
構(gòu)成:
本級的關(guān)鍵過程領(lǐng)域(KPA)包括:
客戶的需求是軟件項目的基礎(chǔ)。軟件需求管理的目的是在客戶和軟件項目之間達成對客戶需求的一致理解。
為軟件工程和項目管理建立一個合理的計劃。
使管理者對實際的軟件項目進展過程有足夠的了解,以在項目效能偏離計劃太多是采取有效措施。
選擇合格的分包商,并有效管理之。
對軟件項目過程及其間生產(chǎn)的各個產(chǎn)品進行監(jiān)管以保證最終軟件質(zhì)量。
在整個軟件生命周期里建立并維護軟件項目的工作產(chǎn)品的完整性。
第三級:已定義級(
The Defined Level
)
概述
第三級的主要特征在于軟件過程已被提升成標(biāo)準(zhǔn)化過程,從而更加具有穩(wěn)定性、可重復(fù)性和可控性。處于第三級的企業(yè)具有如下一些特征:
-
機構(gòu)采用標(biāo)準(zhǔn)的軟件過程,軟件工程和管理活動被集成為一個有機的整體。標(biāo)準(zhǔn)化的目的是使之可使管理者和技術(shù)人員有效工作。
-
有一組人員專門負(fù)責(zé)機構(gòu)的軟件過程,并且在機構(gòu)中有培訓(xùn)計劃來確保
stuff
和
manager
有知識和技能完成所賦予的角色。
-
標(biāo)準(zhǔn)的軟件過程結(jié)合項目的特點即形成定義的軟件過程,它包括一組集成的定義良好的軟件工程和管理過程。
-
一個定義良好的過程包括就緒準(zhǔn)則、輸入、完成工作過程、驗證機制、輸出和完成準(zhǔn)則。
-
在已建立的產(chǎn)品線上
cost, schedule, functionality
均可控制,軟件質(zhì)量被加以跟蹤。
-
過程能力體現(xiàn)在在機構(gòu)范圍內(nèi)對一個定義的軟件過程活動、角色和責(zé)任的共同理解。
構(gòu)成
第三級主要處理以下的
KPA:
確立機構(gòu)對于改進機構(gòu)的軟件過程能力的軟件過程活動的責(zé)任。
開發(fā)和維護一組有用的軟件過程assets和提供一個用于定義定量過程管理的有意義的數(shù)據(jù)的基礎(chǔ)
開發(fā)個體的技能和知識以使他們能夠更加有效的完成他們的角色
基于業(yè)務(wù)環(huán)境和項目的技術(shù)需要,從機構(gòu)的標(biāo)準(zhǔn)軟件過程和相關(guān)的過程assets經(jīng)過剪裁,將軟件工程和管理活動集成為一個有機的定義的軟件過程。
一致地完成定義良好的工程過程。它描述了項目的技術(shù)活動,如需求分析,設(shè)計,編碼和測試。
確立軟件工程組主動介入其它工程組以便項目能更好滿足客戶要求的手段
早而且有效的排除軟件工作產(chǎn)品中的缺陷。它可通過
inspection,structured walkthrough等手段進行。
概括來說,第三級企業(yè)的重點是
Engineering processes and organizational support
。
第四級:已管理級(
The Managed Level
)
概述:
第四級的軟件機構(gòu)中軟件過程和軟件產(chǎn)品都有定量的目標(biāo),并被定量地管理,因而其軟件過程能力是可預(yù)測的,其生產(chǎn)的軟件產(chǎn)品是高質(zhì)量的。具體地說,第四季的機構(gòu)具有如下特征:
-
軟件過程和產(chǎn)品有定量質(zhì)量目標(biāo)。
-
重要的軟件過程活動均配有生產(chǎn)率和質(zhì)量度量;
-
數(shù)據(jù)庫被用來收集和分析定義軟件過程的數(shù)據(jù);
-
項目的軟件過程和質(zhì)量的評價有定量的基礎(chǔ);
-
項目的產(chǎn)品和過程控制具有可預(yù)測性。
-
縮小過程效能落在可接受的定量界限內(nèi)的偏差;
-
可區(qū)分過程效能的有效偏差和隨機偏差;
-
面向新領(lǐng)域的風(fēng)險是可知并被仔細(xì)管理;
構(gòu)成
:
本級的關(guān)鍵過程領(lǐng)域包括:
定量地控制軟件項目的過程效能。
定量了解項目軟件產(chǎn)品的質(zhì)量,并達到既定的質(zhì)量目標(biāo)。
第五級:
The Optimizing Level
概述
概括來說,第五級的主要特點是技術(shù)和過程改進被作為常規(guī)的業(yè)務(wù)活動加以計劃和管理。處于第五級的企業(yè)具有如下一些特征:
-
機構(gòu)集中于連續(xù)的過程改進
-
具有標(biāo)識弱點和增強過程的手段。
-
采用過程數(shù)據(jù)分析使用新技術(shù)的代價效益并提出改進。
-
項目隊伍能夠分析出錯原因并防止其再次出現(xiàn)。
-
防止浪費是第五級的重點。
-
改進的途徑在于已有過程的增量改進和使用新技術(shù)和新方法的革新
構(gòu)成
識別出錯原因,防止錯誤再現(xiàn)
(通過改變定義的軟件過程)
識別有益的新技術(shù)
(工具、方法和過程),并按有序的方式將其轉(zhuǎn)移至機構(gòu)之中。其重點在于在變化的世界中有效的完成革新。
連續(xù)改進機構(gòu)所采用的軟件過程,以改進軟件質(zhì)量,提高生產(chǎn)率和減少產(chǎn)品開發(fā)時間
概括來說,第五級企業(yè)的重點是連續(xù)的過程改進
。
縱觀整個
CMM,軟件企業(yè)提高自身成熟度的歷程是一個從無序到有序,從特殊到一般,從定性到定量,最后不斷自我完善的過程。