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