能力成熟度模型(Capability Maturity Model for Software,英文縮寫為SW-CMM,簡(jiǎn)稱CMM)
什么是能力成熟度模型 (Capability Maturity Model)CMM是指“能力成熟度模型”,是對(duì)于軟件組織在定義、實(shí)施、度量、控制和改善其軟件過(guò)程的實(shí)踐中各個(gè)發(fā)展階段的描述。它是在美國(guó)國(guó)防部的指導(dǎo)下,有軟件開(kāi)發(fā)團(tuán)體和軟件工程學(xué)院(SEI)及Carnegie Mellon大學(xué)共同開(kāi)發(fā)的。CMM的核心是把軟件開(kāi)發(fā)視為一個(gè)過(guò)程,并根據(jù)這一原則對(duì)軟件開(kāi)發(fā)和維護(hù)進(jìn)行過(guò)程監(jiān)控和研究,以使其更加科學(xué)化、標(biāo)準(zhǔn)化、使企業(yè)能夠更好地實(shí)現(xiàn)商業(yè)目標(biāo)。
CMM是一種用于評(píng)價(jià)軟件承包能力并幫助其改善軟件質(zhì)量的方法,側(cè)重于軟件開(kāi)發(fā)過(guò)程的管理及工程能力的提高與評(píng)估。CMM分為五個(gè)等級(jí):一級(jí)為初始級(jí),二級(jí)為可重復(fù)級(jí),三級(jí)為已定義級(jí),四級(jí)為已管理級(jí),五級(jí)為優(yōu)化級(jí)。 從當(dāng)今整個(gè)軟件公司現(xiàn)狀來(lái)看,最多的成熟度為1級(jí),多數(shù)成熟度為2級(jí),少數(shù)成熟度為3級(jí),極少數(shù)成熟度為4級(jí),成熟度為5級(jí)的更是鳳毛麟角。
其所依據(jù)的想法是:只要集中精力持續(xù)努力去建立有效的軟件工程過(guò)程的基礎(chǔ)結(jié)構(gòu),不斷進(jìn)行管理的實(shí)踐和過(guò)程的改進(jìn),就可以克服軟件生產(chǎn)中的困難。CMM它是目前國(guó)際上最流行、最實(shí)用的一種軟件生產(chǎn)過(guò)程標(biāo)準(zhǔn),已經(jīng)得到了眾多國(guó)家以及國(guó)際軟件產(chǎn)業(yè)界的認(rèn)可,成為當(dāng)今企業(yè)從事規(guī)模軟件生產(chǎn)不可缺少的一項(xiàng)內(nèi)容。
CMM為軟件企業(yè)的過(guò)程能力提供了一個(gè)階梯式的改進(jìn)框架,它基于過(guò)去所有軟件工程過(guò)程改進(jìn)的成果,吸取了以往軟件工程的經(jīng)驗(yàn)教訓(xùn),提供了一個(gè)基于過(guò)程改進(jìn)的框架;它指明了一個(gè)軟件組織在軟件開(kāi)發(fā)方面需要管理哪些主要工作、這些工作之間的關(guān)系、以及以怎樣的先后次序,一步一步的做好這些工作而使軟件組織走向成熟。
能力成熟度模型的歷史和發(fā)展
信息時(shí)代,軟件質(zhì)量的重要性越來(lái)越為人們所認(rèn)識(shí)。軟件是產(chǎn)品、是裝備、是工具,其質(zhì)量使得顧客滿意,是產(chǎn)品市場(chǎng)開(kāi)拓、事業(yè)得以發(fā)展的關(guān)鍵。而軟件工程領(lǐng)域在1992年至1997年取得了前所未有的進(jìn)展,其成果超過(guò)軟件工程領(lǐng)域過(guò)去15年來(lái)的成就總和。 軟件管理工程引起廣泛注意源于20世紀(jì)70年代中期。當(dāng)時(shí)美國(guó)國(guó)防部曾立題專門研究軟件項(xiàng)目做不好的原因,發(fā)現(xiàn)70%的項(xiàng)目是因?yàn)楣芾聿簧贫穑⒉皇且驗(yàn)榧夹g(shù)實(shí)力不夠,進(jìn)而得出一個(gè)結(jié)論,即管理是影響軟件研發(fā)項(xiàng)目全局的因素,而技術(shù)只影響局部。到了20世紀(jì)90年代中期,軟件管理工程不善的問(wèn)題仍然存在,大約只有10%的項(xiàng)目能夠在預(yù)定的費(fèi)用和進(jìn)度下交付。軟件項(xiàng)目失敗的主要原因有:需求定義不明確;缺乏一個(gè)好的軟件開(kāi)發(fā)過(guò)程;沒(méi)有一個(gè)統(tǒng)一領(lǐng)導(dǎo)的產(chǎn)品研發(fā)小組;子合同管理不嚴(yán)格;沒(méi)有經(jīng)常注意改善軟件過(guò)程;對(duì)軟件構(gòu)架很不重視;軟件界面定義不善且缺乏合適的控制;軟件升級(jí)暴露了硬件的缺點(diǎn);關(guān)心創(chuàng)新而不關(guān)心費(fèi)用和風(fēng)險(xiǎn);軍用標(biāo)準(zhǔn)太少且不夠完善等等。在關(guān)系到軟件項(xiàng)目成功與否的眾多因素中,軟件度量、工作量估計(jì)、項(xiàng)目規(guī)劃、進(jìn)展控制、需求變化和風(fēng)險(xiǎn)管理等都是與工程管理直接相關(guān)的因素。由此可見(jiàn),軟件管理工程的意義至關(guān)重要。 1987年,美國(guó)卡內(nèi)基. 梅隆大學(xué)軟件研究所(SEI)受美國(guó)國(guó)防部的委托,率先在軟件行業(yè)從軟件過(guò)程能力的角度提出了軟件過(guò)程成熟度模型(CMM),隨后在全世界推廣實(shí)施的一種軟件評(píng)估標(biāo)準(zhǔn),用于評(píng)價(jià)軟件承包能力并幫助其改善軟件質(zhì)量的方法。它主要用于軟件開(kāi)發(fā)過(guò)程和軟件開(kāi)發(fā)能力的評(píng)價(jià)和改進(jìn)。它側(cè)重于軟件開(kāi)發(fā)過(guò)程的管理及工程能力的提高與評(píng)估。CMM自1987年開(kāi)始實(shí)施認(rèn)證,現(xiàn)已成為軟件業(yè)最權(quán)威的評(píng)估認(rèn)證體系。CMM包括5個(gè)等級(jí),共計(jì)18個(gè)過(guò)程域,52個(gè)目標(biāo),300多個(gè)關(guān)鍵實(shí)踐。
CMM的基本思想
CMM的基本思想是,因?yàn)閱?wèn)題是由我們管理軟件過(guò)程的方法引起的,所以新軟件技術(shù)的運(yùn)用不會(huì)自動(dòng)提高生產(chǎn)率和利潤(rùn)率。CMM有助于組織建立一個(gè)有規(guī)律的、成熟的軟件過(guò)程。改進(jìn)的過(guò)程將會(huì)生產(chǎn)出質(zhì)量更好的軟件,使更多的軟件項(xiàng)目免受時(shí)間和費(fèi)用的超支之苦。 軟件過(guò)程包括各種活動(dòng)、技術(shù)和用來(lái)生產(chǎn)軟件的工具。因此,它實(shí)際上包括了軟件生產(chǎn)的技術(shù)方面和管理方面。CMM策略力圖改進(jìn)軟件過(guò)程的管理,而在技術(shù)上的改進(jìn)是其必然的結(jié)果。 必須牢記,軟件過(guò)程的改善不可能在一夜之間完成,CMM是以增量方式逐步引入變化的。CMM明確地定義了5個(gè)不同的“成熟度”等級(jí),一個(gè)組織可按一系列小的改良性步驟向更高的成熟度等級(jí)前進(jìn)。 成熟度等級(jí)1:初始級(jí)(Initial)。處于這個(gè)****級(jí)的組織,基本上沒(méi)有健全的軟件工程管理制度。每件事情都以特殊的方法來(lái)做。如果一個(gè)特定的工程碰巧由一個(gè)有能力的管理員和一個(gè)****的軟件開(kāi)發(fā)組來(lái)做,則這個(gè)工程可能是成功的。然而通常的情況是,由于缺乏健全的總體管理和詳細(xì)計(jì)劃,時(shí)間和費(fèi)用經(jīng)常超支。結(jié)果,大多數(shù)的行動(dòng)只是應(yīng)付危機(jī),而非事先計(jì)劃好的任務(wù)。處于成熟度等級(jí)1的組織,由于軟件過(guò)程完全取決于當(dāng)前的人員配備,所以具有不可預(yù)測(cè)性,人員變化了,過(guò)程也跟著變化。結(jié)果,要精確地預(yù)測(cè)產(chǎn)品的開(kāi)發(fā)時(shí)間和費(fèi)用之類重要的項(xiàng)目,是不可能的。 成熟度等級(jí)2:可重復(fù)級(jí)(Repeatable)。在這一級(jí),有些基本的軟件項(xiàng)目的管理行為、設(shè)計(jì)和管理技術(shù)是基于相似產(chǎn)品中的經(jīng)驗(yàn),故稱為“可重復(fù)”。在這一級(jí)采取了一定措施,這些措施是實(shí)現(xiàn)一個(gè)完備過(guò)程所必不可缺少的****步。典型的措施包括仔細(xì)地跟蹤費(fèi)用和進(jìn)度。不像在****級(jí)那樣,在危機(jī)狀態(tài)下方行動(dòng),管理人員在問(wèn)題出現(xiàn)時(shí)便可發(fā)現(xiàn),并立即采取修正行動(dòng),以防它們變成危機(jī)。關(guān)鍵的一點(diǎn)是,如沒(méi)有這些措施,要在問(wèn)題變得無(wú)法收拾前發(fā)現(xiàn)它們是不可能的。在一個(gè)項(xiàng)目中采取的措施也可用來(lái)為未來(lái)的項(xiàng)目擬定實(shí)現(xiàn)的期限和費(fèi)用計(jì)劃。 成熟度等級(jí)3:已定義級(jí)(Defined)。在第3級(jí),已為軟件生產(chǎn)的過(guò)程編制了完整的文檔。軟件過(guò)程的管理方面和技術(shù)方面都明確地做了定義,并按需要不斷地改進(jìn)過(guò)程,而且采用評(píng)審的辦法來(lái)保證軟件的質(zhì)量。在這一級(jí),可引用CASE環(huán)境來(lái)進(jìn)一步提高質(zhì)量和產(chǎn)生率。而在第—級(jí)過(guò)程中,“高技術(shù)”只會(huì)使這一危機(jī)驅(qū)動(dòng)的過(guò)程更混亂。 成熟度等級(jí)4:已管理級(jí)(Managed)。一個(gè)處于第4級(jí)的公司對(duì)每個(gè)項(xiàng)目都設(shè)定質(zhì)量和生產(chǎn)目標(biāo)。這兩個(gè)量將被不斷地測(cè)量,當(dāng)偏離目標(biāo)太多時(shí),就采取行動(dòng)來(lái)修正。利用統(tǒng)計(jì)質(zhì)量控制,管理部門能區(qū)分出隨機(jī)偏離和有深刻含義的質(zhì)量或生產(chǎn)目標(biāo)的偏離(統(tǒng)計(jì)質(zhì)量控制措施的一個(gè)簡(jiǎn)單例子是每千行代碼的錯(cuò)誤率。相應(yīng)的目標(biāo)就是隨時(shí)間推移減少這個(gè)量)。 成熟度等級(jí)5:優(yōu)化級(jí)(Optimizing)。—個(gè)第5級(jí)組織的目標(biāo)是連續(xù)地改進(jìn)軟件過(guò)程。這樣的組織使用統(tǒng)計(jì)質(zhì)量和過(guò)程控制技術(shù)作為指導(dǎo)。從各個(gè)方面中獲得的知識(shí)將被運(yùn)用在以后的項(xiàng)目中,從而使軟件過(guò)程融入了正反饋循環(huán),使生產(chǎn)率和質(zhì)量得到穩(wěn)步的改進(jìn)。 整個(gè)企業(yè)將會(huì)把重點(diǎn)放在對(duì)過(guò)程進(jìn)行不斷的優(yōu)化,采取主動(dòng)的措施去找出過(guò)程的弱點(diǎn)與長(zhǎng)處,以達(dá)到預(yù)防缺陷的目標(biāo)。同時(shí),分析各有關(guān)過(guò)程的有效性資料,作出對(duì)新技術(shù)的成本與效益的分析,并提出對(duì)過(guò)程進(jìn)行修改的建議。達(dá)到該級(jí)的公司可自發(fā)的不斷改進(jìn),防止同類缺陷二次出現(xiàn)。 在表中可以看出,CMM為軟件的過(guò)程能力提供了一個(gè)階梯式的改進(jìn)框架,它基于以往軟件工程的經(jīng)驗(yàn)教訓(xùn),提供了一個(gè)基于過(guò)程改進(jìn)的框架圖,它指出一個(gè)軟件組織在軟件開(kāi)發(fā)方面需要那些主要工作,這些工作之間的關(guān)系,以及開(kāi)展工作的先后順序,一步一步的做好這些工作而使軟件組織走向成熟。CMM的思想來(lái)源于已有多年歷史的項(xiàng)目管理和質(zhì)量管理,自產(chǎn)生以來(lái)幾經(jīng)修訂,成為軟件業(yè)具有廣泛影響的模型,并對(duì)以后項(xiàng)目管理成熟度模型的建立產(chǎn)生了重要的影響。盡管已有個(gè)人或團(tuán)體提出了各種各樣的成熟度模型,但還沒(méi)有一個(gè)象CMM那樣在業(yè)界確立了權(quán)威標(biāo)準(zhǔn)的地位。但PMI于2003年發(fā)布的OPM3以其立體的模型及涵蓋范圍的廣泛有望成為項(xiàng)目管理界的標(biāo)準(zhǔn)。 |