日前,國務院發布的《鼓勵軟件產業和集成電路產業發展的若幹政策》第17條稱,對軟件出口型企業CMM認證費用予以適當支持。什麽是CMM?CMM是capabilityMaturityModel的簡稱,是壹種評估軟件承包能力並幫助其提高軟件質量的方法,側重於軟件開發過程的管理和工程能力的提高與評價。CMM分為五個層次:第壹層次是初始層次,第二層次是可重復層次,第三層次是定義層次,第四層次是管理層次,第五層次是優化層次。CMM由美國卡內基梅隆大學軟件工程研究所於1987年研制成功。它是國際上最流行、最實用的軟件生產過程標準和軟件企業成熟度等級認證標準。目前,我國現有的軟件企業都已經通過了CMM標準認證。
********************************************
CMM是壹個軟件過程能力成熟度模型。
但是這個東西被上壹期csdn雜誌的壹篇文章鄙視了。
CMM簡介
CMM是軟件過程能力成熟度模型(Software process Capacity Maturity Model)的簡稱,由卡內基梅隆大學軟件工程研究所於1986年為滿足聯邦政府評估軟件供應商能力的要求而啟動,CMM版本1.0於1991年正式推出。CMM自問世以來就備受關註,在壹些發達國家和地區得到了廣泛的應用。它已經成為衡量軟件公司軟件開發和管理水平的重要參考因素,成為軟件過程改進事實上的行業標準。據了解,美國、印度、日本等國家已有數十家公司通過了不同程度的CMM認證。
1986 165438+10月,SEI應美國聯邦政府的要求,在Mitre公司的協助下,於1987年9月開發了軟件能力成熟度框架和軟件問卷能力成熟度模型,用於評估軟件供應商的能力。這是最早用來探索軟件過程成熟度的工具。
四年後,也就是1991年,SEI總結了CMM成熟度框架的實踐經驗和第壹版成熟度問卷,並在此基礎上推出了民用CMM1.0版本。
CMM1.0使用兩年後,1992年4月,SEI召開了CMM新研討會,約200名有經驗的軟件專家參加。SEI在廣泛聽取他們的意見後,在1993中推出了CMM1.1。這也是目前國際上比較流行和通用的CMM版本。
這項工作已經進行了十多年。按照SEI的原計劃,CMM的改進版2.0應該在6月1997 11完成,然後在獲得2.0版本的實用反饋後,準CMM 2.0應該在6月1999完成。然而,美國國防部辦公室要求SEI推遲發布CMM 2.0版本,並先完成壹個更緊急的項目CMMI。
CMMI(Capability Maturity Model Integration)是能力成熟度模型的集成,這也是美國國防部的壹個想法。他們希望將所有現有的和未來的能力成熟度模型集成到壹個框架中。這個框架有兩個作用:壹是軟件采購方式的改革;其次,從集成產品和流程開發的角度建立流程改進,包括完善的系統開發原則。
隨著人們對CMM研究的深入,其他學科也結合本系統的特點推出了自己的CMM模型。比如人力資源能力成熟度模型,系統工程能力成熟度模型等等。為了表示區別,國內外很多資料都稱CMM為SW-CMM。
軟件過程成熟度的提高是壹個漸進的過程,需要壹個長期的、可持續發展的過程作為保障。為了建立面向過程的基礎和持續改進的文化,壹些軟件公司可能會花費大量的精力和時間。但是這種努力對於任何軟件企業來說都是非常必要的。
CMM目前代表了壹種軟件開發的思想和壹種提高軟件過程能力的方法。雖然它有壹些缺點。例如,成熟度級別、關鍵過程領域、公共屬性和關鍵實踐需要在軟件行業中進壹步討論和修訂,但它確實為軟件行業的發展提供了壹個很好的框架,是提高軟件過程能力的有用工具。
增強中國軟件企業的競爭力,提高國產軟件的水平,是國人的共同願望,但中國軟件的水平,尤其是軟件開發和軟件生產的能力還很差,這也是不爭的事實。那麽,如何提高我國軟件的開發和生產能力,從而提高軟件的整體水平?這可能是軟件企業實施CMM的有效途徑。
企業的軟件能力更多的取決於其過程能力,尤其是軟件開發和生產的成熟度。其過程能力越成熟,其軟件生產能力就越有保障。目前,國內壹些軟件企業正在嘗試實施CMM。
當然,CMM不是萬能的,也不壹定適合所有的軟件企業。實施CMM的企業也有失敗的例子。我們希望通過這個欄目,讓更多的企業了解CMM,盡快找到適合自己企業的發展道路,從而提高中國軟件企業的競爭力。
**********************************************
畫個圖:(CMM五層結構圖)
-
/優化級別/
/ (5) /
-
↑
持續改進的過程
|
-
/可管理水平/
/ (4) /
-
↑
可預見的過程
|
-
/分級/
/ (3) /
-
↑
標準化的過程
|
-
/可重復/
/ (2) /
-
↑
嚴格的程序
|
-
/初始級別/
/ (1) /
-
*********************************************
CMM,即能力成熟度模型,是軟件工程研究中的壹個重要裏程碑。CMM的研究始於1986 11。當時為了滿足美國聯邦政府評估軟件供應商能力的要求,卡內基梅隆大學軟件工程研究所(SEI)在Mitre公司的協助下,不到壹年就發布了能力成熟度框架(Capability)。
很多人認為這套問卷代表了CMM模型。實際上,它只是壹個探索軟件過程成熟度的工具。四年後真正的模型出現了。SEI總結了1987以來成熟度框架和第壹版成熟度問卷的實踐經驗,並在此基礎上推出了CMM1.0。CMM1於1991推出,整合了過去四年評估軟件公司的經驗和廣泛的用戶反饋,在成熟度框架的基礎上建立了壹個可用的模型,可以幫助軟件公司更有效地建立和實施過程改進計劃。
CMM1.0使用兩年後,1992年4月舉辦了壹次研討會,約200名有經驗的軟件專業人士參加。SEI在廣泛聽取了他們的反饋後,在1993推出了CMM1.1。近年來,CMM發布了2.0版本,進入ISO體系,稱為ISO/IEC15504或SPICE。SPICE從1995開始進入外場測試階段,可能在2001發布。
CMM致力於軟件開發過程的管理和工程能力的提高和評價。這種模式已經在美國和北美得到了廣泛的應用,並且正在被歐洲和亞洲越來越多的大型信息技術企業所采用。事實上,它已經成為軟件開發過程改進和評估的事實上的工業標準。
CMM將軟件過程的成熟度分為五個層次,以下是五個層次的軟件機構的特征:
(1)初期工作無序,項目進行過程中往往會放棄原計劃。管理雜亂無章,缺乏完善的管理體系。開發項目的結果是不穩定的,優秀管理者的管理方法可能是有效的,但他壹旦離開,工作秩序就面目全非,產品的性能和質量取決於個人的能力和行為。
(2)可重復管理制度化,建立了基本的管理規章制度,管理工作有章可循。初步實現了標準化,標準在開發工作中得到了很好的貫徹。變更應當依法進行,以達到基線。穩定且可追溯,新項目的規劃和管理都是基於以往的實踐經驗,具備重復以往成功項目的環境和條件。
(3)定義的開發過程,包括技術工作和管理工作,已經標準化並形成文件。建立了完善的培訓體系和專家評估體系。所有的技術活動和管理活動都是可以控制的,對在建項目的流程、崗位、職責都有相同的認識。
(4)已為管理的產品和過程建立了量化的質量目標。流程中活動的生產率和質量是可以衡量的。工藝數據庫已經建立。實現了對項目產品和過程的控制。預測過程和產品質量趨勢,如預測偏差,並實現及時糾正。
(5)優化可以集中精力改進工藝,采用新的技術和方法。有辦法預防缺陷,找出薄弱環節並加以改進。可以獲得過程有效性的統計數據並進行分析,從而得到最佳方法。
印度是壹個軟件大國,非常重視軟件開發過程的管理以及相關理論和標準的制定。據統計,印度2000多家軟件公司中,通過ISO9000認證的有75家,通過CMM認證的有60多家,其中達到CMM 5級的有1家,達到CMM 4級的有3家,達到CMM 3級的有4家。
CMM和ISO9000的主要區別如下:
1.CMM是專門為軟件產品開發和服務設計的,而ISO9000的範圍要廣得多。
2.CMM強調軟件開發過程的成熟度,即過程的持續改進和完善,而ISO9000只描述了可接受的質量體系的最低標準。
3.3的覆蓋率。CMM3大於ISO9000。
引入CMM的意義;
1.對於軟件企業:
提高軟件開發的管理能力:CMM為軟件企業提供了自我評估的方法和自我改進的手段。
提高軟件生產率
增強軟件生產的國際競爭力
2.對於軟件項目承包單位和軟件用戶:
它提供了壹種評價軟件開發商開發管理水平的手段,有助於識別軟件開發項目的風險。
***********************************************
隨著人們對CMM研究的深入,其他學科也結合本系統的特點推出了自己的CMM模型。比如人力資源能力成熟度模型,系統工程能力成熟度模型等等:
(1)軟件坐標測量機(軟件坐標測量機)
(2) SE-CMM(系統工程CMM)系統工程CMM。
(3) SA-CMM(軟件采購CMM)軟件采購CMM。
(4) ipt-CMM(集成產品團隊CMM)集成產品組CMM。
(5) P-CMM (People CMM)人力資源能力成熟度模型。
為了表示區別,國內外很多資料都稱CMM為SW-CMM。按照SEI的原計劃,CMM的改進版2.0應該在6月1997 11完成,然後在獲得2.0版本的實用反饋後,準CMM 2.0應該在6月1999完成。然而,美國國防部辦公室要求SEI推遲發布CMM 2.0版本,並先完成壹個更緊急的項目CMMI。
CMMI(Capability Maturity Model Integration)是能力成熟度集成模型,也是美國國防部的壹個想法。他們希望將所有現有的和未來的能力成熟度模型集成到壹個框架中。這個框架有兩個功能:壹是軟件采購方式的改革;其次,從集成產品和流程開發的角度建立流程改進,包括完善的系統開發原則。就軟件而言,CMMI是SW-CMM的修訂版。它結合了SW-CMM 2.0c版草案和SPA的優點,更加合理、科學、徹底。當SEI發布CMMI-SE/SW 1.0時,宣布大約需要兩年時間完成從CMM到CMMI的過渡。
CMMI項目為行業和政府部門提供了壹個集成的產品集,其主要目的是消除不同模型之間的不壹致和重復,降低基於模型的改進成本。CMMI將使用壹個更加系統和壹致的框架來指導組織改進軟件流程,提高產品和服務的開發、獲取和維護能力。
*********************************************
CMM的發展過程
1984為了降低采購風險,美國國防部委托卡內基梅隆大學軟件工程研究所(SEI)開發了壹種軟件過程改進和評估模型,也稱為SEI SW-CMM。該模型於1991正式上線,並迅速得到軟件企業及其客戶的認可。從1987開始,SEI於2000年在1991、1993、CMMI-SE/SW1中引入了SW-CMM框架。2001年4月,我國也發布了《SJ/t 11234-2006 54 38+0軟件過程能力評估模型》和《SJ/t 1654 38+0235-2006 54 38+0軟件能力成熟度模型》。我國政府壹直非常重視軟件產業的規範和發展。2000年6月,國務院發布“18號文件”,第五章第十七條明確提出,鼓勵軟件出口型企業通過ISO9000系列質量保證體系認證和CMM認證,其認證費用由中央外貿發展基金給予適當支持。目前各省、市、高新區、軟件園都有對通過CMM的企業給予資金獎勵的制度。
**********************************************
CMM的含義和功能
CMM是軟件能力成熟度模型(Capability Maturity Model for Software)的縮寫,中文稱為“軟件能力成熟度模型”,是對組織軟件過程能力的描述。CMM的核心是將軟件開發視為壹個過程,根據這壹原理對軟件開發和維護進行過程監控和研究,使其更加科學和規範,使企業更好地實現業務目標。它側重於軟件過程開發的管理和軟件工程能力的改進和評估,因此CMM用於評估軟件承包商的能力,幫助組織改進軟件過程的質量。它是目前國際上最流行、最實用的軟件過程改進模型,已經成為企業從事大型軟件生產不可或缺的內容。CMM的目的是幫助軟件企業管理和改進軟件工程過程,增強其開發和改進能力,從而在預算內按時開發出高質量的軟件。CMM模型的實施和評估可以給企業帶來以下好處:指導軟件組織提高軟件開發和管理能力;降低軟件承包商和購買者的風險;評估軟件承包商的軟件開發和管理能力;幫助軟件公司確定開發和維護軟件的有效過程和關鍵實踐;幫助軟件企業識別達到CMM更高成熟度所需的關鍵實踐;提高軟件企業的國際競爭力。
**********************************************
CMM的核心是什麽?在對軟件工程和過程改進感興趣的人中,這是壹個長期存在的問題。我在壹次CMM培訓中準備了壹個案例,希望把這個問題講的生動簡單,在這裏分享給大家,也希望大家多提問題。如果妳想重印,請給我壹個Email:JennyLi@netease.com。謝謝您們。案例背景:有壹間房子,裏面有壹些人,壹些杯子和水壺,還有燒水的器具。所有人都需要喝開水。CMM 1:流程:找杯子和水壺倒水。問題:找不到杯子,找不到水壺沒水喝不到水壺沒水——不知道壹天怎麽喝水——不知道倒壹杯水要多久,不知道大家每天倒水要多久——不知道怎麽想:買個飲水機能解決問題嗎?CMM二級:流程:把杯子放在茶幾上。把水壺放在餐桌上。如果沒有水,在廚房把杯子燒開,放回茶幾上。訓練:在廚房燒水。洗杯量壹下每天需要煮多少壺水。每人每次/每天倒水需要多長時間?有些人會檢查每個人用完杯子後是否洗幹凈並放回餐桌上。管理者關註這些活動的執行狀態和效果:燒水時間太長,喝效率不穩定,直到涼了。有的人Cmm三級:流程:大家先從茶幾上拿杯子,再從餐桌上倒水。每個人壹次在壹個大杯子裏倒兩杯水,和別人分享,指定專人定時燒水,指定專人定時收集和清洗冷水壺裏的杯子。問:我們怎樣才能做得更好?思考:買飲水機劃算嗎?CMM四級:流程:建立評估模型:節省1分鐘=節省1元錢。如果每人每天節省1分鐘,100人1個月(30天)可以節省3000元——只要每月支出不超過3000元,就可以嘗試壹個新的流程,定義壹個量化的管理目標:在三個月內,減少每人每天倒水的時間2分鐘,與當前每人每天倒水的時間建立壹個基線:平均10分鐘每個人都給自己定壹個高於平均水平的目標:我每天花在倒水上的時間不超過6分鐘,來衡量和監控我每天花在倒水上的時間。壹旦超過6分鐘,我要分析根本原因,做出。最終成績是8分鐘,超過預定目標,但好於平均水平。3個月後調整基線:平均8分鐘,最低4分鐘,最高15分鐘。問題:不改進我做不到!思考:買飲水機是不是最好的解決方案?CMM第五級:流程:尋找問題根源:倒水的時間不能少的原因是因為房間太大妳走太遠到餐桌找出所有能解決根本原因的方法,用評價模型評價選擇壹種方法,制定改進目標:客廳買10飲水機,每人每天節約2分鐘並制定相應流程:如果買飲水機,需要定時訂購瓶裝水。定期對飲水機出水口進行清洗消毒,並請人及時更換空桶。試用流程:先找幾個人試壹試,看能不能達到預期目標。讓大家用飲水機繼續找其他根源...問題:如何找到更多的根本原因,如何引入更多的新方法。思考:有沒有比飲水機更好的方法?
比喻二:
壹級:壹群人沒有受過訓練,不知道有沒有經驗。入水後,它們四處撲騰,有的漂浮,有的下沈。這是第壹層次的紊亂,結果是不可知的第二層次:每個人都在遊泳池或小池塘裏待過幾次,在這樣的條件下基本不會發生什麽。但是動作亂七八糟的,還有叫不出名字的狗刨。也就是說,第二關可以重復前面的成功經驗:經過研究,確定幾個標準的遊泳泳姿,知道自由泳最快,蛙泳最不省力,等等。這是第三個層次,定義第四個層次有壹個標準流程:每個人都掌握了標準動作後,就可以比較成績了。通過測量每個人的遊泳表現(當然不同泳姿的表現要分開)、肌肉力量等。,分析特別好的和不好的,找出好的和不好的原因,大家的技術水平不斷提高。這就是四級量化控制,通過數據對五級進行管理和改進:每個人的技術水平都很高,動作都很完美。我們將通過創造新的泳姿、推出新的泳衣和其他創新來提高我們的成績。這就是五級持續改進。
**********************************************
坐標測量機的結構
SW-CMM為軟件企業的過程能力提供了壹個逐步進化的框架,有五個步驟。第壹級其實是壹個起點,任何壹個打算按照CMM質量進化的企業,壹般都是在這個起點,通過這個起點,就會走向第二級。除了第壹關,每壹關都制定了壹套目標。如果達到了這壹套目標,就意味著已經達到了這個成熟的層次,可以向下壹個層次前進了。CMM體系並不提倡跨層次進化,因為從第二個層次來說,每壹個低層次的實現都是高層次實現的基礎。
SW-CMM提供了壹個逐步演進的框架。
1.初始階段的軟件過程是壹個未定義的隨機過程,項目的執行是隨機的,甚至是混沌的。或許,壹些企業制定了壹些軟件工程規範,但如果這些規範未能覆蓋基本的關鍵流程需求,且實施沒有政策和資源的保障,那麽仍被視為初級水平。
根據多年的經驗教訓,人們得出結論:軟件開發的首要問題不是技術,而是管理。因此,第二個層次側重於軟件管理過程。可管理的過程是可重復的過程,可重復的過程可以逐漸進化和成熟。二級管理流程包括需求管理、項目管理、質量管理、配置管理、分包管理五個方面。其中,項目管理分為兩個過程:計劃過程和跟蹤監控過程。通過實現這些過程,我們可以從管理的角度看到壹個有計劃、可控的軟件開發過程。
3.定義層只定義了第二層管理的基本流程,沒有定義實施步驟的標準。第三個層次,要求制定企業範圍的工程標準,無論是管理還是工程開發都需要壹套文檔化的標準,並將這些標準融入到企業軟件開發標準的過程中。所有開發的項目都需要按照這個標準流程裁剪出項目的流程,並實現這些流程。工藝的切割不是隨意的,需要經過企業相關人員的認可才能使用。
4.第四級管理是量化管理。所有過程都需要建立相應的度量方法,所有產品(包括工作產品和提交給用戶的產品)的質量都需要有明確的度量指標。這些度量應該是詳細的,並且可以用來理解和控制軟件過程和產品。量化控制將真正把軟件開發變成工業生產活動。
5.第五級優化的目標是達到持續改進的狀態。所謂持續改進,就是根據流程執行的反饋信息,對下壹個執行流程進行改進,也就是對執行步驟進行優化。如果壹個企業達到了這個水平,說明它能夠根據實際的項目性質、技術等因素不斷調整軟件生產過程,以達到最佳。
從效果上來說,軟件開發和生產的成熟,給上述不同階段的軟件企業帶來了完全不同的效果。從第壹階段到第五階段,軟件開發和生產的規劃精度越來越高,單位項目的生產周期越來越短,單位項目的成本越來越低。
關鍵過程面積(KPA)
除了第壹級,SW-CMM的每壹級都由完全相同的結構制成。每壹級都包含幾個關鍵過程領域(KPA)來實現這壹級的目標,每個KPA又進壹步包含幾個關鍵實施活動(KP)。無論是哪壹種KPA,它們的實施活動都是由五個共同的屬性來組織的,也就是說,每個KPA都包含五種類型的KP。
1.每個KPA都確定了壹套目標。如果這些目標在每個項目中都能實現,就意味著企業達到了這個KPA的要求。如果壹個級別的所有KPA要求都得到滿足,則表明該級別所需的容量已經達到。
2.實施保障實施保障是企業為了建立和實施相應的KPA而必須采取的活動。這些活動主要包括制定企業範圍的政策和高級管理層的責任。
3.實施能力實施能力是企業實施KPA的前提條件。企業必須采取措施,滿足這些條件後才有可能實施KPA實施活動。執行能力壹般包括資源保障、人員培訓等。
4.執行活動執行過程描述了執行KPA所需的必要角色和步驟。在五個屬性中,執行活動是唯壹與項目執行相關的屬性,其他四個屬性都與企業的CMM能力基礎設施的建立相關。執行活動壹般包括計劃、執行任務、跟蹤任務執行等。
5.度量分析度量分析描述了度量的過程和度量分析的要求。典型度量和度量分析的要求是確定執行活動的狀態和有效性。
6.實施驗證實施驗證是驗證實施活動是否與既定過程壹致。驗證的實施包括管理評審和審核以及質量保證活動。
在實施CMM時,可以根據企業軟件過程中存在問題的不同程度,確定實現KPA的順序,然後按照確定的順序逐步建立和實施相應的過程。當執行壹個KPA時,目標群體也可以逐步得到滿足。過程演化和逐漸成熟是CMM系統的目標。