CMM模型是基于多年產(chǎn)品質(zhì)量研究成果所建立。美國的Walter Shewart于上世紀(jì)30年代發(fā)表了統(tǒng)計(jì)質(zhì)量控制成果。在Watts
Hunaphrey和Ron
Radice等人的研究成果之上,卡萊基.梅隆大學(xué)軟件工程研究所將這套質(zhì)量控制方法改造為能力成熟度框架并標(biāo)明不同城市度等級,Humphrey并于
1987年發(fā)表了初步的成熟度提向單。1990年SEI公布CMM的0.0版。1991年SEI公布了包含第二級KPA方案的CMM0.4版及包含第三級
方案的CMM0.5版,同年,又發(fā)布了包含第四級和第五級KPA方案的0.7版。CMM1.0版于1991年底發(fā)布,1993年SEI公布CMM1.1
版。目前通行的版本是1.1版,改進(jìn)版2.0版原定于1997年完成,但由于CMMI(能力成熟度集成)的開發(fā),2.0版被推遲。
CMMI(Capability Maturity Model
Integration)將把各種能力成熟度模型整合到同一架構(gòu)中去,由此建立起包括軟件工程軟件采購和系統(tǒng)工程在內(nèi)的諸模型集成,以解決除軟件開發(fā)以外
的軟件系統(tǒng)工程和軟件采購工作中的迫切需求。CMMI框架包括軟件能力成熟度模型,系統(tǒng)工程能力成熟度模型,軟件采購能力成熟度模型,繼承產(chǎn)品
和過程開發(fā)等。1995年,個(gè)體軟件過程(Personal Software
Process,PSP)又被提出,用于控制和改進(jìn)個(gè)人軟件開發(fā)方式,PSP是一個(gè)過程描述、檢測和方法的集合,能夠幫助軟件工程師改善其個(gè)人軟件開發(fā)性
能。它包括一整套適用于個(gè)人軟件工作者在實(shí)踐中應(yīng)用的表格,腳本和標(biāo)準(zhǔn),以幫助軟件工程師預(yù)估和計(jì)劃其工作減少軟件工作缺陷并提高計(jì)劃和生產(chǎn)效率。CMM
是適用于軟件開發(fā)組織中的流程管理,而PSP則面向個(gè)體開發(fā)人員。本文的探討僅限于CMM軟件能力成熟度模型。
CMM的出現(xiàn)是為了克服軟件生產(chǎn)的危機(jī)。所謂軟件生產(chǎn)的危機(jī)是指盡管新的軟件開發(fā)方法和技術(shù)不斷生產(chǎn),但軟件生產(chǎn)率和質(zhì)量并未得到有效提高,軟件產(chǎn)品
不能按時(shí)完成,軟件生產(chǎn)預(yù)算超支,而且交付客戶使用的軟件產(chǎn)品(特別是大型軟件工程)中由于各種原因產(chǎn)生的錯(cuò)誤無法克服。在80年代末期前后,美國國防部
門和工業(yè)界開始認(rèn)識(shí)到在軟件開發(fā)中最重要的問題在于軟件生產(chǎn)商對軟件的生產(chǎn)過程管理不力,也就是說,軟件生產(chǎn)過程的成敗比新技術(shù)和開發(fā)方法更能決定一個(gè)項(xiàng)
目或企業(yè)的成敗。沒有完善的軟件生產(chǎn)過程體系,軟件開發(fā)的成敗只能依靠人為主觀或偶然因素--比如某一杰出軟件天才或小組的成就--而非可持續(xù)的客觀標(biāo)準(zhǔn)
及體系,因此,對成功的軟件過程的重復(fù)使用,對以往經(jīng)驗(yàn)或教訓(xùn)的分析總結(jié),對全部開發(fā)案例的系統(tǒng)編檔存檔就成了一套完整而成熟的軟件過程,需要一個(gè)從無序
到有序,從人為到客觀標(biāo)準(zhǔn),從定性到定量的不斷積累與完善的過程,這一過程的演變中軟件企業(yè)會(huì)面臨一系列有代表意義的成熟階段。美國SEI提出的軟件能力
的評價(jià)與改進(jìn)指導(dǎo)體系。軟件開發(fā)企業(yè)可以依據(jù)CMM的框架對項(xiàng)目管理和項(xiàng)目工程進(jìn)行定量控制和能力評估,而軟件應(yīng)用單位也可依據(jù)CMM來衡量和預(yù)測項(xiàng)目承
接方的實(shí)際軟件生產(chǎn)能力。這樣,軟件開發(fā)方與產(chǎn)品用戶方都基于一個(gè)同樣的標(biāo)準(zhǔn)來對軟件生產(chǎn)和管理作評測與控制。大體來說,軟件開發(fā)企業(yè)在以CMM為標(biāo)準(zhǔn)改
進(jìn)其生產(chǎn)過程中應(yīng)采取如下步驟:
1. 領(lǐng)會(huì)CMM要領(lǐng)并依據(jù)其框架確定企業(yè)目前所屬的實(shí)際能力成熟度級別;
2. 針對欲達(dá)到的成熟度級別的核心過程域的要求并參照自身的薄弱環(huán)節(jié)將重復(fù)重點(diǎn)集中在關(guān)鍵目標(biāo)上改進(jìn)生產(chǎn)過程;
3. 加強(qiáng)員工培訓(xùn)
4. 有序地建立完善的過程檢測體系與軟件開發(fā)文檔體系,保證以往開發(fā)經(jīng)驗(yàn)得到客觀化,定量化的分析總結(jié)和積累,使成功的開發(fā)模式可以得到規(guī)模化的拷貝。
隨著企業(yè)CMM成熟度等級的提高,項(xiàng)目開發(fā)中的風(fēng)險(xiǎn)可以得到逐步減低,開發(fā)時(shí)間也大大縮短,開發(fā)成本得以減少并大大降低軟件產(chǎn)品中的錯(cuò)誤發(fā)生率。
CMM不僅可以提高企業(yè)在國際市場上的軟件出口競爭力,也可提高企業(yè)自身的軟件管理與開發(fā)水平,有助于客戶對企業(yè)生產(chǎn)能力樹立信心。目前,歐美等國的大型
軟件用戶與軟件供應(yīng)商共同采納CMM作為供需雙方軟件產(chǎn)品質(zhì)量及工程預(yù)算的標(biāo)準(zhǔn)。印度軟件企業(yè)更是對CMM全力投入,每年定期進(jìn)行CMM培訓(xùn),目前全球通
過CMM四級與五級的軟件企業(yè)中,印度占半數(shù)以上,印度企業(yè)的軟件產(chǎn)品出口總值也從10年前的五千萬美圓增長到五十億美元,并預(yù)計(jì)于2008年達(dá)到五百億
美元。印度約有1000家軟件企業(yè),34萬從業(yè)人員,《財(cái)富》雜志全球500強(qiáng)企業(yè)中近半數(shù)為印度軟件企業(yè)的客戶。到1999年止,全球范圍內(nèi)共進(jìn)行了
1330次CMM評測,總計(jì)評測項(xiàng)目有5452項(xiàng),參加評測的機(jī)構(gòu)逐年攀升,其中有7.2%是海外項(xiàng)目,參加國別有34個(gè),參加機(jī)構(gòu)類型,商業(yè)機(jī)構(gòu)占
56.1%,美國國防部供應(yīng)商占29.8%,軍方和政府機(jī)構(gòu)占10.5%。其中,初始級機(jī)構(gòu)占總評估數(shù)的43.2%,可重復(fù)級占34.2%,定義級占
17.3%,管理級占4%,優(yōu)化級占1.4%。第二級(可重復(fù)級)比例最高的為25人到100人的機(jī)構(gòu),第三級(定義級)所占比例最高的為1000到
2000人的企業(yè),第五級(優(yōu)化級)所占比例最高的為2000人以上的企業(yè)。由此可見,通過CMM第二級的最佳規(guī)模為25人到100人。