摘 要:針對我國中小軟件企業(yè)目前的發(fā)展?fàn)顩r及特點(diǎn),以提高軟件質(zhì)量、降低成本、加強(qiáng)產(chǎn)品開發(fā)的可延續(xù)性、增加客戶滿意度為目標(biāo),在深入研究和探討軟件成熟度模型(CMM)的基礎(chǔ)上結(jié)合成功案例,論述了一個(gè)基于CMM的ERP信息平臺實(shí)施框架。框架對KPA做了適當(dāng)?shù)牟脺p,定義了7個(gè)關(guān)鍵過程域并設(shè)置了4個(gè)工作組,以加強(qiáng)軟件過程的可控性和透明度并進(jìn)行效率分析。最后指出,在CMM實(shí)踐中應(yīng)該注重創(chuàng)新。
關(guān)鍵詞:CMM;KPA;軟件過程:框架
0 引言
CMM(Capability Maturity Mode for Software)即軟件過程能力成熟度模型,是指一個(gè)軟件過程被明確定義、管理、度量和控制的有效程度。它是由美國卡耐基梅隆大學(xué)軟件工程研究院(SEI,Software Engineering Institute)制定的軟件過程改良、評估模型和評估承包商能力的辦法,也稱為SEI SW-CMM,(SEI SoftWare-CMM)。CMM的核心是把軟件開發(fā)視為一個(gè)過程,并根據(jù)這一原則對軟件開發(fā)和維護(hù)進(jìn)行過程監(jiān)控和研究,確定軟件組織現(xiàn)有的過程能力,查找軟件質(zhì)量及軟件過程改進(jìn)中的關(guān)鍵問題,以使其更加科學(xué)化、標(biāo)準(zhǔn)化,從而加大企業(yè)的競爭力。近年來,許多國內(nèi)軟件企業(yè)把實(shí)施CMM作為一項(xiàng)戰(zhàn)略決策,最終目的是改善軟件質(zhì)量,控制成本,提高自身競爭力。但CMM只是一個(gè)評估軟件組織過程能力和成熟度的一個(gè)依據(jù),大多數(shù)軟件企業(yè)不可能很快通過CMML3以上的評估,未通過CMML3以上的評估不等于軟件企業(yè)就不能進(jìn)行軟件開發(fā),通過評估也是企業(yè)在積累了一定經(jīng)驗(yàn)的基礎(chǔ)上才實(shí)現(xiàn)的,是一個(gè)量變到質(zhì)變的過程。針對這種情況,結(jié)合我國中小軟件企業(yè)的特點(diǎn)并運(yùn)用實(shí)例,提出了一個(gè)基于CMM的ERP信息平臺實(shí)施框架。
1 CMM分析
軟件過程包括軟件開發(fā)過程和軟件管理過程,指人們從軟件開發(fā)到維護(hù)軟件相關(guān)產(chǎn)品所采取的一系列步驟。軟件過程的不斷改進(jìn)基于許多小的不斷進(jìn)化的步驟,是一個(gè)漫長的過程。CMM提供了一個(gè)框架,將過程進(jìn)化的步驟分成五個(gè)成熟度等級,每個(gè)成熟度等級被分解為幾個(gè)KPA(關(guān)鍵過程域)。KPA是指在某個(gè)成熟度等級應(yīng)重點(diǎn)關(guān)注的區(qū)域,也是達(dá)到此成熟度等級必須解決的關(guān)鍵點(diǎn)。這五個(gè)成熟度等級定義了一個(gè)有序的尺度,用以衡量軟件組織過程的成熟度和評價(jià)其軟件過程的能力。五個(gè)等級分別是:①Initial級。軟件過程沒有任何標(biāo)準(zhǔn)和規(guī)章,軟件產(chǎn)品的質(zhì)量具有不可預(yù)測性。②Repeatable級。已建立基本的項(xiàng)目管理過程,整個(gè)項(xiàng)目過程已經(jīng)制度化,項(xiàng)目過程處于項(xiàng)目管理系統(tǒng)的有效控制和監(jiān)督之下,通過不斷積累軟件過程數(shù)據(jù)來建立完備的軟件開發(fā)文檔,以前成功的經(jīng)驗(yàn)經(jīng)規(guī)范化后歸納為標(biāo)準(zhǔn)的軟件過程并在以后的項(xiàng)目實(shí)施過程中加以提煉,是一個(gè)持續(xù)的質(zhì)量改進(jìn)。KPA分別是:需求管理、軟件項(xiàng)目計(jì)劃、軟件跟蹤與監(jiān)督、軟件子合同管理、軟件質(zhì)量保證、軟件配置管理,CMML2級上KPA的經(jīng)驗(yàn)已經(jīng)文檔化。③Defined級。組織級法律框架健全,軟件產(chǎn)品的基本過程被記錄下來成為文檔,軟件工程管理和過程管理緊密結(jié)合起來并形成了一定的標(biāo)準(zhǔn)集成到組織的標(biāo)準(zhǔn)軟件過程,SPEG(軟件過程工程組)來負(fù)責(zé)整個(gè)軟件過程的活動,項(xiàng)目可以通過裁減組織的標(biāo)準(zhǔn)軟件過程來建立適合自己的軟件過程,并始終得到控制和管理。KPA分別是:組織過程焦點(diǎn)、組織過程定義、培訓(xùn)大綱、集成軟件管理、軟件產(chǎn)品工程、組間協(xié)調(diào)、同行評審。④Managed級。對軟件過程的每一個(gè)階段進(jìn)行監(jiān)控、取樣和定量分析,對形成的關(guān)于軟件制作和維護(hù)流程的數(shù)據(jù)庫不斷更新,保證軟件過程保持較高的質(zhì)量。KPA分別是:定量過程管理、軟件質(zhì)量管理。⑤Optimizing級。整個(gè)軟件開發(fā)機(jī)構(gòu)的重心轉(zhuǎn)移到優(yōu)化軟件過程,軟件組織對新技術(shù)的采用、產(chǎn)品預(yù)防缺陷、過程管理改進(jìn)已達(dá)到循環(huán)優(yōu)化的階段。KPA分別是:缺陷預(yù)防、技術(shù)更新預(yù)防、過程更改管理。
由此可見,每一個(gè)成熟度等級都有若干個(gè)KPA構(gòu)成,每個(gè)KPA過程包含了一系列相關(guān)的活動,當(dāng)這些活動完成時(shí),就能夠達(dá)到一組評價(jià)過程能力的成熟度目標(biāo)。要達(dá)到一個(gè)成熟度等級,必須實(shí)現(xiàn)該等級上的全部KPA。成熟度代表軟件過程能力改善的潛力,成熟度等級只是用來描述某一成熟度等級上的組織特征,每一級都為下一等級奠定基礎(chǔ),滿足了低級別就可以向高級別邁進(jìn),過程的改善不能跳躍式地進(jìn)行。CMM描述的五個(gè)等級的軟件過程反映了軟件從雜亂無章、依賴于個(gè)人的生產(chǎn)到可管理、可監(jiān)督、有質(zhì)量保證、標(biāo)準(zhǔn)化、不斷完善的階梯式生產(chǎn)過程,是一個(gè)企業(yè)軟件過程改良的參照框架,可以協(xié)助軟件組織建立嚴(yán)格、可視、標(biāo)準(zhǔn)、優(yōu)化的軟件開發(fā)過程。
2 一種基于CMM的ERP信息平臺實(shí)施框架
CMM強(qiáng)調(diào)持續(xù)不斷地進(jìn)行軟件過程活動的改進(jìn)與控制,是一個(gè)評估的依據(jù),是一個(gè)過程改進(jìn)的框架,是一套非常有價(jià)值的過程模型。但它只告訴我們在哪些方面要改進(jìn),并沒有指出具體的辦法,再加上CMM自身的復(fù)雜性和我國軟件企業(yè)的特點(diǎn),需要在引進(jìn)CMM的同時(shí)必須對其進(jìn)行適當(dāng)?shù)男薷模瑢τ诋?dāng)前不是很重要的環(huán)節(jié)可以合并或刪減,以項(xiàng)目定期總結(jié)的方式整理出一個(gè)適合于自身發(fā)展的標(biāo)準(zhǔn)。在具體的實(shí)踐應(yīng)用中,我們通過對CMM原理的研究和改進(jìn),針對中小軟件企業(yè)的現(xiàn)狀和特有的文化,以提高軟件質(zhì)量、降低成本、加強(qiáng)產(chǎn)品開發(fā)的可延續(xù)性、增加客戶滿意度為目標(biāo),構(gòu)建了一個(gè)基于CMM的ERP信息平臺實(shí)施框架。在這個(gè)框架中對目前CMM中的KPA作適當(dāng)?shù)牟脺p,定義了CMM中的7個(gè)關(guān)鍵過程域:需求管理、軟件項(xiàng)目策劃、軟件項(xiàng)目跟蹤和監(jiān)督、軟件質(zhì)量保證、軟件配置管理、同行評審和集成軟件管理;并設(shè)置了4個(gè)工作組:軟件工程過程組(SEPG)、軟件工程組(SWEG)、軟件質(zhì)量保證組(SQAG)、軟件配置組(SCM)?;贑MM的ERP信息平臺是高層管理人員和項(xiàng)目組全體成員一起討論并制定的,在具體實(shí)施過程中對改進(jìn)過程所采取的措施大家都非常支持。整個(gè)ERP系統(tǒng)平臺按照項(xiàng)目定義的軟件開發(fā)過程進(jìn)行,嚴(yán)格按照自己制定的CMM框架來管理監(jiān)督,以保證開發(fā)活動符合定義的標(biāo)準(zhǔn)。開發(fā)過程采用瀑布模型作為軟件生命周期模型。圖1是一種基于CMM的ERP信息平臺開發(fā)結(jié)構(gòu)。
2.1 構(gòu)建KPA
(1)需求管理(RM)
需求管理是整個(gè)軟件工程的第一步,也是非常關(guān)鍵的一個(gè)步驟,需求分析不全面直接影響到過程的改進(jìn),可能降低軟件質(zhì)量、加大軟件開發(fā)的成本,與用戶的關(guān)系也會帶來負(fù)面影響。一般簽定合同的用戶是主管信息技術(shù)的負(fù)責(zé)人,他對本企業(yè)的業(yè)務(wù)流程不是非常熟悉(事實(shí)上很少有人全面了解自己企業(yè)內(nèi)部所有業(yè)務(wù)流程,諸如生產(chǎn)、銷售、采購、質(zhì)量、財(cái)務(wù)、人事等)。具體實(shí)施過程中應(yīng)將ERP信息平臺的用戶需求納入基線管理,在同用戶有一個(gè)良好溝通的基礎(chǔ)上對需求分析做度量管理、跟蹤,將作出的需求分析經(jīng)過雙方的反復(fù)論證形成標(biāo)準(zhǔn)的文檔資料。許多項(xiàng)目在完成后,用戶會不斷提出新增需求或變更,使維護(hù)工作處于一種沒完沒了的地步,這就說明需求工作沒做好,沒有做嚴(yán)格的評審,導(dǎo)致軟件產(chǎn)品的質(zhì)量不高。
(2)軟件項(xiàng)目策劃(SPP)
軟件項(xiàng)目策劃是根據(jù)項(xiàng)目目標(biāo)對軟件過程實(shí)施活動的安排,是實(shí)施CMML2的核心并需納入基線管理,其關(guān)鍵內(nèi)容有軟件生存周期模型、工作產(chǎn)品、工作分解結(jié)構(gòu)、項(xiàng)目估算、風(fēng)險(xiǎn)分析、項(xiàng)目計(jì)劃。ERP平臺軟件項(xiàng)目策劃控制包括進(jìn)度控制、成本控制、質(zhì)量控制、風(fēng)險(xiǎn)控制等??刂撇扇±锍瘫?跟蹤測試的方式進(jìn)行,控制活動中注意對工作量、成本、關(guān)鍵計(jì)算機(jī)資源、進(jìn)度、技術(shù)活動、風(fēng)險(xiǎn)的操作。在項(xiàng)目具體實(shí)施過程中我們定期開展技術(shù)論壇和企業(yè)文化交流,對近期碰到的問題進(jìn)行集體研究。結(jié)果發(fā)現(xiàn)這些活動非常有助于技術(shù)人員業(yè)務(wù)水平的提高,從一定程度上降低了技術(shù)風(fēng)險(xiǎn);通過企業(yè)文化交流加強(qiáng)了人員之間的溝通,避免人員流失。
(3)軟件項(xiàng)目跟蹤和監(jiān)督(SPTO)
軟件項(xiàng)目的跟蹤和監(jiān)督是根據(jù)項(xiàng)目的計(jì)劃,在指定的時(shí)間對項(xiàng)目目標(biāo)進(jìn)行檢測,它始終貫穿于整個(gè)過程中,是實(shí)施CMML2的核心,目的是規(guī)范軟件過程的流程,增加軟件過程中進(jìn)度、成本、質(zhì)量的可視性。在ERP平臺實(shí)施中按照軟件項(xiàng)目策劃對需求、工作量、成本、進(jìn)度、風(fēng)險(xiǎn)等內(nèi)容進(jìn)行跟蹤并形成文檔。跟蹤過程中注意數(shù)據(jù)的收集、數(shù)據(jù)的分析并確定是否采取糾偏措施。需求和進(jìn)度直接影響整個(gè)軟件產(chǎn)品的功能和成本,而對風(fēng)險(xiǎn)的監(jiān)督則降低一些突發(fā)性的事件。跟蹤和監(jiān)督過程一定要受到項(xiàng)目負(fù)責(zé)人的監(jiān)督。
(4)軟件質(zhì)量保證(SQA)
軟件質(zhì)量是軟件產(chǎn)品滿足用戶需求的能力特征總和,軟件質(zhì)量保證對軟件組織本身來講體現(xiàn)了軟件開發(fā)的高進(jìn)度、低成本和可控性,是有計(jì)劃、系統(tǒng)的質(zhì)量管理活動,其目的是使軟件生產(chǎn)過程和軟件產(chǎn)品可視化、文檔化,即監(jiān)控軟件過程保證合格的產(chǎn)品。在ERP平臺的實(shí)施過程中軟件質(zhì)量保證在SCM、PR、SPTO的相互配合下完成,SQA作為一個(gè)第三方的獨(dú)立活動而存在。在目前軟硬環(huán)境大致相同的情況下,對ERP平臺通過加強(qiáng)過程的定量管理和測試來提高軟件質(zhì)量,做到軟件質(zhì)量保證以事先預(yù)防和跟蹤為主,事后采取糾偏措施為副。
(5)軟件配置管理(SCM)
軟件配置管理是一種通過標(biāo)識和文檔來記錄配置項(xiàng)的功能和物理特性,控制這些特性的變更、記錄和報(bào)告變更的過程狀態(tài)的活動,目的是建立和維護(hù)在整個(gè)生命周期內(nèi)軟件產(chǎn)品的完整性。在ERP平臺中主要做了三個(gè)子項(xiàng):①配置項(xiàng)的標(biāo)識。標(biāo)識做到惟一陸,便于跟蹤和管理。②安全的配置控制。對開發(fā)人員、公用軟件工作產(chǎn)品、軟件產(chǎn)品都實(shí)行標(biāo)準(zhǔn)數(shù)據(jù)庫管理,各自的變更分別存入軟件開發(fā)庫、軟件基線庫、軟件產(chǎn)品庫。這三個(gè)庫很關(guān)鍵,對不同角色的人員通過不同的權(quán)限來管理。③配置審計(jì)。在軟件產(chǎn)品交付使用之前對軟件基線庫執(zhí)行一次完整的審計(jì)過程,保證最終軟件的運(yùn)行。軟件配置貫穿于整個(gè)軟件生存周期中,以保證軟件產(chǎn)品的一致性、完整性。
(6)同行評審(PR)
同行評審作為軟件質(zhì)量保證的依據(jù)而存在,它根據(jù)預(yù)定的規(guī)范和標(biāo)準(zhǔn)對軟件產(chǎn)品進(jìn)行評審。本框架將ERP平臺的同行評審作為一個(gè)KPA保留下來是因?yàn)榭梢酝ㄟ^軟件行業(yè)中的同行來幫助發(fā)現(xiàn)問題。SPTO只能將需求分析、設(shè)計(jì)文檔等各個(gè)基線作為標(biāo)準(zhǔn)資料去尋找在實(shí)際過程中的缺陷或錯(cuò)誤,而同行評審是從行業(yè)規(guī)范的角度去看問題這兩個(gè)KPA的執(zhí)行角色完全不同。同行評審當(dāng)中的人員全部來自本企業(yè)之外,同時(shí),同行評審將軟件工程中的詳細(xì)設(shè)計(jì)和軟件測試作為兩個(gè)關(guān)鍵評審點(diǎn),因?yàn)檫@兩個(gè)點(diǎn)在實(shí)際評審中最能發(fā)現(xiàn)問題,而發(fā)現(xiàn)的問題直接影響軟件的成本與質(zhì)量。
(7)集成軟件管理(ISM)
集成軟件管理的目的是針對ERP信息平臺的實(shí)施建立合適的軟件過程管理,此過程具備就緒判據(jù)、輸入、輸出、標(biāo)準(zhǔn)、工作規(guī)程、驗(yàn)證機(jī)制、完成判斷等特征。通過平臺的實(shí)施可以看出在整個(gè)軟件過程得到定制的情況下,管理者能觀察到所有過程的進(jìn)展情況,對進(jìn)度、成本、質(zhì)量真正做到可控和可預(yù)測,降低風(fēng)險(xiǎn)。ISM提高了ERP軟件過程的工作效率。
2.2 組的定義
軟件工程過程組(SPEG)統(tǒng)一領(lǐng)導(dǎo)ERP平臺的CMM實(shí)施活動,協(xié)調(diào)整個(gè)軟件過程的開發(fā)和改進(jìn)活動,制定、完成、維護(hù)軟件工程規(guī)范。集成軟件管理的內(nèi)容也由SPEG完成。
軟件工程組(SWEG)負(fù)責(zé)ERP平臺的需求分析、詳細(xì)設(shè)計(jì)、概要設(shè)計(jì)、編碼、測試工作、RM和SPP。
軟件質(zhì)量保證組(SQAG)負(fù)責(zé)完成ERP平臺的測試,對軟件過程進(jìn)行跟蹤和監(jiān)督,保證軟件過程的步驟按標(biāo)準(zhǔn)執(zhí)行,評審軟件工程活動,檢驗(yàn)軟件的一致性。SQAG集成了STG(系統(tǒng)測試組)、SPTOG、PRG的活動過程,并完成相關(guān)任務(wù)。項(xiàng)目負(fù)責(zé)人直接監(jiān)督SQAG的工作計(jì)劃。
軟件配置組(SCMG)負(fù)責(zé)ERP平臺中軟件配置的策劃、協(xié)調(diào)和實(shí)施,維護(hù)配置數(shù)據(jù)庫、進(jìn)行版本管理,同時(shí)完成ISM的任務(wù)。
在整個(gè)ERP平臺的CMM實(shí)施過程中,對組的設(shè)置做了壓縮,但這四個(gè)組仍然完成了大部分必需的工作,降低了人員成本,沒有影響過程改進(jìn)和軟件質(zhì)量。
3 軟件效率評估
采用CMM就是改進(jìn)過程管理、監(jiān)控軟件過程、降低軟件成本、提高軟件的質(zhì)量。因此,在具體實(shí)施過程中對可行性研究、需求分析、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)、軟件測試、軟件維護(hù)及發(fā)布進(jìn)行了效率分析。
3.1 時(shí)間分析
從表1可以看出,在需求分析階段和設(shè)計(jì)階段采取CMM框架后所花費(fèi)的時(shí)間要多于沒有采用CMM框架花費(fèi)的時(shí)間。采用CMM的開發(fā)過程中,首先對項(xiàng)目做大量的成本、效益分析,論證項(xiàng)目的可行性;然后由SWEG去做RP,在SPEG的協(xié)調(diào)下SWEG和用戶做良好的溝通,不斷論證、推敲建立模型,并且SQAG始終在做SPTO,形成大量的文檔資料并建立過程數(shù)據(jù)庫。經(jīng)過評估,花費(fèi)在RP上的時(shí)間大約占項(xiàng)目總開發(fā)時(shí)間的40%,事實(shí)證明,正是這40%的時(shí)間直接左右了整個(gè)項(xiàng)目的進(jìn)度,不但在編寫代碼、軟件維護(hù)、測試工作中省略了大量的時(shí)間,而且用戶對軟件的功能非常滿意,軟件的開發(fā)周期大大縮短,實(shí)施CMM框架后的開發(fā)周期比沒有實(shí)施CMM框架的開發(fā)周期縮短20%。
3.2 軟件質(zhì)量
采用CMM框架后,由于有了個(gè)KPA和4個(gè)工作組的過程監(jiān)督,需求分析考慮周全、測試嚴(yán)格、評審及時(shí),代碼錯(cuò)誤率小、功能齊全、軟件產(chǎn)品完整性好、集成度高,軟件質(zhì)量大大提高,維護(hù)量明顯下降。
3.3 其它
對于一個(gè)集體項(xiàng)目而言,可以將人員變動造成的風(fēng)險(xiǎn)降低到最低程度,公司不再受制于人,人走了,事照做,更加體現(xiàn)了一個(gè)企業(yè)的成熟。
4 結(jié)束語
CMM是一個(gè)框架,不能簡單地去模仿和教條化執(zhí)行,要有改進(jìn)甚至是超越,改進(jìn)目標(biāo)要明確。未來的CMM更應(yīng)強(qiáng)調(diào)從整體出發(fā)和團(tuán)隊(duì)精神,針對現(xiàn)狀,把系統(tǒng)工作分成幾個(gè)關(guān)鍵的環(huán)節(jié)去執(zhí)行,確定最需要改進(jìn)的環(huán)節(jié),整合出適合公司的具體方法、組件、樣例和經(jīng)驗(yàn)教訓(xùn),形成過程改進(jìn)的整體規(guī)劃。通過對系統(tǒng)中最具有價(jià)值的環(huán)節(jié)的改造,可以進(jìn)一步降低成本、提高軟件質(zhì)量、加強(qiáng)產(chǎn)品開發(fā)的可延續(xù)性和客戶的滿意度。