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