王 勇
(中國(guó)空空導(dǎo)彈研究院 河南 洛陽 471000)
?
軟件過程資產(chǎn)庫的研究與實(shí)現(xiàn)
王勇
(中國(guó)空空導(dǎo)彈研究院河南 洛陽 471000)
摘要軟件產(chǎn)品的應(yīng)用日益廣泛,軟件研制過程中出現(xiàn)的問題也不斷增多。隨著業(yè)內(nèi)的不斷探索,逐漸發(fā)現(xiàn)軟件重用(含過程重用和產(chǎn)品重用)是解決“軟件危機(jī)”的有效手段之一。軟件過程資產(chǎn)庫將軟件研制過程中積累的可重用過程和可重用產(chǎn)品在信息化平臺(tái)中進(jìn)行統(tǒng)一管理,便于項(xiàng)目層進(jìn)行查詢和使用,促進(jìn)軟件研制效率和軟件產(chǎn)品質(zhì)量的提高;從組織層來看,通過不斷優(yōu)化可重用過程并積累可重用產(chǎn)品,可以實(shí)施持續(xù)的軟件過程改進(jìn),逐步提高軟件研制能力成熟度,不斷增強(qiáng)軟件組織的競(jìng)爭(zhēng)力。為了提升軟件研制能力,研究并建立了軟件過程資產(chǎn)庫,結(jié)果表明軟件過程資產(chǎn)庫在提高軟件研制能力方面具有顯著作用。
關(guān)鍵詞軟件過程資產(chǎn)庫軟件過程改進(jìn)軟件重用
0引言
軟件產(chǎn)品已經(jīng)深入到人類生活的各個(gè)領(lǐng)域,軟件產(chǎn)品的功能日益復(fù)雜和強(qiáng)大,軟件失效所產(chǎn)生的影響也越來越大。與此同時(shí),軟件研制過程中也出現(xiàn)了許多問題,1968年業(yè)內(nèi)首次提出“軟件危機(jī)”[1]的概念,軟件危機(jī)所描述的問題可以分為3個(gè)方面:軟件無法按期交付、開發(fā)成本嚴(yán)重超支、軟件質(zhì)量難以保證。
許多年來,業(yè)內(nèi)一直在研究解決軟件危機(jī)的方案,而軟件重用被視為有效途徑之一。重用是指利用以往問題的成果、經(jīng)驗(yàn)或知識(shí)來解決一個(gè)新的問題。根據(jù)重用對(duì)象的不同,軟件重用可以分為過程重用和產(chǎn)品重用。過程重用[1]指重用已有的軟件開發(fā)過程和開發(fā)經(jīng)驗(yàn),產(chǎn)品重用指重用已有的軟件產(chǎn)品和軟件成分。研究表明,通過過程重用可以規(guī)范軟件研制的過程、提高軟件的質(zhì)量;通過產(chǎn)品重用可以提高軟件研制的效率。
“軟件過程資產(chǎn)”和“軟件過程資產(chǎn)庫”是CMMI模型(國(guó)內(nèi)對(duì)應(yīng)的標(biāo)準(zhǔn)為GJB5000A-2008《軍用軟件研制能力成熟度模型》)中的概念。軟件過程資產(chǎn)是指企業(yè)在軟件研制過程中積累的可重用的過程和產(chǎn)品。軟件過程資產(chǎn)庫是軟件研制過程中各類軟件過程資產(chǎn)的集合,任何一項(xiàng)對(duì)軟件研制有用的實(shí)體均可以成為過程資產(chǎn)的組成部分。軟件過程資產(chǎn)庫實(shí)現(xiàn)了對(duì)可重用過程和產(chǎn)品的管理,完全符合軟件重用的思想,在軟件過程改進(jìn)中具有十分重要的地位。
本單位結(jié)合軟件研制的實(shí)際情況,建立了軟件過程資產(chǎn)庫,將軟件研制過程中積累的可重用過程和可重用產(chǎn)品納入信息化平臺(tái)進(jìn)行統(tǒng)一管理,便于軟件研制人員進(jìn)行快捷地查詢和使用,以期不斷提高軟件研制的效率和軟件產(chǎn)品的質(zhì)量。
1軟件過程資產(chǎn)庫的相關(guān)理論
CMMI即能力成熟度模型集成(Capability Maturity Model Integration)是由卡內(nèi)基梅隆大學(xué)提出的,CMMI提供了階段式和連續(xù)式兩種表示方法,我們通常所說的CMMI的等級(jí)是指在分階段表述下的成熟度等級(jí)。在階段式表示方法中,CMMI模型共分為5個(gè)等級(jí):初始級(jí)、已管理級(jí)、已定義級(jí)、已定量管理級(jí)、優(yōu)化級(jí)。CMMI模型描述了一個(gè)軟件機(jī)構(gòu)從一個(gè)無序的、混亂的軟件過程進(jìn)化到一種有序的、有紀(jì)律且成熟的軟件過程所必須經(jīng)歷的過程改進(jìn)途徑。而過程改進(jìn)的基本原理認(rèn)為,一個(gè)系統(tǒng)所生產(chǎn)的軟件產(chǎn)品的質(zhì)量歸根結(jié)底是由它所采用的過程的質(zhì)量所決定的。因此,軟件過程改進(jìn)被業(yè)內(nèi)視為提高軟件質(zhì)量的有效途徑[2]。
為了提高軍用軟件產(chǎn)品的質(zhì)量,總裝備部以CMMI為藍(lán)本發(fā)布了GJB5000A-2008《軍用軟件研制能力成熟度模型》標(biāo)準(zhǔn),并由總裝新時(shí)代認(rèn)證中心作為權(quán)威機(jī)構(gòu)進(jìn)行認(rèn)證。GJB5000A標(biāo)準(zhǔn)完全符合CMMI的思想、框架和表示方法。
GJB5000A三級(jí)提出了過程資產(chǎn)庫的概念,認(rèn)為過程資產(chǎn)庫是“由組織所維護(hù)的、供該組織的人員和項(xiàng)目使用的一些項(xiàng)的集合。這個(gè)項(xiàng)的集合包括:過程和過程元素的說明、生存周期模型的說明、過程剪裁指南、與過程有關(guān)的文檔和數(shù)據(jù)。借助在全組織中共享最佳實(shí)踐和經(jīng)驗(yàn)教訓(xùn),組織的過程資產(chǎn)庫支持組織的學(xué)習(xí)和過程改進(jìn)”[3]。
組織層面主要以標(biāo)準(zhǔn)過程作為改進(jìn)對(duì)象,通過項(xiàng)目執(zhí)行標(biāo)準(zhǔn)過程、提出改進(jìn)建議,不斷地優(yōu)化標(biāo)準(zhǔn)過程、完善過程資產(chǎn)庫,提高組織的過程能力。項(xiàng)目層面通過執(zhí)行組織的標(biāo)準(zhǔn)過程,可以提高軟件研制過程的規(guī)范性和可控性,從而提高項(xiàng)目的成功率和軟件的質(zhì)量;同時(shí),通過對(duì)產(chǎn)品的重用減少重復(fù)性的工程活動(dòng),提高軟件開發(fā)的效率。項(xiàng)目執(zhí)行過程中生成的可重用產(chǎn)品、經(jīng)驗(yàn)教訓(xùn)、改進(jìn)建議等通過分析、整理、驗(yàn)證后納入過程資產(chǎn)庫,成為全組織共享的過程資產(chǎn)。通過上述不斷的循環(huán)反復(fù),實(shí)現(xiàn)漸進(jìn)而持續(xù)的過程改進(jìn)[4]。
利用過程資產(chǎn)庫實(shí)施軟件過程改進(jìn)的原理,如圖1所示。
圖1 利用過程資產(chǎn)庫實(shí)施軟件過程改進(jìn)
2研究目的
本單位研制的軟件類型相對(duì)固定、研制流程相對(duì)穩(wěn)定,并且軟件在各階段和各產(chǎn)品之間的繼承性與相似性較高,軟件研制過程中積累的經(jīng)驗(yàn)和數(shù)據(jù)對(duì)于后續(xù)軟件的研制過程具有很強(qiáng)的借鑒意義和使用價(jià)值。
本單位在長(zhǎng)期的軟件研制過程中積累了大量可重用的過程和產(chǎn)品。但是長(zhǎng)期以來上述可以被重用的經(jīng)驗(yàn)和數(shù)據(jù)沒有得到系統(tǒng)梳理和統(tǒng)一保管,各類軟件過程資產(chǎn)停留于研發(fā)人員的頭腦中或者分散在不同研發(fā)者手中,并未顯性化、組織化、標(biāo)準(zhǔn)化[5],導(dǎo)致后續(xù)軟件在研制過程中不能充分的借鑒和使用,軟件研制過程中存在研制過程不規(guī)范、重復(fù)性勞動(dòng)多、開發(fā)效率不高、無法按期交付、軟件質(zhì)量不夠高等諸多問題。隨著行業(yè)競(jìng)爭(zhēng)的日趨激烈,以及用戶對(duì)承研單位軟件研制能力要求的不斷提高,建立軟件過程資產(chǎn)庫的需求日益迫切。
本單位已開始全面推廣“兩化融合”,信息化建設(shè)的能力和手段已比較成熟,具備信息化平臺(tái)的自主開發(fā)能力,能夠通過信息化平臺(tái)建立軟件過程資產(chǎn)庫并根據(jù)應(yīng)用情況不斷完善。
因此在本單位建立軟件過程資產(chǎn)庫具有必要性和可行性。為了構(gòu)建適應(yīng)本單位實(shí)際情況的軟件過程資產(chǎn)庫,課題組對(duì)軟件過程改進(jìn)和軟件過程資產(chǎn)庫的相關(guān)理論和方法進(jìn)行了研究。
3本單位軟件過程資產(chǎn)庫的建立情況
結(jié)合基于GJB5000A的軟件過程改進(jìn)工作,本單位于2013年建立了符合GJB5000A標(biāo)準(zhǔn)和本單位實(shí)際情況的軟件過程資產(chǎn)庫。
本單位的軟件過程資產(chǎn)庫通過“軟件過程管理平臺(tái)”實(shí)現(xiàn)。該平臺(tái)是本單位實(shí)施軟件過程改進(jìn)的統(tǒng)一平臺(tái),包括項(xiàng)目管理、需求管理、質(zhì)量管理和過程資產(chǎn)庫等主要功能,過程資產(chǎn)庫部分具備過程資產(chǎn)的新增、刪除、修改、查詢、統(tǒng)計(jì)、入庫提醒等主要功能。
3.1過程資產(chǎn)庫的組成
本單位已建立的軟件過程資產(chǎn)庫包含15個(gè)庫,截止2015年初每個(gè)庫中都已納入了部分組織資產(chǎn),本單位過程資產(chǎn)庫的組成和內(nèi)容見表1所示[6]。
表1 軟件過程資產(chǎn)庫的組成和內(nèi)容
續(xù)表1
3.2過程資產(chǎn)庫的管理和使用
過程資產(chǎn)庫由軟件工程過程組(EPG)統(tǒng)一管理并針對(duì)過程資產(chǎn)庫的建立、使用和維護(hù),建立了《軟件過程資產(chǎn)庫管理規(guī)程》,管理規(guī)程的主要內(nèi)容如下:
建立過程資產(chǎn)庫初始建立時(shí),由各部門的軟件人員對(duì)現(xiàn)有的過程資產(chǎn)進(jìn)行梳理,經(jīng)EPG評(píng)審?fù)ㄟ^后,錄入管理平臺(tái)中。
使用軟件人員可以在上述應(yīng)用系統(tǒng)中檢索到所有的過程資產(chǎn),并根據(jù)項(xiàng)目需要選擇使用。重用模塊庫和重用算法庫在配置管理系統(tǒng)中存儲(chǔ),項(xiàng)目層在使用時(shí)須經(jīng)完成出庫審批流程,由本單位主管領(lǐng)導(dǎo)和EPG組長(zhǎng)審批后方可使用。其他資產(chǎn)在使用時(shí)不必經(jīng)過審批,項(xiàng)目層可自由使用。
維護(hù)項(xiàng)目層可以隨時(shí)向組織層提交過程改進(jìn)建議,并在項(xiàng)目結(jié)束時(shí)提煉其他可重用的素材并提交EPG。經(jīng)EPG評(píng)審?fù)ㄟ^后,可以納入過程資產(chǎn)庫中。EPG定期對(duì)過程資產(chǎn)庫的使用情況進(jìn)行檢查,及時(shí)對(duì)過程資產(chǎn)庫的內(nèi)容進(jìn)行更新。存儲(chǔ)各類資產(chǎn)的應(yīng)用系統(tǒng)可以自動(dòng)統(tǒng)計(jì)每項(xiàng)資產(chǎn)的使用次數(shù),EPG定期統(tǒng)計(jì)后,對(duì)長(zhǎng)期無人使用的資產(chǎn)進(jìn)行清除、使其退出組織資產(chǎn)庫。
項(xiàng)目層使用過程資產(chǎn)并向過程資產(chǎn)庫納入新素材的情況,如圖2所示。
圖2 過程資產(chǎn)庫的使用和更新
3.3過程資產(chǎn)庫的應(yīng)用效果
本單位的過程資產(chǎn)庫從2013年年初建立以來,率先在貫徹GJB5000A三級(jí)標(biāo)準(zhǔn)的12個(gè)試點(diǎn)項(xiàng)目中進(jìn)行試用,取得了良好的效果。在過程資產(chǎn)庫的支撐下,已通過了GJB5000A三級(jí)評(píng)價(jià)認(rèn)證,在行業(yè)內(nèi)獲得了軟件承制資格,提高了本單位在行業(yè)內(nèi)的競(jìng)爭(zhēng)力。
本單位通過對(duì)過程資產(chǎn)庫的應(yīng)用,主要取得了如下效果:
(1) 提高了軟件研制過程的規(guī)范性
試點(diǎn)項(xiàng)目通過對(duì)標(biāo)準(zhǔn)過程集和生存周期模型的裁剪,確定了項(xiàng)目自身的過程、活動(dòng)和生存周期模型,軟件研制過程遵循已被其他項(xiàng)目驗(yàn)證過的標(biāo)準(zhǔn)過程,并由質(zhì)量人員對(duì)照檢查單對(duì)研制過程進(jìn)行審查,提高了研制過程的規(guī)范性,避免項(xiàng)目進(jìn)入混亂狀態(tài)而導(dǎo)致失敗。
(2) 提高了項(xiàng)目策劃的能力
試點(diǎn)項(xiàng)目借鑒組織測(cè)量庫中的歷史項(xiàng)目數(shù)據(jù)進(jìn)行整體工作量的估計(jì)、各階段工作量的分配以及項(xiàng)目進(jìn)度的估計(jì);同時(shí)使用組織風(fēng)險(xiǎn)庫進(jìn)行風(fēng)險(xiǎn)的識(shí)別和管理,提高了項(xiàng)目策劃的能力和效率。
(3) 提高了軟件研制的效率
試點(diǎn)項(xiàng)目在軟件開發(fā)過程中,不同程度地借鑒了重用模塊庫和重用算法庫中的可重用產(chǎn)品以及各類文檔模板,減少了重復(fù)性的分析、設(shè)計(jì)和實(shí)現(xiàn)工作,提高了軟件研制的效率。
另外,試點(diǎn)項(xiàng)目組織項(xiàng)目成員學(xué)習(xí)經(jīng)驗(yàn)教訓(xùn)庫和質(zhì)量案例庫,從一定程度上避免出現(xiàn)同類錯(cuò)誤,促進(jìn)項(xiàng)目順利推進(jìn),確保軟件按期交付。
(4) 促進(jìn)了產(chǎn)品質(zhì)量的提高
試點(diǎn)項(xiàng)目在軟件研制的不同階段,借鑒評(píng)審檢查單對(duì)中間產(chǎn)品進(jìn)行評(píng)審,提高了評(píng)審的針對(duì)性和有效性,在一定程度上促進(jìn)了軟件產(chǎn)品質(zhì)量的提高。
4結(jié)語
通過本單位軟件過程資產(chǎn)庫的試用,表明軟件過程資產(chǎn)庫在提高軟件研制能力方面具有顯著作用;與此同時(shí),也發(fā)現(xiàn)了本單位軟件過程資產(chǎn)庫在管理和使用方面出現(xiàn)的一些問題,成為我們后續(xù)改進(jìn)的方向:
進(jìn)一步明確各類資產(chǎn)入庫的評(píng)價(jià)準(zhǔn)則,嚴(yán)把入口關(guān),提高庫中各類資產(chǎn)的質(zhì)量;
進(jìn)一步探索科學(xué)合理的管理方式,創(chuàng)造良好的氛圍,促進(jìn)過程資產(chǎn)庫的良性循環(huán),使項(xiàng)目層積極使用各類資產(chǎn)并在項(xiàng)目結(jié)束后進(jìn)行總結(jié)和貢獻(xiàn),增加庫中各類資產(chǎn)的數(shù)量;
從組織層加強(qiáng)對(duì)各類資產(chǎn)使用情況的統(tǒng)計(jì)和分析,掌握過程資產(chǎn)庫的可用性、易用性、使用率等信息,對(duì)過程資產(chǎn)庫架構(gòu)和內(nèi)容進(jìn)行及時(shí)優(yōu)化[7];
擴(kuò)充軟件過程管理平臺(tái)的功能,將各類軟件過程資產(chǎn)與軟件研制流程相結(jié)合,逐步實(shí)現(xiàn)軟件過程資產(chǎn)隨軟件研制流程而自動(dòng)推送[8]。
參考文獻(xiàn)
[1] 劉丹.軟件過程改進(jìn)框架中過程資產(chǎn)庫的研究[D].大連海事大學(xué),2007.
[2] 李華北.過程改進(jìn)基本原理及CMMI實(shí)施[M].中國(guó)標(biāo)準(zhǔn)出版社,2009.
[3] GJB5000A-2008軍用軟件研制能力成熟度標(biāo)準(zhǔn)[S].
[4] 張德清.基于ISO9000實(shí)施CMMI L3過程改進(jìn)[D].電子科技大學(xué),2008.
[5] 劉晴靜.顯性知識(shí)和隱性知識(shí)在軟件過程改進(jìn)中的作用研究[D].華南理工大學(xué),2011.
[6] 呂良慶.軟件組織過程資產(chǎn)庫的設(shè)計(jì)[C]//中國(guó)空間科學(xué)學(xué)會(huì)空間探測(cè)專業(yè)委員會(huì)第二十六屆全國(guó)空間探測(cè)學(xué)術(shù)研討會(huì)會(huì)議論文集,2013.
[7] 王晶.基于CMMI的過程資產(chǎn)庫及其輔助管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].中國(guó)科學(xué)院研究生院,2012.
[8] 李彥新.基于CMMI的軟件過程度量及原型系統(tǒng)研究[D].西安科技大學(xué),2010.
收稿日期:2015-08-08。王勇,工程師,主研領(lǐng)域:軟件工程,軟件過程改進(jìn)。
中圖分類號(hào)TP3
文獻(xiàn)標(biāo)識(shí)碼A
DOI:10.3969/j.issn.1000-386x.2016.07.025
RESEARCH AND IMPLEMENTATION OF SOFTWARE PROCESS ASSETS LIBRARY
Wang Yong
(ChinaAirborneMissileAcademy,Luoyang471000,Henan,China)
AbstractThe applications of software products are increasingly widespread while the problems in software research and development process are also growing.Along with the constant exploration in industry,people gradually find that software reuse (including process reuse and product reuse) is one of the effective means to solve “software crisis”.Software processes assets library makes the reusable processes and reusable products accumulated in software research and development process be uniformly managed on informatisation platform,so as to facilitate the project teams to query and use them as well as to promote the improvement of software development efficiency and software products quality.From the point of view of organisation level,by constantly optimising the reusable processes and accumulating reusable products,it is able to implement continual software process improvement and to gradually improve the maturity of software development capability,and to constantly enhance the competitiveness of software organisation as well.In order to improve the software development capability,the Academy studied and set up the software process assets library.Results show that the software process assets library has the significant role in improving software research and development capability.
KeywordsSoftware process assets librarySoftware process improvementSoftware reuse