公務(wù)員期刊網(wǎng) 論文中心 正文

扎實(shí)推進(jìn)軟件工程化方式方法

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了扎實(shí)推進(jìn)軟件工程化方式方法范文,希望能給你帶來靈感和參考,敬請閱讀。

扎實(shí)推進(jìn)軟件工程化方式方法

摘要:我國開展軟件工程化推進(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)今社會的發(fā)展越來越離不開軟件的支撐,許多發(fā)達(dá)國家已將軟件視為“國家間競爭的重要武器”,把對軟件技術(shù)的研究和軟件產(chǎn)業(yè)的發(fā)展作為國家競相扶持的重點(diǎn)。如何提升軟件的技術(shù)能力,加強(qiáng)對軟件開發(fā)過程的管理,已經(jīng)成為軟件行業(yè)主要關(guān)注的方向。在裝備研制和使用保障過程中,質(zhì)量是關(guān)系官兵生命,關(guān)系戰(zhàn)爭勝負(fù)的重大問題。為確保我國軍品軟件產(chǎn)品質(zhì)量,總裝備部于2003開始引入由美國卡耐基﹒梅隆大學(xué)軟件工程研究所(CMU/SEI)提出的CMM/CMMI。在進(jìn)行深入研究CMM的基礎(chǔ)上,于2003年了基于CMM的GJB5000-2003《軍用軟件能力成熟度模型》[1]。經(jīng)過多年的試點(diǎn)和探索,2008年了基于CMMI-DEV1.2[2]的GJB5000A-2008《軍用軟件研制能力成熟度模型》[3]。規(guī)范了為達(dá)到研制高質(zhì)量的軍用軟件的目標(biāo),劃分了軟件研發(fā)能力等級以及各等級的典型特征和能力水平,并給出了如何持續(xù)改進(jìn)能力等級的具體指導(dǎo)[4]。但在將近二十年的推進(jìn)過程中,推進(jìn)效果并不是很理想。

1軟件工程化推進(jìn)現(xiàn)狀

1.1缺乏系統(tǒng)和專業(yè)的軟件工程化建設(shè)指導(dǎo)

按照GJB8000-2013《軍用軟件研制能力等級要求》[5],大多數(shù)軍品軟件承研單位需要滿足GJB5000A三級研制能力等級要求。GJB5000A三級需覆蓋17個(gè)過程域39個(gè)目標(biāo)132個(gè)特定實(shí)踐,內(nèi)容涵蓋了軟件工程和軟件過程管理的內(nèi)容[3]。原來開展軟件研制,軟件設(shè)計(jì)師主要依據(jù)GJB2786A-2009《軍用軟件開發(fā)通用要求》和GJB438B-2009《軍用軟件開發(fā)文檔通用要求》這兩份標(biāo)準(zhǔn),主要開展軟件工程相關(guān)的活動即可。GJB5000對軟件研制全生命周期的方方面面應(yīng)開展哪些活動都進(jìn)行了說明[5]。很多承研單位都面臨如何在軟件研發(fā)過程中開展項(xiàng)目策劃、項(xiàng)目監(jiān)控、風(fēng)險(xiǎn)管理、供方管理等方面的工作的困惑。參照美國軟件工程研究所(SEI)提出的SCAMPI評估方式[6]考評單位是否滿足GJB5000的目標(biāo),在如何開展、如何推進(jìn)方面沒有給出一定的指導(dǎo)。各單位的最佳實(shí)踐也沒有形成軍品承研單位共同的資產(chǎn),每個(gè)單位在軟件過程體系建設(shè)和軟件工程推進(jìn)中都是在重復(fù)不斷摸索。

1.2軟件研發(fā)過程與軟件工程化要求的沖突

隨著信息技術(shù)的發(fā)展,應(yīng)用于新領(lǐng)域系統(tǒng)的軍品軟件越來越多,系統(tǒng)需求不明確是經(jīng)常存在的情況。在系統(tǒng)需求不明確的情況下,軟件需求也無法明確和清晰。在軟件研制進(jìn)度緊張、技術(shù)難度高和人力資源緊張時(shí),為了減少不必要的軟件研發(fā)投入,往往先開展軟件代碼的編寫、調(diào)試和系統(tǒng)聯(lián)試,在反復(fù)迭代確認(rèn)軟件需求后,才根據(jù)軟件代碼開展軟件需求和設(shè)計(jì)的編寫。造成軟件工程化的需求分析、需求管理等活動證據(jù)缺乏,規(guī)范的工作分解結(jié)構(gòu)(WorkBreakdownStructure)任務(wù)策劃與實(shí)際開展的軟件工程活動沖突(如正常應(yīng)該是先需求分析、再設(shè)計(jì)、后編碼,而實(shí)際是先編碼,后補(bǔ)充需求分析和設(shè)計(jì)的證據(jù))。造成軟件工程化實(shí)施無法給出合理的證據(jù)。

1.3軟件工程師技能與工程化要求的不匹配

GJB5000A對項(xiàng)目的軟件工程化的開發(fā)和管理都提出了很高要求,軟件設(shè)計(jì)師是順利開展軟件工程化的關(guān)鍵角色。軟件設(shè)計(jì)師由原來只需熟悉GJB438B-2009《軍用軟件開發(fā)文檔通用要求》和GJB2786A-2009《軍用軟件開發(fā)通用要求》,還需熟悉項(xiàng)目管理的相關(guān)內(nèi)容(如項(xiàng)目策劃、項(xiàng)目監(jiān)控、風(fēng)險(xiǎn)管理、資源管理等)。由原來的只需開展軟件工程活動,到軟件工程活動和軟件過程活動都得理解和開展。從開發(fā)過程中對需求、設(shè)計(jì)及實(shí)現(xiàn)的具體活動定義,到項(xiàng)目管理、跟蹤報(bào)告的周期機(jī)制,事無巨細(xì)[7]。軟件設(shè)計(jì)師的技能與工程化的要求存在的不小的差距。

2推進(jìn)軟件工程化的方式方法

戴明(W.E.Deming)和朱蘭(J.Juran)指出一個(gè)系統(tǒng)的質(zhì)量主要取決于用來開發(fā)和維護(hù)該系統(tǒng)的過程的質(zhì)量。而GJB5000就是通過規(guī)范軟件研發(fā)過程的活動,避免軟件過程無規(guī)則和混亂的管理,來確保軟件產(chǎn)品的質(zhì)量。GJB5000給出了系統(tǒng)的開展軟件過程活動的具體要求和實(shí)施的具體指導(dǎo)[4]。結(jié)合具體軟件過程工程化的開展方面,筆者認(rèn)為可以采取一些好的方式方法。

2.1構(gòu)建面向全組織的軟件工程過程組織架構(gòu)

承研單位和軟件設(shè)計(jì)師對開展軟件工程化的第一反應(yīng)是抗拒,這是目前普遍存在的現(xiàn)象。軟件工程化要求多、內(nèi)容復(fù)雜。軟件工程化評價(jià)專家對GJB5000有各自不同的理解。造成承研單位對具體如何開展、如何實(shí)施無所適從。各單位在推進(jìn)過程中,除了軟件工程化的交流資料外,可借鑒和參考的資料有限。再加上軟件工程化推進(jìn)短期內(nèi)無法看到效果,軟件工程師普遍認(rèn)為軟件工程化推進(jìn)沒必要和無意義。為降低各單位推進(jìn)軟件工程化的難度,降低軟件工程師對推進(jìn)軟件工程化的抵觸心里,提高開展軟件工程化推進(jìn)的積極性,應(yīng)構(gòu)建全組織的軟件工程過程組織架構(gòu)。為軍品承研單位的互相學(xué)習(xí)、相互借鑒,最佳實(shí)踐在軟件工程化推進(jìn)中的推廣搭建平臺。搭建的平臺如圖1所示。軍品裝備發(fā)展部SEPG管理全組織的軟件工程化專家、評價(jià)專家,可有效的收集到各承制公司和承制單位的最佳實(shí)踐。在對其進(jìn)行梳理和整理后,可構(gòu)建全組織的軟件工程化組織資產(chǎn),為各承制公司提供知識共享。承制公司SEPG負(fù)責(zé)本公司內(nèi)的最佳實(shí)踐收集、資源共享,負(fù)責(zé)本公司內(nèi)的最佳實(shí)踐的收集和推廣。該組織可確保最佳實(shí)踐在全組織內(nèi)的有效利用,減少不必要的軟件工程化建設(shè)的重復(fù)工作,提高軟件工程化推進(jìn)的效率,消除各承制單位的孤島狀態(tài)。

2.2軟件工程過程要求為導(dǎo)向的求同存異推進(jìn)

能否直接或間接的提高軟件產(chǎn)品質(zhì)量是檢驗(yàn)軟件工程過程活動必要性和有效性的標(biāo)準(zhǔn)。我國在引進(jìn)CMM/CMMI時(shí),根據(jù)軍品軟件研制的特點(diǎn)進(jìn)行了本地化的修訂,但在推進(jìn)的過程中還是存在了一些問題。如評價(jià)時(shí)以GJB5000A的資料性部件為標(biāo)準(zhǔn),不滿足就是不合格,造成軟件工程師對軟件工程化推進(jìn)的抵觸心里。國外的一些標(biāo)桿企業(yè),如波音、柯林斯、洛克希德馬丁等也達(dá)到了三級以上的成熟度等級,但并不是完全照搬CMMI,其中有一些公司是采用了公司自己的管理機(jī)制(為類三級)。這說明在國外的軟件工程化推進(jìn)過程中,其主要目標(biāo)是滿足軟件工程化的要求即可,沒對采取的形式進(jìn)行限制。我國軍品軟件研制單位各有各的實(shí)際情況,各有各的特點(diǎn),完全按照同一個(gè)模式開展推進(jìn)是不可能也是不現(xiàn)實(shí)的。應(yīng)允許單位根據(jù)各自的特點(diǎn)開展推進(jìn)。

2.3緊密結(jié)合軍品軟件研制特點(diǎn)制定推進(jìn)方式

我國裝備軟件發(fā)展的過程中,存在一些自身的特點(diǎn)。武器裝備的研發(fā)模式而影響的軍品軟件的開發(fā)模式,如軟件研發(fā)普遍存在的時(shí)間緊(軟件作為武器裝備研發(fā)的后端)、需求變動大(改軟件比硬件方便,成本低)、軟件研發(fā)不受重視(軟件基本不計(jì)價(jià))等。遵循軟件工程過程的要求開展,存在一定的難度。如目前普遍存在的逆向工程問題,是沒法回避的現(xiàn)實(shí)問題。如果生搬硬套,既違背了GJB5000推進(jìn)的初衷,又增加了不必要的工作量。針對這種普遍存在的共性問題,應(yīng)組織全組織的軟件工程過程組織進(jìn)行專題討論,在確保軟件產(chǎn)品質(zhì)量的前提下,討論具體推進(jìn)的方式和方法,并作為全組織的最佳實(shí)踐進(jìn)行推廣。從而減少各單位對這種共性問題如何推進(jìn)的不必要的和重復(fù)的摸索、討論、試點(diǎn)和解釋。

2.4軟件工程師針對性的技能培訓(xùn)

GJB5000A的推進(jìn)從二級開始。GJB5000A二級包含7個(gè)過程域(配置管理、測量與分析、項(xiàng)目監(jiān)控、項(xiàng)目策劃、過程和產(chǎn)品質(zhì)量保證、需求管理、供方協(xié)議管理),除需求管理外都屬于支持類和項(xiàng)目管理類的過程域。7個(gè)過程域基本上是軟件工程師在研發(fā)過程中不太關(guān)注的內(nèi)容,對軟件工程師開展所有的培訓(xùn)成本高,效果也不會太理想。應(yīng)對軟件項(xiàng)目中的軟件負(fù)責(zé)人開展這方面的培訓(xùn),軟件負(fù)責(zé)人在進(jìn)行具體的推進(jìn)過程中,結(jié)合具體的工作內(nèi)容有針對性的對軟件工程師進(jìn)行指導(dǎo)即可。確保軟件項(xiàng)目中有軟件過程的明白人。

3結(jié)束語

軟件工程化推進(jìn)是一個(gè)復(fù)雜的系統(tǒng)工程,需要在具體實(shí)踐中不斷的探索、研究新的方式和方法,尋求更為合適的推進(jìn)途徑。目前,軍用軟件開發(fā)和應(yīng)用的范圍越來越廣,軍用軟件對武器裝備的質(zhì)量起著至關(guān)重要的作用。在軟件工程化的推進(jìn)實(shí)踐中,在執(zhí)行國家軍用標(biāo)準(zhǔn)的同時(shí),探索合適的軟件工程化推進(jìn)模式,從而提升軍用軟件的產(chǎn)品質(zhì)量。

參考文獻(xiàn)

[3]GJB5000A-2008軍用軟件研制能力成熟度模型.

[4]石柱,軍用軟件研制能力成熟度模型及其應(yīng)用[M].北京:中國標(biāo)準(zhǔn)出版社,2009.

[5]GJB8000-2013軍用軟件研制能力等級要求.

[6]過程改進(jìn)用的標(biāo)準(zhǔn)CMMI評估方法(SCAMPI)實(shí)施指南(QRMS-41).王方德,譯.總裝備部電子信息基礎(chǔ)部技術(shù)基礎(chǔ)局,2005.

[7]任甲林.術(shù)以載道——軟件過程改進(jìn)實(shí)踐指南[M].北京:人民郵電出版社,2014.

[8]石柱.軟件質(zhì)量管理[M].北京:航空工業(yè)出版社,2003

[9]鄧成飛,李潔.軟件工程管理.北京:國防工業(yè)出版社,2000.

[10]張萬軍,鄭寧,趙宇蘭.基于CMMI的軟件工程及實(shí)訓(xùn)指導(dǎo).清華大學(xué)出版社2011.

[11]任甲林.術(shù)以載道——軟件過程改進(jìn)實(shí)踐指南人民郵電出版社2014.

作者:程春姬 單位:中國航空無線電電子研究所