



【摘要】分析了武器裝備軟件工程化的現狀,從重視武器裝備標準的學習與應用、對武器裝備軟件進行細化分級控制、分階段進行軟件評審、加強軟件測試四個方面提出了在現有基礎上提高武器裝備軟件工程化水平,增強武器裝備軟件質量的可行性方法。
【關鍵詞】武器裝備;軟件工程化;質量;軟件測試
1.引言
未來戰爭是高技術的較量,代表武器裝備性能的重要指標已不僅僅是彈藥的威力,而是武器裝備的智能化程度。武器裝備的發展過程,也是武器裝備軟件一步一步地從無到有,從簡單到復雜的發展過程。但是,武器裝備的軟件工程化的建設步伐卻遠遠沒有跟上武器裝備軟件的發展。
2.武器裝備軟件工程化現狀
軟件質量問題造成的災難性事故屢見不鮮。如表1所示,在產品故障中,軟件問題所占的比重讓人觸目驚心。
造成軟件質量較差的原因主要有以下幾點:
a)缺乏對軟件發展戰略的研究,發展目標、發展方向不明確,發展路線不清晰;
b)軟件工程化管理起步較晚,缺乏系統的、規范化的軟件工程管理,標準軟件過程沒有得以有效的建立,項目軟件過程未得以開發和維護,軟件工程管理的作用不能持續地、積極地發揮出來;
c)高級軟件人才匱乏,軟件工程管理與質量管理人員缺乏,軟件從業人員的工作規范化意識不強,軟件設計、實現、測試人員未真正地實現分離;
d)團隊開發環境沒有真正建立,軟件開發依然是分散的、無約束的手工作坊方式,軟件“三化”程度低,可重構、重用能力低,軟件構件匱乏;
e)軟件質量管理和項目管理還處于摸索階段,缺乏定量的分析方法和足夠的可靠性保證措施,普遍存在重技術輕管理、重開發輕組織、重結果輕過程的現象,基本沒有進行軟件風險管理;
f)在簽訂合同時,軟件未作為配套產品單獨簽訂合同,費用和進度往往未納入系統或設備的統一安排;
g)在軟件開發過程中,對軟件的資源投入(包括人員、設備、經費、工具等)不足,無法做到軟件設計、實現、測試人員三分開。
以上幾點,并不是一朝一夕就能解決的問題。在這樣的條件下,如果放任軟件的自由發展,隨著武器裝備性能的提高,軟件產品復雜度也將提高,勢必會導致軟件產品的問題更加突出。
但是如果要嚴格按照軟件工程化來管理,將會產生以下問題:要求和執行兩張皮,即對軟件工程化的要求提得很高,但是研制單位以及研制人員由于以上種種限制,并沒有實實在在按照要求去做,存在嚴重的走過場、補程序的現象,反而會增加軟件開發人員負擔。
因此,既不能對武器裝備軟件放任自流,也不能妄想一蹴而就。如何在武器裝備產品上實施軟件的工程化問題,需要我們認真研究,權衡利弊,提出解決方案。我認為可以從以下方面入手:a、重視標準的學習與應用;b、對軟件進行細化分級控制;c、分階段進行軟件評審;d、加強軟件測試;e、爭取軟件開發資源的投入(包括人員、設備、經費、工具等)。
3.重視標準的學習與應用
在軟件工程化的推動下,軟件標準化的范圍現在已經擴展到軟件整個生存周期的技術和管理,主要包括軟件的開發過程、文檔生成、質量保證、驗證驗收等。現行有效的軍用軟件方面的標準經初步統計,共有二十幾種。這些標準很明確地告訴我們:什么時候該做什么事情,這些事情怎么做。通過對這些標準的學習,正確地理解這些標準的含義,結合武器裝備工程化進程中所遇到的實際問題,用這些標準來指導我們武器裝備軟件工程化中所遇到的困難,逐步地將其運用到武器裝備工程化當中,提高武器裝備工程化的水平。特別需要注意的是,在標準作為指導原則的前提下,必須要在現有條件下有選擇地吸納,既要分清楚標準的適用范圍,更不能脫離實際,生搬硬套。
4.對軟件進行細化分級控制
在武器裝備軟件工程化中,若參照GJB/Z 102-1997,對產品進行軟件分級管理,共分為三級:關鍵軟件、重要軟件和一般軟件。
關鍵軟件和重要軟件的分級原則以及質量控制方法是無法更改的。但是由于武器裝備在研制過程中,除了產品上的關鍵、重要、一般軟件,還涉及到一些保障設備軟件、測試設備軟件、試驗專用軟件、調試軟件,甚至一些臨時性的數據顯示軟件、分析軟件。有的軟件甚至在提出到生成只有短短的一周時間,如果所有的這些軟件都必須經歷我們對于一般軟件所規定的需求分析評審、概要設計評審、詳細設計評審、代碼走查之類,顯然是不可能的。因此我建議在一般軟件的劃分和控制上,還可以再進行細化。表2所示為軟件分級原則、表3所示為軟件分級控制。
5.分階段進行軟件評審
在武器裝備的軟件工程化進程中,軟件是作為硬件的附屬產品,和硬件進行相同的研制周期劃分的,因此,軟件研制開發不管從人員、時間、經費分配上來說,都無法滿足武器裝備軟件工程化的要求。在現有條件下,如果嚴格按照硬件的研制周期來劃分軟件研制階段,并且每個研制階段均按照評審通過作為軟件的準入條件,那么不管從人力或者時間上都無法保證。因此,對軟件的評審時機進行規定就顯得尤為重要。
在研制方案階段,主要應該明確軟件的策劃以及需求。在本階段,應該形成軟件策劃以及需求分析說明文檔,并經過評審通過。在后續其他階段,若有顛覆性的或者較大的改動,應重新組織評審。
在研制初樣階段,經過方案階段的細化需求,軟件設計等,應著重于軟件的設計以及編碼的規范性、可靠性。在本階段,應該形成軟件的相關設計文檔。Ⅲ類以上軟件應該進行概要設計評審。由于詳細設計說明的編制和代碼的編制緊密相連,所以詳細設計說明評審和代碼走查一起進行是一個比較合理的方式。在后續其他階段,若有顛覆性的或者較大的改動,應重新設計評審。
6.加強軟件測試
在軟件設計與編碼過程的同時也是一個引入錯誤和缺陷的過程。表4列出了各個過程引入缺陷的比例。
軟件測試則是發現、檢查軟件錯誤與缺陷的過程。目前,在軟件開發人員、經費都無法單獨從硬件開發中剝離出來的情況下,重視軟件測試是減少軟件錯誤以及改進和提高軟件可靠性的重要方法。同時,軟件測試為軟件優化以及軟件工程管理改進提供一個平臺,降低技術風險和管理風險,對軟件質量保證具有重要意義。
所以,我們應該將有限的資源更充分地用于軟件測試。根據統計,各軟件測試的效率如下:
其中,效率=發現的軟件缺陷/總缺陷×100%。
在武器裝備軟件中,集成測試進行的比較少,代碼走查和單元測試就顯得尤為重要。但是在代碼走查的過程中我們往往會忽視代碼走查的計劃編制以及個人走查部分,僅重視會議走查,導致代碼走查走過場,質量下降。應該加強對軟件測試的投入,從人員、經費等方面保證軟件測試的正常進行,為軟件質量把關。
7.爭取軟件開發資源的投入(包括人員、設備、經費、工具等)
在目前的武器裝備研制過程中,軟件一直是作為硬件的附屬產品,與硬件同期進行研制的,未嚴格對軟件開發進行研制周期的劃分,只是介定了軟件的工作內容及要求,在人員、設備、經費、工具等方面都不是很具體和明確,這樣一來直接影響到軟件開發進度和質量。為改變這一現狀,須在今后研制合同中明確軟件開發使用經費和要求,這樣才能確保軟件開發進度和質量,滿足后期服務要求。
8.結束語
隨著武器裝備軟件的發展,武器裝備軟件的工程化也慢慢走上正軌,但是距離真正的軟件的工程化差距仍然較大,其過程仍然是漫長而艱巨的。我們只有立足于現狀,把握武器裝備軟件發展的特點,才能一步一步趕上軟件工程化的步伐。