CMM 是 英文 Capability Maturity Model for Software -- “ 軟件能力成熟度模型 ” 縮寫 SW-CMM 的 簡稱。
CMM 的定義是:有關軟件企業 / 組織的軟件過程進程中各個發展階段的定義、實現、質量控制和改善的模型化描述。這個模型用于確定軟件企業 / 組織的軟件過程能力和找出軟件質量及過程改進方面的最關鍵問題,為企業 / 組織的過程改進提供指南。
CMM 的核心思想是將軟件開發視為一組過程,并根據統計質量管理的理論對軟件開發進行過程管理,以使其滿足工程化、標準化的要求,使企業能夠更好地實現商業目標。它側重于軟件開發的管理及軟件工程能力的提高,因此 CMM 可以作為企業軟件過程改進的指南,幫助軟件開發機構建立嚴格的、規范的軟件開發過程,最有效地提高軟件工程能力。
1.2 CMM的成熟度等級CMM 提供了一個軟件能力成熟度模型的框架,它將軟件過程改進的進化步驟組織成五個成熟度等級,為軟件過程不斷改進奠定了一個循序漸進的基礎。每一個成熟度等級為繼續改進過程提供一個臺基。第一級實際上是一個起點,任何準備按 CMM 體系進化的企業都自然處于這個起點上,并通過這個起點向第二級邁進。除第一級外,每一等級包含一組過程目標,通過實施相應的一組關鍵過程域來達到這一組過程目標。當這一組目標達到時,就能使軟件過程的一個相應的重要成分得以穩定。每達到成熟度框架的一個等級,就建立起軟件過程的一個相應的穩定成分,從而導致軟件開發組織過程能力一定程度的增長。
CMM 的五個成熟度等級的主要特征如下:
( 1 )初始級 — 未加定義的隨意過程
軟件過程的特點是無秩序的,有時甚至是混亂的。軟件過程定義幾乎處于無章法和步驟可循的狀態,軟件產品所取得的成功往往依賴極個別人的努力和機遇。
( 2 )可重復級 — 規則化的過程
已建立了基本的項目管理過程,可用于對成本、進度和功能特性進行跟蹤。對類似的應用項目,有章可循并能重復以往所取得的成功。
( 3 )定義級 — 標準的、一致的過程
用于管理的和工程的軟件過程均已文檔化、標準化,并形成了整個軟件組織的標準軟件過程。全部項目均采用與實際情況相吻合的、適當修改后的標準軟件過程來進行操作。
( 4 )管理級 — 可預測的過程
軟件過程和產品質量有詳細的度量標準。軟件過程和產品質量得到了定量的認識和控制。
( 5 )優化級 — 持續改進的過程
通過對來自過程、新概念和新技術等方面的各種有用信息的定量分析,能夠不斷地、持續性地對過程進行改進。
1.3 CMM 的關鍵過程域在 CMM 中每個成熟度等級(第 1 級除外)規定了不同的關鍵過程域,一個軟件組織如果希望達到某一個成熟度等級,就必須完全滿足關鍵過程域所規定的不同要求,即滿足每個關鍵過程域的目標。所謂關鍵過程域是指一系列相互關聯的操作活動,這些活動反映了一個軟件組織改進過程時必須集中精力改進的幾個方面。換句話說,關鍵過程域標識了達到某個成熟度等級時所必須滿足的條件。在 CMM 中一共有 18 個關鍵過程域,分布在 2~5 級中。
• 第 2 級(可重復級)有 6 個關鍵過程域,主要涉及建立軟件項目管理控制方面的內容。
• 需求管理( Requirements Management , RM )
• 軟件項目計劃( Software Project Planning , SPP )
• 軟件項目跟蹤與監控( Software Project Tracking and Oversight , SPTO )
• 軟件子合同管理( Software Subcontract Management , SSM )
• 軟件質量保證( Software Quality Assurance , SQA )
• 軟件配置管理( Software Configuration Management , SCM )
• 第 3 級(定義級)有 7 個關鍵過程域,主要涉及項目和組織的策略。 使軟件組織建立起對項目中的有效計劃和管理過程的內部細節。
• 組織過程焦點( Organization Process Focus , OPF )
• 組織過程定義( Organization Process Definition , OPD )
• 培訓程序( Training Program , TP )
• 集成軟件管理( Integrated Software Management , ISM )
• 軟件產品工程( Software Product Engineering , SPE )
• 組間協調( Intergroup Coordination , IC )
• 同級評審( Peer Reviews , PR )
• 第 4 級(管理級)有 2 個關鍵過程域,主要的任務是為軟件過程和軟件產品建立一種可以理解的定量的方式。
• 定量過程管理( Quantitative Process Management , QPM )
• 軟件質量管理( Software Quality Management , SQM )
• 第 5 級(優化級)有 3 個關鍵過程域,主要涉及的內容是軟件組織和項目中如何實現持續不斷的過程改進問題。
• 缺陷預防( Defect Prevention , DP )
• 技術變更管理( Technology Change Management , TCM )
• 過程變更管理( Process Change Management , PCM )
1.4 CMM 的家族CMM 家族 除了我們最熟悉的 SW-CMM ( 軟件能力成熟度模型 ) 以外 , 還包括 CMMI ( 能力成熟度集成模型 ) 、 SA-CMM ( 軟件獲取能力成熟度模型 ) 、 SE-CMM ( 系統工程能力成熟度模型 ) 、 P-CMM ( 人力能力成熟度模型 ) 、 IDEAL 模型等等。
CMMI 把現存所有的以及將被發展出來的各種能力成熟度模型,集成在一個框架中。
SA-CMM 用于組織獲取和采購基于軟件的應用系統的軟件過程,美國的國防部、陸軍、海軍和一些商用組織都已采用 SA-CMM 對他們的獲取能力進行評估。
SE-CMM 是描述一個組織為保證實現一個好的系統工程的主要元素。
P-CMM 是有關組織的人力資源管理的模型。
IDEAL 模型是一個組織用于啟動、規劃和實現過程改善措施藍圖的模型,概括了建立一個成功過程改善項目的必要步驟,其中:
I 代表 Initiating (啟動);
D 代表 Diagnosing (診斷);
E 代表 Establishing (建造);
A 代表 Acting (措施);
L 代表 Learing (學習)。
2 CMM 的產生及發展20 世紀 80 年代中期,國際軟件產業界對軟件過程的研究十分重視,因為在采用軟件工程方法克服軟件危機的過程中,人們已認識到,軟件過程是否完善是軟件風險大小的決定因素。
1986 年 11 月,美國卡內基梅隆大學的軟件工程研究所( Software Engineering Institute , SEI )應美國聯邦政府的要求,針對美國國防部對軟件承包商的能力評價問題,研究 “ 過程成熟度框架 ” 。
1987 年 9 月, SEI 開發了一套軟件能力成熟度框架和軟件成熟度問卷,用來評估軟件供應商的能力。
1991 年, SEI 自己總結了成熟度框架和初版成熟度問卷的實踐經驗,并以此為基礎推出了 “ 軟件能力成熟度模型( Capability Maturity Model For Software , CMM ) 1.0 版 ” 。
1993 年, SEI 在廣泛聽取美國政府和各界軟件專家的意見后,推出了目前世界上比較流行的通用的 CMM1.1 版。
目前, CMM 是國際上最流行、最實用的一種軟件生產過程標準,已經得到國際軟件產業界的認可,成為當今企業從事規模軟件生產不可缺少的一項內容。
199 8 年 SW-CMM2.0 的草案 C 發布并征求意見期間,美國國防部主管 CMM 的部門決定不再修訂單獨的 SW-CMM ,而著手制定集成的能力成熟度模型 CMMI ,其中包括軟件方面的 SW-CMM 。 2002 年 1 月發布了 CMMI1.1 版。
3 CMM 的作用 3.1 CMM 的基本用途SW-CMM 的基本用途有三個方面:
• 軟件過程評估
借助 SW-CMM 分析軟件組織當前軟件過程的狀態,找出其強處和弱處,這點無論軟件采購單位,還是軟件產品開發單位都可使用。
• 軟件過程改進
根據評估結果,確定當前軟件過程的弱點,按照 SW-CMM 能力等級的順序,原則上從低級( 2 級)逐級向更高級( 3 、 4 、 5 級)發展,制定軟件過程改進的策略。這一點已成為當前 CMM 的最主要用途,任何軟件開發單位都可使用。需要特別注意的是 CMM 的每一個等級都是其更高等級的基礎,基礎條件不具備,就不可能達到更高等級。
• 軟件能力評價
這種用途主要是軟件采購單位為了減少軟件采購的風險(包括資金、周期、特別是產品質量方面的風險),需要在招標時對投標者的軟件過程能力進行評價。當然投標者也可進行自我評價,以便做到 “ 知己知彼 ” ,不過自我評價的結果一般并不被軟件采購者用作可靠的依據。
3.2 軟件企業實施 CMM 的意義• 規范軟件開發過程及管理
目前我國很多軟件企業在軟件開發過程方面還處于比較混亂,比較自由化的階段。有的企業即使有一些規定,實際上也沒有或沒有完全執行,這主要與市場規范的問題有關。
• 規范市場競爭
對中國軟件企業來說, CMM 不僅是一張國際市場的通行證,它的重要意義更在于,在達到 CMM 各級標準的過程中,通過軟件工程方法的運用達到提高軟件質量的目的。從而規范市場競爭,提高軟件企業市場競爭能力。
• 幫助企業進行內部軟件過程改進
這是 CMM 最具特色的地方。軟件過程的改進和軟件過程能力的提高可以提高產品質量,控制成本,提高勞動生產率。
• 增加企業的國際競爭能力
這對我國已加入 WTO 更為重要, CMM 與 ISO9000 不同,它能明確指出軟件企業在軟件過程和軟件能力方面所達到的水平,軟件企業所處的位置,企業應努力的方向及其改進的途徑,這樣企業的市場競爭能力就可增強。印度就是一個最好的例子。
CMM 是國際公認的 “ 事實 ” 標準,是中國軟件業走向國際市場的通行證。
• 可以降低軟件開發風險
這一點是 CMM 模型設計的初衷,對軟件企業來說,也是極為有益的。
4 ISO9000 與 CMM 4.1 概述我國軟件技術人員在數十年來的研究與開發工作中,一直在尋找適合我國特點的發展軟件產業的途徑,積累了一些經驗,也有不少教訓。今天大家的共識是: 21 世紀的軟件產業必須走工業化生產的道路,實行軟件開發生產組織的變革,實現軟件開發的標準化,規范化和國際化。落實到具體,一方面我們需要營造軟件工程文化,培養大量既懂信息技術又懂企業管理的高級人才,建立必要的信息產業通用基礎設施;另一方面還需要建立過程工程、系統工程、面向對象技術、軟件過程以及軟件質量工程等五個以支持環境為主要特征的軟件產業基礎設施,以全面支持和促進軟件產業國際化、標準化的建立與發展。
隨著軟件質量管理和認證工作在中國 IT 業的開展,其支撐技術的研究、支撐工具的開發也日益引起人們的重視,如何幫助軟件企業的管理者和工程師理解 ISO9000 或 CMM ,引導企業建立標準化的生產過程和管理過程,進行工作流和文檔流的控制和管理,以及軟件過程和軟件質量的度量技術等等,都是目前急待解決的問題。
CMM 和 ISO 9001 并不是孤立、或彼此矛盾的 [5] 。 ISO 9001 的每一個質量要素都可以對應到 CMM2 - 3 級中關鍵過程區域 [6] 的特征上。而 CMM 在生產過程中的管理重點,又彌補了 ISO9001 在微觀管理上的不足。另外 ISO9000 : 2000 版中增加的度量正好是 CMM 第四級強調的重點。所以,可以綜合考慮 ISO9000 和 CMM 的質量管理要求,在建立企業的標準過程時,根據企業的商業目標,建立符合 ISO 9001 或 CMM 的質量目標和管理體系,為企業通過 ISO 9000 認證或 CMM 認證提供技術支持。
4.2 CMM與 ISO9000 的主要區別:4.2.1 CMM 是專門針對軟件產品開發和服務的,而 ISO9000 涉及的范圍則相當寬。
4.2.2 CMM 強調軟件開發過程的成熟度,即過程的不斷改進和提高。而 ISO9000 則強調可接收的質量體系的最低標準。
5 CMM 在國內的應用 5.1 CMM 在中國自從 IBM 與清華大學合資的北京鼎新信息技術有限公司于 1999 年首先通過 CMM2 級評估以來, CMM 在我國軟件企業中越來越得到重視和應用。
到 2002 年 3 月底,我國通過 CMM 評估的企業已有 19 家,其中 5 級兩家(摩托羅拉中國軟件中心以及摩托羅拉電信運營方案部亞太區應用研發中心), 4 級一家( 華為公司印度所), 3 級三家(東軟股份、聯想軟件事業部以及托普軟件), 2 級十幾家。
5.2 國內 CMM 認證鼓勵政策國務院關于 “ 鼓勵軟件產業和集成電路產業發展的若干政策 ” 18 號文件出臺后,各地根據文件精神,陸續制定了 CMM 認證方面的鼓勵政策,依據各地的不同情況,具體補貼金額有所不同。
• 北京市軟件產業基地 2001 年對基地確定的重點企業通過二級認證的,由科技經費給予 20 萬元左右的補貼,對通過三級認證的企業給予 30 萬元左右的補貼。北京中關村科技園區海 淀園管委會對在海淀園登記注冊的新技術企業通過 CMM 認證的,給予 10 萬元的獎勵。
• 珠海 : 對通過 CMM2 級的企業一次性補貼 50 萬元。
• 廣州:通過 CMM 的企業一次性獎勵 30 萬元
上海:對通過 CMM-3 補助 40 萬; CMM-4 補助 60 萬; CMM-5 補助 80 萬元。
6 CMM 的投入及產出分析這個問題很難一概而論,需要了解企業的軟件過程實施狀況、企業規模等情況后,根據企業的實際情況而定。
6.1 CMM 投入6.1.1 資金投入
軟件組織在實施 CMM 中的資金投入(即合同報價)包括以下費用:
a. 主任評估師勞務費;
b. 主任評估師國際差旅、食宿費用;
c. 國內專家咨詢費用;
d. 向 SEI 購買評估包的費用;
e. 工作成本(外聯、印刷、交通等)
f. 合同金額的國內應納稅金等
6.1.2 人力投入
同樣,軟件組織在實施 CMM 的人力投入同樣取決于多種因素,如:公司項目壓力、相關人員的資歷、已有的項目管理規范的執行情況、 CMM 實施范圍等等。
根據 CMU/SEI 的統計 , 軟件組織在引用實施 CMM 的投入產出比為 1 : 4 - 1: 8.8 平均為 1 : 5 。僅從這一點上看, CMM 本身就是一種高費效比的投資。
美國宇航局的一份資料表明,隨著某機構軟件過程的改進,軟件開發周期縮短 38% ;典型任務成本從 490 人 / 月降為 210 人 / 月,即降低 55% ;產品可靠性明顯提高,平均每千行代碼所含差錯數從 4.5 個降為 1 個。
國外著名企業如路透集團在調查其實施 CMM 的軟件組織后認為: 組織的失誤率大幅降低,且管理費用就下降了 20 %。路透集團全球范圍內總共有三千多個軟件開發人員,在過去的四年當中花了三億個人時用于軟件過程改進,總體說來總共節約了百分之十左右的成本。摩托羅拉總裁在總結自身企業實施 CMM 的受益時說: “ 對 CMM 每一個美金的投入都獲得了十倍的回報。 ”
6.2 聯想軟件獲得 CMM3 級的投入及產出分析 聯想軟件 2001 年全年開發總成本 = 3033 萬 RMB
節約成本= 3033 ÷ ( 1-0.09 )- 3033 = 300 萬, 0.09 為成本降低率。
CMM 投入: 2001 年 CMM 總投入為 188 萬 .
CMM 效益: 300-188=112 萬
CMM 投入 / 產出: 188/300 = 0.63
CMM 對質量和生產效率的影響:
2001 年 12 月比 1 月,生產效率提高 10% ,質量提高 22% 。
• 軟件項目的成本控制
• 軟件生產周期
• 實現企業軟件生產體系的建設
• 企業市場競爭力的增強
• 接受國外定單的能力
• 企業形象
• 長期收益
文章來源于領測軟件測試網 http://www.kjueaiud.com/