CMM概觀

CMM概觀

一、    什麼是CMM?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

CMM(Capability Maturity Model),英文直譯的意思是“能力成熟度模型”。由卡內基.梅隆大學的軟件工程協會(Software Engineering Institute, 簡稱SEI) 提出並完善,目的是通過一個合理的體系模型來對軟件組織開發能力進行合理有效的評估,幫助軟件組織在模型實施的過程中提高軟件過程管理能力,降低軟件系統開發風險,在預定的項目週期和預算內開發出高質量的軟件產品。

 

可根據CMM的三個組成字母對其含義進行分解並分析:

 

C (Capability) – 能力,指過程能力(Process Capability),使用一個過程執行項目時能夠從中期望得到的結果範圍稱爲項目的過程能力。能力是考覈一個軟件組織實力的重要基準點,比如,這個組織的技術儲備、管理手段、人員構成等等,是該組織“可”能力的組成因素,一個組織究竟能不能承擔一個項目,承擔一個項目後有什麼可以預見的後果,都可以從這些組成因素中進行可靠的判斷。所以這裏指的“能力”是一種“期望得到的結果範圍”。比如參加賽跑的運動選手,各個選手的能力都是可以用“期望得到的結果範圍”――跑完賽程所需花費的時間來進行衡量,於是就有了賽前的“奪冠熱門”的分析和預測。因而,CMM是一種帶有評估和預測的模型。

 

M (Maturity) – 成熟,指成熟度等級 (maturity levels),意指在通往高成熟度的過程中所處在的一些穩定的良好狀態。所謂“穩定的良好狀態”,爲便於理解,以人的生長髮育作比,可以劃分爲不同的階段,如嬰兒、幼兒、少兒、青少年、青年、壯年等階段。CMM共分爲五個成熟度等級,併爲每個等級定義了成熟度標準,依據這些標準,評估方對軟件組織的成熟度做出評估;對於被評估的軟件組織而言,遵照這些等級模型定義,通過一個循序漸進的過程,由低到高的提升自身的成熟度能力。所以,CMM是一個起到指導和評估作用的分等級的模型。

 

M (Model) -模型,模型本身的含義就是抽象的,同樣,CMM本身只規定了過程所必需的特徵,但是不規定專門的過程。所以,CMM是一個軟件管理過程的框架 (Framework),其本身是抽象的,具體的實施由各軟件組織進行符合自身情況的相應定製和運用。

 

綜合以上分析,CMM是一個評估和預測軟件組織能力的、分級的、抽象的軟件過程管理框架。

二、    CMM與項目管理

60年代出現了軟件危機,出現危機的原因在於當時落後的軟件生產方式滿足不了越來越大型的軟件系統的開發需要,軟件質量得不到有效的確保,於是軟件工程學出現。軟件工程學是利用工程學角度來研究並指導軟件開發,利用嚴格的工程技術理論來使軟件開發形成科學的生產體系。但是,軟件工程是否能夠完全解決所說的軟件危機?在現實的世界中,事物往往總是以兩面的形式出現,如果說軟件工程是解決軟件危機的一個途徑,那麼另外一個途徑又是什麼?軟件開發通常要在一定的時間週期內完成,而且越大的系統開發週期一般來說就越長,這個過程就是通常所說的軟件過程 (Software Process)。正因爲過程經歷了一段不短時間,所以過程充滿了不可預見性,不知道下一步會出現什麼情況,而且,一旦意外的情況出現,將如何進行處理?對於過程,如果僅僅利用軟件工程這種技術手段來應付,無疑是不夠充分的,對付過程,最有效的就是管理,因爲管理比技術更富有彈性,所以,解決軟件危機的另一途徑就是有效的項目管理。項目管理是基於過程的,CMM作爲軟件過程管理的改進框架,在每一個成熟度等級上都對軟件過程的各階段做了特徵描述,以是否滿足這些特徵來對軟件組織做出能力成熟度評估。這些特徵描述,在CMM中稱爲關鍵過程域 (Key Process AreaKPA),每個KPA規定了軟件組織爲滿足該KPA必須實現的目標,目標則面向組織管理和過程管理,所以,組織實現了一個等級所有的KPA目標,則在項目管理的能力上達到了相應的成熟度級別。

三、    CMM等級模型

CMM模型分爲五個等級,初始級、可重複級、已定義級、已管理級和優化級,具體內容如下表:

 

等級名

特徵

關鍵過程域 (KPA)

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />初始級

以個人主觀認爲合適的方式來開發

 

可重複級

不存在組織範圍的過程,利用已存在的項目管理實踐和經驗來開發

  • 需求管理
  • 軟件項目規劃
  • 軟件項目跟蹤和監督
  • 軟件轉包管理
  • 軟件質量控制
  • 軟件配置管理

已定義級

有定義好的屬於組織範圍的過程,按照過程有效的進行開發

  • 組織過程焦點
  • 組織過程定義
  • 培訓方案
  • 集成軟件管理
  • 軟件生產工程
  • 組間協調
  • 互相評審

已管理級

可以對過程能力進行量化,根據量化來預測和控制一個項目的過程績效

  • 軟件質量管理
  • 定量過程管理

優化級

過程能力可控、可改進,並且可以以量化方式來評估改進

  • 過程變更管理
  • 技術變更管理
  • 故障預防

 

從這個表可以看出,CMM基於過程,由軟件組織自身體系提供支持,達到過程量化、可控的目標,以應付變化的軟件開發過程。能力成熟度越高的組織,其項目開發和項目成果越能夠依賴於可控制、可靠的軟件過程,而不是依賴在不穩定不可預見的個人能力之上,比如某個項目領導,或者是某個核心技術人員。

四、    CMM在組織中的實施

CMM各個等級的KPA可以看出,CMM的構成有多個方面和不同層次,具體實施需要依靠於各種工具、技術、方法、手段,並形成開發規範和管理傳統,更重要的一點是,CMM本身需要融合在一個軟件組織的體系當中,也就是說軟件組織的各級、各層、各個組織部分,甚至個人需要在軟件過程、軟件過程的不同階段能夠以成熟規範的方式來協調和運作,由此獲得最佳的項目成果。對成熟度融合得好的軟件組織,CMM不再是外來物,而是好比內部的一股與生俱來力量,它就蘊藏在組織的肌體當中,在軟件產品生產中發揮着巨大的作用。

 

注:本文小部分資料引用自《軟件項目管理實踐》(Software Project Management in Practice).[清華大學出版社].Pankaj Jalote(印度)著。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章