劉 棟劉中杰尚 玉文昌辭孟慶鑫
(1.中國人民解放軍空軍駐京昌地區軍事代表室,北京 100000;2.中國電子科學研究院,北京 100041)
對軍用軟件維護標準更新的探討
劉 棟1劉中杰1尚 玉1文昌辭1孟慶鑫2
(1.中國人民解放軍空軍駐京昌地區軍事代表室,北京 100000;2.中國電子科學研究院,北京 100041)
分析了軍用軟件維護的需求,提出了GJB 1267-1991《軍用軟件維護》的修訂原則,可使軟件維護工作的規范化,并完善軟件售后技術服務內容和軟件的更新升級等,提高軟件維護質量。
軍用軟件維護;售后技術服務;標準修訂
隨著計算機科學技術的飛速發展和信息化程度的不斷提高,軍用軟件已經成為多種大型復雜信息化武器裝備的核心組成部分,成為我軍克敵制勝的關鍵。GJB 1267-1991《軍用軟件維護》頒布于1991年,是武器裝備軟件動態維護的規范性文件,其依據和內容與現階段的武器裝備軟件特點及軟件開發的相關標準有了很大的差異,這就造成在使用其標準時遇到很多問題,因此對GJB 1267-1991進行修訂勢在必行。
軟件生命周期由軟件定義、軟件開發和運行維護3個時期組成[1]。運行維護是指在軟件產品發布后,因修正錯誤、提升性能或其他屬性而進行的軟件修改。具體地說,就是在軟件使用階段持久地滿足用戶需要:當軟件在使用過程中發現錯誤時應當加以改正;當環境改變時應該修改軟件以適應新的環境;當用戶有新的要求時應該及時改進軟件等等。許多軟件產品的使用壽命長達10年甚至更多時間,在這樣漫長的壽命期中不僅必須改正使用過程中發現的每一個潛在錯誤,而且當環境變化(例如硬件或系統軟件更新換代)時還必須修改軟件以適應新的環境。所有的這些改動都屬于維護工作,而且都是在軟件完成之后。因此維護極其艱巨復雜,需要花費很大的代價。統計數據表明,實際上用于軟件維護的費用占軟件總費用的55%~70%[2],從這個數字可以看出軟件維護的重要性。
2.1 GJB 1267-1991引用的標準均已修訂
GJB 1267-1991《軍用軟件維護》包括7大條款,規定了軟件維護的內容與類型、軟件維護組織、軟件維護過程和維護管理,并提供了兩個報告范本,為軍用軟件的維護規定了統一的、最基本的要求。其引用的GJB 437-1988《軍用軟件開發規范》、GJB 438-1988《軍用軟件文檔編制規范》、GJB 439-1988《軍用軟件質量保證規范》、GJB 1268-1991《軍用軟件驗收》和GJB 1091-1991《軍用軟件需求分析》5個標準中的4個已更新,分別為GJB 438B-2009《軍用軟件開發文檔通用要求》、GJB 439A-2013《軍用軟件質量保證通用要求》、GJB 1268A-2004《軍用軟件驗收要求》和GJB 2786A-2009《軍用軟件開發通用要求》,變化最大的是GJB 2786A-2009和GJB 438B-2009。GJB 2786A-2009代替GJB 437-1988、GJB 2786-1996《武器系統軟件開發》和GJB 2255-1994《軍用軟件產品》,增加了使用和開發可重用軟件產品、系統合格性測試、軟件驗收支持、軟件質量保證、測量和分析以及保密性有關活動、與相關開發方的協調和項目過程的改進等方面的要求;修改完善了項目策劃和監控、系統需求分析、系統設計、CSCI/ HWCI集成與測試、軟件使用準備、聯合評審、風險管理、與軟件獨立驗證和確認機構的聯系等方面的內容。GJB 438B-2009也依據GJB 2786A-2009從軟件開發和管理的角度,規范了相應的文檔編制要求,文檔的數量也增加到28個。這些變化促使軍用軟件維護標準亟需更新。
2.2 GJB 1267-1991與售后技術服務等相關標準
GJB 1267-1991第6.2“確定維護類型”規定:“…根據用戶提供的軟件問題報告,進行維護分析,確定修改的需求和維護類型。”可以看出軟件維護輸入是用戶提供的軟件問題報告或其他形式用戶意見和需求。而現實中由于現代大型信息化武器裝備軟件技術含量高、結構組成復雜、軟件集成交聯度高等特點,很多時候用戶是判斷不出故障是硬件問題還是軟件問題的,更不用說是軟件質量問題還是軟件故障。用戶只是把問題發生的現象和時機記錄下來交給企業的售后技術人員,對問題的分析定位歸入售后質量問題處理流程,即GJB 5711-2006《裝備質量問題處理通用要求》流程,因此GJB 1267-1991中應按照GJB 5711-2006更新。
2.3 GJB 1267-1991與糾正措施等相關標準
GJB 1267-1991以6.5.3“驗收”為結束,沒有提及軟件維護驗收合格后企業還應該怎么做,或者進行軟件升級等事項。因此GJB 1267-1991修訂還需要增加參照GJB 5922-2007《飛機技術通報編制要求》和GJB 4757-1997(GJB/Z 20376-1997)《武器裝備技術通報編制規范》等標準實施軟件升級等事項。
3.1 GJB 1267-1991的更新
為了使GJB 1267-1991在實際軟件維護工程中具有可操作性,因此該標準的內容更新原則為:“前沿、中更、后展”。“前沿”就是考慮企業售后技術服務體系,可根據GJB 4072A-2006《軍用軟件質量監督要求》要求,將GJB 5707-2006《裝備售后技術服務質量監督要求》、GJB/Z 3-1988《軍工產品售后技術服務》和GJB 5711-2006等標準的部分內容引用或增加。“中更”就是對GJB 1267-1991中的內容進行更新,使其與現行的軟件工程標準體系相適應。“后展”就是將維護后的軟件經GJB 1268A-2004驗收后,再拓展到歸零或評審、及對已交付的裝備軟件進行更新升級。
3.2 GJB 1267-1991的修訂前沿
首先確定GJB 1267-1991修訂的前沿點。根據某大型信息化武器裝備軟件維護經驗[3],選擇把軟件維護申請批準作為前沿點。理由是現代大型信息化武器裝備軟件技術含量高、結構組成復雜、軟件集成交聯度高等特點,造成了軟件故障的定位或新需求是否可行比較復雜,軟件更改或升級影響大,所以故障定位或新需求一般是由兩三級組織共同來對問題進行分析、定位、復現等,最后是否更改還應得到使用機關的批準后方可進行軟件維護。其次確定GJB 1267-1991修訂的前沿標準,按照GJB 4072A-2006第5.5.1“軟件質量問題的處理”中規定:5.5.1“發現軟件質量問題后,應及時進行調查取證,確定質量問題性質,按照GJB 5711-2006《裝備質量問題處理通用要求》的要求及時進行處理。”可知修訂前沿的標準為GJB 5711-2006,軍用軟件維護需求的確定見圖1。

圖1 軍用軟件維護需求的確定
4.1 相關標準
根據實際情況,其修訂內容要增加GJB 2786A-2009,使得維護過程與軟件設計開發的過程、內容相一致;將最新的GJB 438B-2009、GJB 439A-2013、GJB 1268A-2004、GJB 5235-2004 《軍用軟件配置管理》、GJB 4072A-2006、GJB/Z 141-2004《軍用軟件測試指南》、GB/T 14079-1993《軟件維護指南》和GB/T 20157-2006《信息技術軟件維護》等標準的內容和過程進行代替,并融匯到GJB 1267-1991修訂中去,使得武器裝備軟件維護的過程、內容與最新的軟件工程化體系相一致,不斷增強軟件的可使用性。
4.2 維護類型
參照GB/T 14079-1993《軟件維護指南》和GB/T 20157-2006《信息技術軟件維護》,將軟件維護類型由原來的3類擴展為4類[4]:
a)糾正性維護;
b)適應性維護;
c)完善性維護;
d)預防性維護。
其中預防性維護系指由于在軟件產品中檢測到潛在差錯而必須作的更改。預防性維護通常涉及到安全性。
4.3 維護過程
依據GJB 1267-1991并結合GJB 2786A-2009和GB/T 14079-1993的內容,規定軟件維護過程為:
a)確定修改需求;b)收集維護信息;c)確定維護類型;
d)維護申請和審批;
e)計劃與實施(更改需求分析和方案設計、規格說明、編碼修改和排錯、測試、更新文檔和維護記錄等);
f)復查、評審與驗收。
4.4 確定修改需求
由系統總體問題審理委員會/配置控制委員會(簡稱“委員會”)對需求進行審查、核實、分級等,然后上報顧客機關;機關組織專家通過大會形式確定修改或新增需求;顧客代表和企業依據大會紀要正式辦理修改或新增需求輸入手續,確定修改需求。
4.5 收集維護信息
在維護工作開始時,維護人員必須收集維護信息。維護信息主要包括原軟件的基礎信息和需求信息,具體有:
a)開發階段的各類文檔(如軟件需求說明、數據要求說明、概要和詳細設計說明、程序維護手冊和測試分析報告等文檔),程序編制標準和約定、維護防范、檢驗步驟以及維護時的特殊要求,軟件功能、設計思想和方法、程序結構、關鍵模塊接口及維護歷史等,以及其他維護信息,如維護工具的可用情況,軟件本身的可理解性、可測試性、可修改性等;
b)用戶軟件需求報告及其他形式的用戶意見和建議。
4.6 確定維護類型
提出軟件維護申請的人員必須全面、準確地理解軟件的功能和目標、程序的內部結構和程序的操作要求,并根據用戶的軟件需求報告和總體問題審理委員會/配置控制委員會的判定,確定修改的維護類型。
4.7 維護申請和審批
4.7.1 申請
申請軟件維護時,申請必須是正規的書面請求,必須向委員會提交軟件維護申請表、軟件需求報告和附加報告。附加報告的內容根據維護類型而定,包括有:
a)運行時的出錯信息;
b)輸入輸出數據的清單;
c)關于硬件環境的描述;
d)現用軟件的說明;
e)環境變化的描述;
f)功能或性能變化的描述;
g)對維護要求的說明;
h)維護記錄與文檔等。
對于糾錯性維護,必須完整地說明產生錯誤的情況、機理分析和復現情況等。對于適應性維護,必須說明修改前后運行環境的變化。對于完善性維護,必須說明修改前后軟件功能或性能的變化。
4.7.2 審批
委員會和顧客代表共同負責審批維護申請,審批工作步驟為:
a)委員會對維護申請報告進行核實,以確定可否批準。如不能批準,則應說明原因,退回軟件維護申請表;如批準,委員會將指定維護員擬定維護方案;
b)依據GJB 5716-2006《軍用軟件開發庫、受控庫和產品庫通用要求》第7.6“更改控制”第b條的規定,要求申請單上必須得到顧客代表的簽字認可才能生效;
c)批準生效后維護人員依據GJB 5716-2006第7.5“出庫控制”規定對修改軟件進行出產品庫、入受控庫、出受控庫、入開發庫,準備實施修改。
4.8 計劃與實施
4.8.1 維護計劃
依據GJB 438B-2009第4.4“文檔裁剪”和第5.7“軟件開發計劃”等要求,委員會和顧客代表可根據修改規模等共同授權,可以將維護計劃、配置管理計劃、質量保證計劃等內容合并到維護計劃或方案中去。主要內容包括:維護任務的范圍,所需資源,維護要求,經費預算,進度安排,支持條件,評審節點要求等。維護計劃經委員會和顧客代表審簽后開始執行。維護主管和委員會負責檢查、督促并保證計劃的完成。計劃如需要修改,必須經委員會和顧客代表同意。
4.8.2 實施
維護工作與新軟件開發工作相似,分為更改方案設計、規格說明、編碼修改和排錯、測試、更新文檔和維護記錄等步驟。其內容必須按照GJB 2786A-2009、GJB 438B-2009、GJB 439A-2013、GJB 1268A-2004、GJB 5235-2004、GJB 4072A-2006、GJB/Z 141-2004等標準有關規定執行。修改后的軟件必須按要求進行二方或第三方的回歸測試。修改工作結束后,維護人員必須編寫軟件維護記錄和軟件文檔更改清單,并同軟件問題報告、維護申請和維護計劃一起作為軟件文檔保存。
4.9 復查、評審與驗收
4.9.1 復查
軟件修改后,為滿足系統需求和維護申請的全部要求,必須進行維護復查,驗證所作的修改是否正確,重新確認整個軟件。復查工作由委員會負責,維護管理員和軟件維護員參加。復查的內容包括:
a)維護申請的全部要求是否得到滿足;
b)是否對原版本和軟件問題報告進行認真分析和處理;
c)設計是否有缺陷,是否符合易維護性要求;
d)是否考慮了其它可選擇的方案;
e)修改結果與系統的其他部分或其他用戶是否發生沖突;
f)新版本是否與原版本在設計、程序編制標準和約定等方面保持一致;
g)按照軟件文檔更改清單,檢查有關文檔是否作了相應的修改,是否與程序相符;
h)修改部分是否遵守有關標準規范;i)是否廣泛向用戶征求意見;
j)維護記錄是否真實、細致、無遺漏等。
4.9.2 評審
在維護實施過程中,應根據GJB 439A-2013的規定,對更改方案設計、規格說明、測試計劃、測試說明、測試報告和管理等方面的工作進行同級、院級、部級評審。
4.9.3 驗收
軟件經過修改產生新版本時,應該同新開發軟件一樣,按照GJB 1268A-2004的規定進行所院級驗收。驗收通過后提交上級部門進行最終的歸零或驗收。
首先,依據GJB 5711-2006對軟件驗收后的軟件進行歸零評審或依據GJB 1362A-2007《軍工產品定型程序和要求》進行補充鑒定。其次,參考GJB 5922-2007和GJB 4757-1997(GJB/Z 20376-1997)標準內容進行技術通報的編制、上報審批和技術通報的貫徹工作[5]。這也符合GJB 4072A-2006中5.5.8“…對已交付的軟件,應督促承制單位派出服務小組,赴部隊更換有故障的軟件”的規定,如圖2所示。

圖2 軍用軟件維護技術通報的貫徹
通過對GJB 1267-1991的發展及需求進行分析研究,并結合售后技術服務的特點,提出“前沿、中更、后展”的更新原則。在此基礎上,根據GJB 2786A-2009 、GJB 5711-2006等標準的相互關聯和現代軟件故障定位的復雜性及新需求是否可行,提出了以正式確定軍用軟件維護為前沿點,有效地解決了軟件維護與售后技術服務的關系;通過對GJB 1267-1991的內容進行更新,有效解決了原來維護標準與現代研發過程標準不一致的缺點;通過GJB 5922-2007和GJB 4757-1997的特點去后展軟件維護后的工作,有效規范了現役武器裝備軟件的更新活動;這些想法和觀點對企業的武器裝備軟件維護具有很大的借鑒和指導意義。同時也建議在更新軍用軟件維護標準時,能夠考慮軟件的重要度、規模等與軟件維護過程、文檔等之間的剪裁原則,以便維護單位更好地對軟件進行維護。
[1] 張海潘,牟永敏. 軟件工程導論(第6版)[M].北京:清華大學出版社.2013.
[2] 程成,譯. 軟件工程(原書第9版 )[M]. 北京:機械工業出版社. 2011.
[3] 劉棟,袁志樹等. 大型復雜信息化裝備使用維護階段軟件升級問題研究[J]. 裝備質量.2014. 5:32-39.
[4] GB/T 20157-2006 信息技術軟件維護[S].
[5] GJB 5922-2007 飛機技術通報編制要求[S].
(編輯:勞邊)
TP311.53
C
1003-6660(2015)02-0003-05
10.13237/j.cnki.asq.2015.02.001
[收修訂稿日期] 2015-01-04