前言:想要寫出一篇引人入勝的文章?我們特意為您整理了扎實(shí)推進(jìn)軟件工程化方式方法范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。
摘要:我國(guó)開(kāi)展軟件工程化推進(jìn)多年,但效果并不是很理想。筆者結(jié)合軟件工程化推進(jìn)的現(xiàn)狀,根據(jù)多年軍品軟件研發(fā)和軟件工程化推進(jìn)的實(shí)踐經(jīng)驗(yàn),提出了推進(jìn)軟件工程化的一些方式和方法,以期能在推進(jìn)軟件工程化尤其是在提高軟件產(chǎn)品質(zhì)量方面起到應(yīng)有的效果。
關(guān)鍵詞:GJB5000;軟件工程化;軟件能力成熟度;CMM;CMMI
引言
當(dāng)今社會(huì)的發(fā)展越來(lái)越離不開(kāi)軟件的支撐,許多發(fā)達(dá)國(guó)家已將軟件視為“國(guó)家間競(jìng)爭(zhēng)的重要武器”,把對(duì)軟件技術(shù)的研究和軟件產(chǎn)業(yè)的發(fā)展作為國(guó)家競(jìng)相扶持的重點(diǎn)。如何提升軟件的技術(shù)能力,加強(qiáng)對(duì)軟件開(kāi)發(fā)過(guò)程的管理,已經(jīng)成為軟件行業(yè)主要關(guān)注的方向。在裝備研制和使用保障過(guò)程中,質(zhì)量是關(guān)系官兵生命,關(guān)系戰(zhàn)爭(zhēng)勝負(fù)的重大問(wèn)題。為確保我國(guó)軍品軟件產(chǎn)品質(zhì)量,總裝備部于2003開(kāi)始引入由美國(guó)卡耐基﹒梅隆大學(xué)軟件工程研究所(CMU/SEI)提出的CMM/CMMI。在進(jìn)行深入研究CMM的基礎(chǔ)上,于2003年了基于CMM的GJB5000-2003《軍用軟件能力成熟度模型》[1]。經(jīng)過(guò)多年的試點(diǎn)和探索,2008年了基于CMMI-DEV1.2[2]的GJB5000A-2008《軍用軟件研制能力成熟度模型》[3]。規(guī)范了為達(dá)到研制高質(zhì)量的軍用軟件的目標(biāo),劃分了軟件研發(fā)能力等級(jí)以及各等級(jí)的典型特征和能力水平,并給出了如何持續(xù)改進(jìn)能力等級(jí)的具體指導(dǎo)[4]。但在將近二十年的推進(jìn)過(guò)程中,推進(jìn)效果并不是很理想。
1軟件工程化推進(jìn)現(xiàn)狀
1.1缺乏系統(tǒng)和專業(yè)的軟件工程化建設(shè)指導(dǎo)
按照GJB8000-2013《軍用軟件研制能力等級(jí)要求》[5],大多數(shù)軍品軟件承研單位需要滿足GJB5000A三級(jí)研制能力等級(jí)要求。GJB5000A三級(jí)需覆蓋17個(gè)過(guò)程域39個(gè)目標(biāo)132個(gè)特定實(shí)踐,內(nèi)容涵蓋了軟件工程和軟件過(guò)程管理的內(nèi)容[3]。原來(lái)開(kāi)展軟件研制,軟件設(shè)計(jì)師主要依據(jù)GJB2786A-2009《軍用軟件開(kāi)發(fā)通用要求》和GJB438B-2009《軍用軟件開(kāi)發(fā)文檔通用要求》這兩份標(biāo)準(zhǔn),主要開(kāi)展軟件工程相關(guān)的活動(dòng)即可。GJB5000對(duì)軟件研制全生命周期的方方面面應(yīng)開(kāi)展哪些活動(dòng)都進(jìn)行了說(shuō)明[5]。很多承研單位都面臨如何在軟件研發(fā)過(guò)程中開(kāi)展項(xiàng)目策劃、項(xiàng)目監(jiān)控、風(fēng)險(xiǎn)管理、供方管理等方面的工作的困惑。參照美國(guó)軟件工程研究所(SEI)提出的SCAMPI評(píng)估方式[6]考評(píng)單位是否滿足GJB5000的目標(biāo),在如何開(kāi)展、如何推進(jìn)方面沒(méi)有給出一定的指導(dǎo)。各單位的最佳實(shí)踐也沒(méi)有形成軍品承研單位共同的資產(chǎn),每個(gè)單位在軟件過(guò)程體系建設(shè)和軟件工程推進(jìn)中都是在重復(fù)不斷摸索。
1.2軟件研發(fā)過(guò)程與軟件工程化要求的沖突
隨著信息技術(shù)的發(fā)展,應(yīng)用于新領(lǐng)域系統(tǒng)的軍品軟件越來(lái)越多,系統(tǒng)需求不明確是經(jīng)常存在的情況。在系統(tǒng)需求不明確的情況下,軟件需求也無(wú)法明確和清晰。在軟件研制進(jìn)度緊張、技術(shù)難度高和人力資源緊張時(shí),為了減少不必要的軟件研發(fā)投入,往往先開(kāi)展軟件代碼的編寫、調(diào)試和系統(tǒng)聯(lián)試,在反復(fù)迭代確認(rèn)軟件需求后,才根據(jù)軟件代碼開(kāi)展軟件需求和設(shè)計(jì)的編寫。造成軟件工程化的需求分析、需求管理等活動(dòng)證據(jù)缺乏,規(guī)范的工作分解結(jié)構(gòu)(WorkBreakdownStructure)任務(wù)策劃與實(shí)際開(kāi)展的軟件工程活動(dòng)沖突(如正常應(yīng)該是先需求分析、再設(shè)計(jì)、后編碼,而實(shí)際是先編碼,后補(bǔ)充需求分析和設(shè)計(jì)的證據(jù))。造成軟件工程化實(shí)施無(wú)法給出合理的證據(jù)。
1.3軟件工程師技能與工程化要求的不匹配
GJB5000A對(duì)項(xiàng)目的軟件工程化的開(kāi)發(fā)和管理都提出了很高要求,軟件設(shè)計(jì)師是順利開(kāi)展軟件工程化的關(guān)鍵角色。軟件設(shè)計(jì)師由原來(lái)只需熟悉GJB438B-2009《軍用軟件開(kāi)發(fā)文檔通用要求》和GJB2786A-2009《軍用軟件開(kāi)發(fā)通用要求》,還需熟悉項(xiàng)目管理的相關(guān)內(nèi)容(如項(xiàng)目策劃、項(xiàng)目監(jiān)控、風(fēng)險(xiǎn)管理、資源管理等)。由原來(lái)的只需開(kāi)展軟件工程活動(dòng),到軟件工程活動(dòng)和軟件過(guò)程活動(dòng)都得理解和開(kāi)展。從開(kāi)發(fā)過(guò)程中對(duì)需求、設(shè)計(jì)及實(shí)現(xiàn)的具體活動(dòng)定義,到項(xiàng)目管理、跟蹤報(bào)告的周期機(jī)制,事無(wú)巨細(xì)[7]。軟件設(shè)計(jì)師的技能與工程化的要求存在的不小的差距。
2推進(jìn)軟件工程化的方式方法
戴明(W.E.Deming)和朱蘭(J.Juran)指出一個(gè)系統(tǒng)的質(zhì)量主要取決于用來(lái)開(kāi)發(fā)和維護(hù)該系統(tǒng)的過(guò)程的質(zhì)量。而GJB5000就是通過(guò)規(guī)范軟件研發(fā)過(guò)程的活動(dòng),避免軟件過(guò)程無(wú)規(guī)則和混亂的管理,來(lái)確保軟件產(chǎn)品的質(zhì)量。GJB5000給出了系統(tǒng)的開(kāi)展軟件過(guò)程活動(dòng)的具體要求和實(shí)施的具體指導(dǎo)[4]。結(jié)合具體軟件過(guò)程工程化的開(kāi)展方面,筆者認(rèn)為可以采取一些好的方式方法。
2.1構(gòu)建面向全組織的軟件工程過(guò)程組織架構(gòu)
承研單位和軟件設(shè)計(jì)師對(duì)開(kāi)展軟件工程化的第一反應(yīng)是抗拒,這是目前普遍存在的現(xiàn)象。軟件工程化要求多、內(nèi)容復(fù)雜。軟件工程化評(píng)價(jià)專家對(duì)GJB5000有各自不同的理解。造成承研單位對(duì)具體如何開(kāi)展、如何實(shí)施無(wú)所適從。各單位在推進(jìn)過(guò)程中,除了軟件工程化的交流資料外,可借鑒和參考的資料有限。再加上軟件工程化推進(jìn)短期內(nèi)無(wú)法看到效果,軟件工程師普遍認(rèn)為軟件工程化推進(jìn)沒(méi)必要和無(wú)意義。為降低各單位推進(jìn)軟件工程化的難度,降低軟件工程師對(duì)推進(jìn)軟件工程化的抵觸心里,提高開(kāi)展軟件工程化推進(jìn)的積極性,應(yīng)構(gòu)建全組織的軟件工程過(guò)程組織架構(gòu)。為軍品承研單位的互相學(xué)習(xí)、相互借鑒,最佳實(shí)踐在軟件工程化推進(jìn)中的推廣搭建平臺(tái)。搭建的平臺(tái)如圖1所示。軍品裝備發(fā)展部SEPG管理全組織的軟件工程化專家、評(píng)價(jià)專家,可有效的收集到各承制公司和承制單位的最佳實(shí)踐。在對(duì)其進(jìn)行梳理和整理后,可構(gòu)建全組織的軟件工程化組織資產(chǎn),為各承制公司提供知識(shí)共享。承制公司SEPG負(fù)責(zé)本公司內(nèi)的最佳實(shí)踐收集、資源共享,負(fù)責(zé)本公司內(nèi)的最佳實(shí)踐的收集和推廣。該組織可確保最佳實(shí)踐在全組織內(nèi)的有效利用,減少不必要的軟件工程化建設(shè)的重復(fù)工作,提高軟件工程化推進(jìn)的效率,消除各承制單位的孤島狀態(tài)。
2.2軟件工程過(guò)程要求為導(dǎo)向的求同存異推進(jìn)
能否直接或間接的提高軟件產(chǎn)品質(zhì)量是檢驗(yàn)軟件工程過(guò)程活動(dòng)必要性和有效性的標(biāo)準(zhǔn)。我國(guó)在引進(jìn)CMM/CMMI時(shí),根據(jù)軍品軟件研制的特點(diǎn)進(jìn)行了本地化的修訂,但在推進(jìn)的過(guò)程中還是存在了一些問(wèn)題。如評(píng)價(jià)時(shí)以GJB5000A的資料性部件為標(biāo)準(zhǔn),不滿足就是不合格,造成軟件工程師對(duì)軟件工程化推進(jìn)的抵觸心里。國(guó)外的一些標(biāo)桿企業(yè),如波音、柯林斯、洛克希德馬丁等也達(dá)到了三級(jí)以上的成熟度等級(jí),但并不是完全照搬CMMI,其中有一些公司是采用了公司自己的管理機(jī)制(為類三級(jí))。這說(shuō)明在國(guó)外的軟件工程化推進(jìn)過(guò)程中,其主要目標(biāo)是滿足軟件工程化的要求即可,沒(méi)對(duì)采取的形式進(jìn)行限制。我國(guó)軍品軟件研制單位各有各的實(shí)際情況,各有各的特點(diǎn),完全按照同一個(gè)模式開(kāi)展推進(jìn)是不可能也是不現(xiàn)實(shí)的。應(yīng)允許單位根據(jù)各自的特點(diǎn)開(kāi)展推進(jìn)。
2.3緊密結(jié)合軍品軟件研制特點(diǎn)制定推進(jìn)方式
我國(guó)裝備軟件發(fā)展的過(guò)程中,存在一些自身的特點(diǎn)。武器裝備的研發(fā)模式而影響的軍品軟件的開(kāi)發(fā)模式,如軟件研發(fā)普遍存在的時(shí)間緊(軟件作為武器裝備研發(fā)的后端)、需求變動(dòng)大(改軟件比硬件方便,成本低)、軟件研發(fā)不受重視(軟件基本不計(jì)價(jià))等。遵循軟件工程過(guò)程的要求開(kāi)展,存在一定的難度。如目前普遍存在的逆向工程問(wèn)題,是沒(méi)法回避的現(xiàn)實(shí)問(wèn)題。如果生搬硬套,既違背了GJB5000推進(jìn)的初衷,又增加了不必要的工作量。針對(duì)這種普遍存在的共性問(wèn)題,應(yīng)組織全組織的軟件工程過(guò)程組織進(jìn)行專題討論,在確保軟件產(chǎn)品質(zhì)量的前提下,討論具體推進(jìn)的方式和方法,并作為全組織的最佳實(shí)踐進(jìn)行推廣。從而減少各單位對(duì)這種共性問(wèn)題如何推進(jìn)的不必要的和重復(fù)的摸索、討論、試點(diǎn)和解釋。
2.4軟件工程師針對(duì)性的技能培訓(xùn)
GJB5000A的推進(jìn)從二級(jí)開(kāi)始。GJB5000A二級(jí)包含7個(gè)過(guò)程域(配置管理、測(cè)量與分析、項(xiàng)目監(jiān)控、項(xiàng)目策劃、過(guò)程和產(chǎn)品質(zhì)量保證、需求管理、供方協(xié)議管理),除需求管理外都屬于支持類和項(xiàng)目管理類的過(guò)程域。7個(gè)過(guò)程域基本上是軟件工程師在研發(fā)過(guò)程中不太關(guān)注的內(nèi)容,對(duì)軟件工程師開(kāi)展所有的培訓(xùn)成本高,效果也不會(huì)太理想。應(yīng)對(duì)軟件項(xiàng)目中的軟件負(fù)責(zé)人開(kāi)展這方面的培訓(xùn),軟件負(fù)責(zé)人在進(jìn)行具體的推進(jìn)過(guò)程中,結(jié)合具體的工作內(nèi)容有針對(duì)性的對(duì)軟件工程師進(jìn)行指導(dǎo)即可。確保軟件項(xiàng)目中有軟件過(guò)程的明白人。
3結(jié)束語(yǔ)
軟件工程化推進(jìn)是一個(gè)復(fù)雜的系統(tǒng)工程,需要在具體實(shí)踐中不斷的探索、研究新的方式和方法,尋求更為合適的推進(jìn)途徑。目前,軍用軟件開(kāi)發(fā)和應(yīng)用的范圍越來(lái)越廣,軍用軟件對(duì)武器裝備的質(zhì)量起著至關(guān)重要的作用。在軟件工程化的推進(jìn)實(shí)踐中,在執(zhí)行國(guó)家軍用標(biāo)準(zhǔn)的同時(shí),探索合適的軟件工程化推進(jìn)模式,從而提升軍用軟件的產(chǎn)品質(zhì)量。
參考文獻(xiàn)
[3]GJB5000A-2008軍用軟件研制能力成熟度模型.
[4]石柱,軍用軟件研制能力成熟度模型及其應(yīng)用[M].北京:中國(guó)標(biāo)準(zhǔn)出版社,2009.
[5]GJB8000-2013軍用軟件研制能力等級(jí)要求.
[6]過(guò)程改進(jìn)用的標(biāo)準(zhǔn)CMMI評(píng)估方法(SCAMPI)實(shí)施指南(QRMS-41).王方德,譯.總裝備部電子信息基礎(chǔ)部技術(shù)基礎(chǔ)局,2005.
[7]任甲林.術(shù)以載道——軟件過(guò)程改進(jìn)實(shí)踐指南[M].北京:人民郵電出版社,2014.
[8]石柱.軟件質(zhì)量管理[M].北京:航空工業(yè)出版社,2003
[9]鄧成飛,李潔.軟件工程管理.北京:國(guó)防工業(yè)出版社,2000.
[10]張萬(wàn)軍,鄭寧,趙宇蘭.基于CMMI的軟件工程及實(shí)訓(xùn)指導(dǎo).清華大學(xué)出版社2011.
[11]任甲林.術(shù)以載道——軟件過(guò)程改進(jìn)實(shí)踐指南人民郵電出版社2014.
作者:程春姬 單位:中國(guó)航空無(wú)線電電子研究所