CMM(Capability Maturity Model) 能力成熟度模型

CMM與軟件維護管理(一)
 
        什麼是能力成熟度模型  CMM是指“能力成熟度模型”,是對於軟件組織在定義、實施、度量、控制和改善其軟件過程的實踐中各個發展階段的描述。CMM的核心是把軟件開發視爲一個過程,並根據這一原則對軟件開發和維護進行過程監控和研究,以使其更加科學化、標準化、使企業能夠更好地實現商業目標。
  CMM是一種用於評價軟件承包能力並幫助其改善軟件質量的方法,側重於軟件開發過程的管理及工程能力的提高與評估。CMM分爲五個等級:一級爲初始級,二級爲可重複級,三級爲已定義級,四級爲已管理級,五級爲優化級。
  其所依據的想法是:只要集中精力持續努力去建立有效的軟件工程過程的基礎結構,不斷進行管理的實踐和過程的改進,就可以克服軟件生產中的困難。CMM它是目前國際上最流行、最實用的一種軟件生產過程標準,已經得到了衆多國家以及國際軟件產業界的認可,成爲當今企業從事規模軟件生產不可缺少的一項內容。
  CMM爲軟件企業的過程能力提供了一個階梯式的改進框架,它基於過去所有軟件工程過程改進的成果,吸取了以往軟件工程的經驗教訓,提供了一個基於過程改進的框架;它指明瞭一個軟件組織在軟件開發方面需要管理哪些主要工作、這些工作之間的關係、以及以怎樣的先後次序,一步一步的做好這些工作而使軟件組織走向成熟。

能力成熟度模型的歷史和發展

  信息時代,軟件質量的重要性越來越爲人們所認識。軟件是產品、是裝備、是工具,其質量使得顧客滿意,是產品市場開拓、事業得以發展的關鍵。而軟件工程領域在1992年至1997年取得了前所未有的進展,其成果超過軟件工程領域過去15年來的成就總和。
  軟件管理工程引起廣泛注意源於20世紀70年代中期。當時美國國防部曾立題專門研究軟件項目做不好的原因,發現70%的項目是因爲管理不善而引起,而並不是因爲技術實力不夠,進而得出一個結論,即管理是影響軟件研發項目全局的因素,而技術隻影響局部。到了20世紀90年代中期,軟件管理工程不善的問題仍然存在,大約只有10%的項目能夠在預定的費用和進度下交付。軟件項目失敗的主要原因有:需求定義不明確;缺乏一個好的軟件開發過程;沒有一個統一領導的產品研發小組;子合同管理不嚴格;沒有經常注意改善軟件過程;對軟件構架很不重視;軟件界面定義不善且缺乏合適的控制;軟件升級暴露了硬件的缺點;關心創新而不關心費用和風險;軍用標準太少且不夠完善等等。在關係到軟件項目成功與否的衆多因素中,軟件度量、工作量估計、項目規劃、進展控制、需求變化和風險管理等都是與工程管理直接相關的因素。由此可見,軟件管理工程的意義至關重要。
  1987年,美國卡內基. 梅隆大學軟件研究所(SEI)受美國國防部的委託,率先在軟件行業從軟件過程能力的角度提出了軟件過程成熟度模型(CMM),隨後在全世界推廣實施的一種軟件評估標準,用於評價軟件承包能力並幫助其改善軟件質量的方法。它主要用於軟件開發過程和軟件開發能力的評價和改進。它側重於軟件開發過程的管理及工程能力的提高與評估。CM自1987年開始實施認證,現已成爲軟件業最權威的評估認證體系。CMM包括5個等級,共計18個過程域,52個目標,300多個關鍵實踐

CMM的基本思想

  CMM的基本思想是,因爲問題是由我們管理軟件過程的方法引起的,所以新軟件技術的運用不會自動提高生產率和利潤率。CMM有助於組織建立一個有規律的、成熟的軟件過程。改進的過程將會生產出質量更好的軟件,使更多的軟件項目免受時間和費用的超支之苦。
  軟件過程包括各種活動、技術和用來生產軟件的工具。因此,它實際上包括了軟件生產的技術方面和管理方面。CMM策略力圖改進軟件過程的管理,而在技術上的改進是其必然的結果。
  必須牢記,軟件過程的改善不可能在一夜之間完成,CMM是以增量方式逐步引入變化的。CMM明確地定義了5個不同的“成熟度”等級,一個組織可按一系列小的改良性步驟向更高的成熟度等級前進。
  成熟度等級1:初始級(Initial)。處於這個最低級的組織,基本上沒有健全的軟件工程管理制度。每件事情都以特殊的方法來做。如果一個特定的工程碰巧由一個有能力的管理員和一個優秀的軟件開發組來做,則這個工程可能是成功的。然而通常的情況是,由於缺乏健全的總體管理和詳細計劃,時間和費用經常超支。結果,大多數的行動只是應付危機,而非事先計劃好的任務。處於成熟度等級1的組織,由於軟件過程完全取決於當前的人員配備,所以具有不可預測性,人員變化了,過程也跟着變化。結果,要精確地預測產品的開發時間和費用之類重要的項目,是不可能的。
  成熟度等級2:可重複級(Repeatable)。在這一級,有些基本的軟件項目的管理行爲、設計和管理技術是基於相似產品中的經驗,故稱爲“可重複”。在這一級採取了一定措施,這些措施是實現一個完備過程所必不可缺少的第一步。典型的措施包括仔細地跟蹤費用和進度。不像在第一級那樣,在危機狀態下方行動,管理人員在問題出現時便可發現,並立即採取修正行動,以防它們變成危機。關鍵的一點是,如沒有這些措施,要在問題變得無法收拾前發現它們是不可能的。在一個項目中採取的措施也可用來爲未來的項目擬定實現的期限和費用計劃。
  成熟度等級3:已定義級(Defined)。在第3級,已爲軟件生產的過程編制了完整的文檔。軟件過程的管理方面和技術方面都明確地做了定義,並按需要不斷地改進過程,而且採用評審的辦法來保證軟件的質量。在這一級,可引用CASE環境來進一步提高質量和產生率。而在第—級過程中,“高技術”只會使這一危機驅動的過程更混亂。
  成熟度等級4:已管理級(Managed)。一個處於第4級的公司對每個項目都設定質量和生產目標。這兩個量將被不斷地測量,當偏離目標太多時,就採取行動來修正。利用統計質量控制,管理部門能區分出隨機偏離和有深刻含義的質量或生產目標的偏離(統計質量控制措施的一個簡單例子是每千行代碼的錯誤率。相應的目標就是隨時間推移減少這個量)。
  成熟度等級5:優化級(Optimizing)。—個第5級組織的目標是連續地改進軟件過程。這樣的組織使用統計質量和過程控制技術作爲指導。從各個方面中獲得的知識將被運用在以後的項目中,從而使軟件過程融入了正反饋循環,使生產率和質量得到穩步的改進。
  整個企業將會把重點放在對過程進行不斷的優化,採取主動的措施去找出過程的弱點與長處,以達到預防缺陷的目標。同時,分析各有關過程的有效性資料,作出對新技術的成本與效益的分析,並提出對過程進行修改的建議。達到該級的公司可自發的不斷改進,防止同類缺陷二次出現。
  在表中可以看出,CMM爲軟件的過程能力提供了一個階梯式的改進框架,它基於以往軟件工程的經驗教訓,提供了一個基於過程改進的框架圖,它指出一個軟件組織在軟件開發方面需要那些主要工作,這些工作之間的關係,以及開展工作的先後順序,一步一步的做好這些工作而使軟件組織走向成熟。CMM的思想來源於已有多年曆史的項目管理和質量管理,自產生以來幾經修訂,成爲軟件業具有廣泛影響的模型,並對以後項目管理成熟度模型的建立產生了重要的影響。儘管已有個人或團體提出了各種各樣的成熟度模型,但還沒有一個象CMM那樣在業界確立了權威標準的地位。但PMI於2003年發佈的OPM3以其立體的模型及涵蓋範圍的廣泛有望成爲項目管理界的標準。

實施CMM的必要性

  軟件開發的風險之所以大,是由於軟件過程能力低,其中最關鍵的問題在於軟件開發組織不能很好地管理其軟件過程,從而使一些好的開發方法和技術起不到預期的作用。而且項目的成功也是通過工作組的傑出努力,所以僅僅建立在可得到特定人員上的成功不能爲全組織的生產和質量的長期提高打下基礎,必須在建立有效的軟件如管理工程實踐和管理實踐的基礎設施方面,堅持不懈地努力,才能不斷改進,才能持續地成功。
  軟件質量是一模糊的、捉摸不定的概念。我們常常聽說:某某軟件好用, 某某軟件不好用;某某某軟件功能全、結構合理, 某某某軟件功能單一、操作困難……這些模模糊糊的語言不能算作是軟件質量評價,更不能算作是軟件質量科學的定量的評價。軟件質量,乃至於任何產品質量,都是一個很複雜的事物性質和行爲。產品質量,包括軟件質量,是人們實踐產物的屬性和行爲,是可以認識,可以科學地描述的。可以通過一些方法和人類活動,來改進質量。
  實施CMM是改進軟件質量的有效方法:控制軟件生產過程、提高軟件生產者組織性和軟件生產者個人能力的有效合理的方法軟件工程和很多研究領域及實際問題有關,主要相關領域和因素有:需求工程(REQUIREMENTS ENGINEERING)。理論上,需求工程是應用已被證明的原理、技術和工具,幫助系統分析人員理解問題或描述產品的外在行爲。軟件複用(SOFTWARE REUSE),定義爲利用工程知識或方法,由一已存在的系統,來建造一新系統。這種技術,可改進軟件產品質量和生產率。還有軟件檢查、軟件計量、軟件可靠性、軟件可維修性、軟件工具評估和選擇等。

CMM基本概念

  CMM由低至高共分爲5個級別:初始級、可重複級、定義級、管理級和優化級
  CMMI(Capability Maturity Model Integration,能力成熟度模型集成)
  將各種能力成熟度模型,即:Software CMM、Systems Eng-CMM、People CMM和Acquisition CMM,
  整合到同一架構中去,由此建立起包括軟件工程、系統工程和軟件採購等在內的諸模型的集成,
  以解決除軟件開發以外的軟件系統工程和軟件採購工作中的迫切需求。
  CMMI框架包括軟件能力成熟度模型CMM 2.0草案,系統工程能力成熟度模型,軟件採購能力成熟度模型,繼承產品和過程開發等。
  CMMI的:“關鍵過程域”25個,“目標”105個, “關鍵實踐”485條。
  CMMI的評估方式:
  自我評估:用於本企業領導層評價公司自身的軟件能力。
  主任評估:使本企業領導層評價公司自身的軟件能力,向外宣佈自己企業的軟件能力
  CMMI的評估類型:
  軟件組織的關於具體的軟件過程能力的評估。
  軟件組織整體軟件能力的評估(軟件能力成熟度等級評估)。
  CMMI的基本思想
  1、解決軟件項目過程改進難度增大問題
  2、實現軟件工程的並行與多學科組合
  3、實現過程改進的最佳效益

 
  背景介紹: CMM是“軟件能力成熟度模型”的英文簡寫,該模型由美國卡內基-梅隆大學的軟件工程研究所(簡稱SEI)受美國國防部委託,於1991年研究制定,初始的主要目的是爲了評價美國國防部的軟件合同承包組織的能力,後因爲在軟件企業應用CMM模型實施過程改進取得較大的成功,所以在全世界範圍內被廣泛使用,SEI同時建立了主任評估師評估制度,CMM的評估方法爲CBA-IPI。
  CMMI是SEI於2000年發佈的CMM的新版本。CMMI不但包括了軟件開發過程改進,還包含系統集成、軟硬件採購等方面的過程改進內容。CMMI糾正了CMM存在的一些缺點,使其更加適用企業的過程改進實施。CMMI適用SCAMPI評估方法。需要注意的是,SEI沒有廢除CMM模型,只是停止了CMM評估方法:CBA-IPI。現在如要進行CMM評估,需使用SCAMPI方法。但CMMI模型最終代替CMM模型的趨勢不可避免。
  標準特點: CMM/CMMI/SPCA的思想來源於已有多年曆史的產品質量管理和全面質量管理。Watts Humphrey和Ron Radice在IBM公司將全面質量管理的思想應用於軟件工程過程,收到了很大的成效。SEI的軟件能力成熟度框架就是在以Humphrey爲主的軟件專家實踐經驗的基礎上發展而來的。軟件能力成熟度模型中融合了全面質量管理的思想,以不斷進化的層次定量控制中項目管理和項目工程的基本原則。CMM/CMMI/SPCA所依據的想法是隻要不斷地對企業的工程過程的基礎結構和實踐進行管理和改進,就可以克服軟硬件生產中的困難,增強開發製造能力,從而能按時地、不超預算地製造出高質量的軟件產品。
  CMM簡介
  CMM(Capability Maturity Model)是能力成熟度模型的縮寫,CMM是國際公認的對軟件公司進行成熟度等級認證的重要標準。CMM的工作最早開始於86年11月,當時爲滿足美國政府評估軟件供應商能力並幫助其改善軟件質量的要求,由美國國防部資助的卡內基—梅隆大學的軟件工作研究所(SEI)牽頭,在Mitre公司協助下,於87年9月發佈了一份能力成熟度框架(Capability Maturity Framework)以及一套成熟度問卷(Maturity Questionnaire)。四年後,SEI在總結自87年以來對成熟度框架和初版成熟度問卷的經驗基礎上,推出了CMM1.0版。CMM1 0版在成熟度框架的基礎上建立了一個可用的模型,該模型可以更加有效地幫助軟件公司建立和實施過程改進計劃。兩年後,SEI於93年推出了CMM1.1版。近幾年,SEI又推出了CMM2.0版,同時進入了ISO體系,稱爲ISO/IEC15504(軟件過程評估)。
  CMM共分五級。在每一級中,定義了達到該級過程管理水平所應解決的關鍵問題和關鍵過程。每一較低級別是達到較高級別的基礎。其中五級是最高級,即優化級,達到該級的軟件公司過程可自發地不斷改進,防止同類問題二次出現;四級稱爲已管理級,達到該級的軟件公司已實現過程的定量化;三級爲已定義級,即過程實現標準化;二級爲可重複級,達到該級的軟件公司過程已制度化,有紀律,可重複;一級爲初始級,過程無序,進度、預算、功能和質量等方面不可預測。
  CMM致力於軟件開發過程的管理和工程能力的提高與評估。該模型在美國和北美地區已得到廣泛應用,同時越來越多的歐洲和亞洲等國家的軟件公司正積極採納CMM,CMM實際上已成爲軟件開發過程改進與評估事實上的工業標準。如今,全球通過CMM五級評估的軟件公司大約有十幾家,三級以上的大約有100餘家,通過二級評估的有300家左右。軟件大國印度在這方面工作開展的比較廣泛,受益匪淺。目前,我國只有清華同方和IBM的合資公司——鼎新信息開發有限公司於99年7月通過CMM二級評估,該公司表示將爭取早日通過CMM三級評估。
  CMM與ISO9000的主要區別:
  1.CMM是專門針對軟件產品開發和服務的,而ISO9000涉及的範圍則相當寬。
  2.CMM強調軟件開發過程的成熟度,即過程的不斷改進和提高。而ISO9000則強調可接收的質量體系的最低標準。
  引進CMM的主要意義
  一.對軟件公司
  1.提高軟件公司軟件開發的管理能力,因爲CMM可提供軟件公司自我評估的方法和自我提高的手段。
  2.提高軟件生產率。
  3.提高軟件質量。
  4.提高軟件公司的國內和國際競爭力。
  二.對軟件項目發包單位和軟件用戶
  提供了對軟件開發商開發管理水平的評估手段,有助於軟件開發項目的風險識別。
  我國CMM工作的開展相對滯後,全面正式開展CMM評估工作還需一定時間,但只是遲早的問題。業內有識之士呼籲我國應結合國情,及早開展CMM有關工作。我公司作爲西安地區軟件業龍頭企業,應學習、消化和借鑑CMM有關管理思想和方法等先進知識,結合公司ISO9000質量管理等具體工作,不斷改進和完善我公司的管理體系,推動我公司各項工作全面發展,併爲我公司早日正式開展CMM評估工作打下良好的基礎。反映了軟件過程

補充:

  CMM在空氣流量中還可以表示每分鐘送出或吸入的空氣總體積,如果按立方英尺來計算,單位就是CFM;如果按立方米來算,就是CMM。相當於m3/min。
  CMM與RUP的關係:
  RUP是過程框架,RUP能達到CMM2-3級的要求,RUP描述了軟件開發中的過程,即軟件開發中需要遵循的規則,模板,方法等;CMM不是過程,而是檢驗過程成熟度的標準.
  風量的常用單位爲:CMM(立方米每分) CMH(立方米每時) CFM(立方英尺每分) LM(升每分鐘)
  換算:1CMM=60CMH=35.245CFM=1000LM

關鍵過程域:

  CMM2:可重複階段
  需求管理:requrement management
  軟件項目計劃:software project planning
  軟件項目跟蹤和監督:software project tracking oversight
  軟件子合同管理:software subcontract management
  軟件質量保證:software quanlity assurance
  軟件配置管理:software configuratione management
  CMM3:已定義階段
  組織過程焦點:organization process focus
  組織過程定義:organization process definition
  培訓大綱:training program
  集成軟件管理:intergrated software management
  軟件產品工程:software product engineering
  組間協調:intergroup coordination
  同行評審:peer review
  CMM4:已管理階段
  定量管理過程:quantitative process management
  軟件質量管理:software quality management
  CMM5:優化階段
  缺陷預防:defect prevention
  技術改革管理:technology change management
  過程更改管理:process change management
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章