高秉亞,黃 強,王高飛
(1.空軍駐滬寧地區(qū)軍事代表室, 南京210039; 2.南京電子技術研究所, 南京210039)
隨著武器裝備作戰(zhàn)使用性能的不斷提升、信息化程度的不斷提高,使得大量的軟件技術運用到裝備系統(tǒng)中,軟件的規(guī)模越來越大,復雜度越來越高,武器裝備的很多功能需要由軟件來實現(xiàn),很多性能需要靠軟件來提升,因此軟件質量在全系統(tǒng)質量中所占的砝碼越來越重。我國裝備軟件工程化管理起步較晚,十年前,還普遍將軟件視為硬件的一個附屬部分,沒有將軟件列為型號配套表,作為產品來單獨控制,缺乏完整的指標體系和嚴格的測評驗證手段,尚未建立完整的質量保證體系。目前,軟件開發(fā)與管理大多仍為“自設計、自編碼、自測試”手工作坊模式,造成軟件質量普遍偏低、開發(fā)效率低、技術和進度風險大、維護困難和開發(fā)費用高等一系列問題,給部隊的作戰(zhàn)和保障帶來了很大困難,其根本原因就是技術和質量管理薄弱,工程化管理水平低[1]。軍代表對軟件質量監(jiān)督也缺少有效的手段和方法,工作很被動??上驳氖牵壳皣?、軍隊對軟件質量控制越來越重視,相繼出臺了一系列標準和法規(guī),旨在抓好軟件全壽命周期,特別是研制開發(fā)階段的軟件產品質量控制[2]。
在整個軟件研制過程中,軟件需求分析是在明確軟件分配需要后的一個核心環(huán)節(jié)。在軟件需求分析過程中應明確軟件需要達到的性能指標,并將需求作為軟件設計的約束條件,為軟件設計提供依據,為軟件測試提供測試準則和驗收標準[3]。軟件需求分析是軟件研制的起點,也是項目實施的關鍵點。據統(tǒng)計數(shù)據顯示,在查找出的軟件錯誤中,屬于需求分析和軟件設計的錯誤約占64%,屬于程序編寫錯誤的僅占36%。另據有關統(tǒng)計,軟件產品存在的不完整性、不正確性,其80%以上是需求分析錯誤所致,而且由于需求分析錯誤或偏差造成根本性的功能問題尤為突出。
1.1.1 存在的問題
在軟件需求分析方面,大部分軍工企業(yè)存在以下兩點問題:(1)需求分析和確定過程不嚴謹、不深入、功能基線不具體,分配基線欠準確;(2)與用戶的溝通力度有限,需求分析不細致,沒有準確理解或描述用戶的真實意圖。
1.1.2 案例分析
案例1:2009年12月,一種武器系統(tǒng)制導雷達在外場靶試中發(fā)現(xiàn)信號處理相關處理/融合插件在低溫環(huán)境下有時不能正常啟動,系統(tǒng)任務可靠性大幅下降。其故障機理為:該處理模塊中的某橋片為CMOS芯片,在低溫條件下運行速度會下降,如出現(xiàn)偶發(fā)的異常數(shù)據,會導致數(shù)據無法及時發(fā)送,造成橋片內部PCI緩沖區(qū)堵塞,從而PCI接口進入死鎖狀態(tài)。對應解決措施為:修改程序,開啟PCI緩沖區(qū)保護機制,問題可以復現(xiàn),并得到驗證。從該案例剖析,得出結論是:軟件設計師對武器裝備工作環(huán)境需求不明確,對橋片的工作機理和保護機制了解不全面。
案例2:1996年4月,阿麗亞娜5發(fā)射升空后6 s,在3 700 m高度爆炸,造成重大損失。其主要原因是承制方對軍方的需求存在理解偏差,軟件中的技術指標和設計錯誤引起故障。
1.1.3 對策
1)軟件承制單位必須加強同軍方及其代表的全面、全過程溝通,并將其制度化。積極主動邀請用戶參加各階段的需求變更確認和評審,而不是消極應付,從需求識別確認、需求跟蹤與反跟蹤、需求變更控制、需求版本控制[2]四個方面,無限逼近用戶的真實需求,確保軟件需求分析內容正確、完整、一致和可驗證,需求描述無歧義、可追溯、可修改。
2)提高研發(fā)團隊對軟件需求"重要性"意識的培養(yǎng),確定軟件承制單位的高層管理者、軟件工程組、軟件配置管理組、軟件質量保證組與用戶以及相互之間的有效溝通和無縫對接。在工程研制過程中,設計人員要克服一接到任務就匆忙著手編寫程序的習慣,而是先要在明確需求的前提下,準確分析系統(tǒng)的需求,并逐步細化對軟件的要求,編制出符合用戶要求的軟件設計規(guī)范、軟件需求規(guī)格說明、接口規(guī)格說明等文檔,提交用戶評審,以達到需求的共識。
3)督促軟件承制單位建立健全軟件質量管理體系,制定本單位的軟件標準過程,特別是軟件需求甄別和確定過程。以軟件需求分析質量為突破口,提出軟件全過程質量要求,配置相應的資源,落實相應的質量保證活動,不斷提高軟件過程質量保證能力,從源頭杜絕管理和設計缺陷。
軟件配置是指軟件開發(fā)過程中,構成軟件產品的各種文檔、程序及其數(shù)據的優(yōu)化組合。該組合中的每一個元素被稱為配置中的一個配置項[4]。通俗地講,軟件生存周期各個階段活動的產物經審批后即可稱之軟件配置項。
軟件配置項要素包含有:軟件需求分析文檔、軟件概要設計文檔、軟件詳細設計文檔、軟件實體、軟件測試文檔、用戶支持文檔等,包括與合同、過程、計劃和產品有關的文檔和資料;源代碼、目標代碼和可執(zhí)行代碼;相關產品包括:軟件工具、庫內的可重構軟件、外購軟件及顧客提供的軟件等。
軟件配置管理是一種標識、組織和控制修改的技術,要對軟件生存期內各階段的文檔、實體和最終產品的演化及變更進行管理,簡單而言就是管理軟件的變化,目的是將錯誤減少至最低,并提高效率。軟件配置管理貫穿軟件生命周期,是開發(fā)高質量軟件必不可缺的,是軟件質量管理的精髓。
軟件配置管理的主要任務包括:識別和確定配置項、定義配置項和版本的標識規(guī)則、制定控制變更的權限和實施步驟、記錄、跟蹤配置項的變更狀態(tài)、驗證配置項的正確性和完整性、進行版本管理和發(fā)行管理。應有文檔化的配置項識別準則,根據準則進行配置項識別,明確配置項列表,給予配置項唯一的編號、名稱,并標明一些重要屬性,如受控級別、存儲位置、負責人、源代碼語言等。相對于硬件配置,軟件的“配置”包括更多的內容并具有易變性。
1.2.1 存在的問題
1)在軟件開發(fā)時,不可能一步到位,變更是不可避免的。由于配置管理經驗少、水平低,加劇了軟件工程之間的混亂,造成軟件設計缺陷多、質量差、開發(fā)效率低。主要原因是變更前沒有協(xié)調一致的有效分析或變更控制管理不嚴格,其次是文檔質量較差,“三庫”管理不到位,內部測評開展不充分,內部測評發(fā)現(xiàn)的缺陷與定型測評發(fā)現(xiàn)的缺陷出現(xiàn)倒掛現(xiàn)象。
2)配置項識別準則不完善,項目設置不合理。普遍存在配置項過大或過小而不能較好適應軟件配置管理中的版本控制、變更控制、技術狀態(tài)及成本控制要求,并對軟件開發(fā)各階段產生的各種文檔的管理缺乏一致性和完整性驗證的手段。
1.2.2 案例分析
在一種型號雷達的軟件研制過程中,由于研制進度和管理經驗的缺乏,在軟件集成測試和定型測評中,發(fā)現(xiàn)各配置項與軟件需求、各配置項之間存在不一致的問題數(shù)十項;其次,配置項設置過大(以雷達分系統(tǒng)為單位進行劃分),沒有設置合理的關鍵、重要軟件單元(CSU),造成管理和技術狀態(tài)控制上的困難,也大幅增加了軟件開發(fā)、測試、測評的成本。
1.2.3 對策
1)督促承制單位制定配置項管理計劃,嚴格落實“三庫”管理。制定軟件“三庫”管理規(guī)定,建立相應的軟件配置管理組織,對整個研制過程中的軟件實施不同管理等級的控制。將早期開發(fā)并通過內部測評的軟件納入軟件開發(fā)庫管理,將通過階段正式測評的軟件納入軟件受控庫管理,將最終通過定型測評的軟件納入軟件產品庫管理。嚴格入庫/出庫控制、訪問控制、更動控制、版本控制、配置審核、配置報告、庫間轉換、維護規(guī)程等,嚴把文檔審查、代碼審查、階段評審、測試驗證等關口,并將評價意見和改進建議的歸零/整改與否,作為“三庫”管理的重要方面。
2)加強和完善軟件版本管理,建立“版本樹”管理機制。版本控制是所有配置項管理系統(tǒng)的核心功能。標識一個配置項變更(如需求變化或設計更改)的最好方法就是版本(樹),它的主要作用是記錄和追蹤文件的變更,如文件更改的內容、時間、原因和更改審批人員等。版本(樹)不僅記錄了配置項當前狀態(tài),為后續(xù)開發(fā)提供依據,而且還可以根據版本追溯以前的狀態(tài),避免未經授權的訪問和修改,避免因舊版本丟失/無法重現(xiàn)、更改出錯或原設計人員離職等導致無法研制后果。此外,版本管理可以有效解決不同設計師之間的溝通、協(xié)調問題,減少錯誤。特別是需重點控制版本升級的時機:當出現(xiàn)大的變更時,如需求變化,導致軟件需求文檔需要增加新功能時,主版本號升級(由V 1.**升級到V 2.**);當出現(xiàn)小的變更時,如局部的修改完善,主版本號不變,次版本號升級(由V**.0升級到V**.1);
3)優(yōu)化完善配置項識別準則,合理確定配置項,突出軟件質量監(jiān)督重點,提高配置項管理效率。軟件配置項的通俗定義:軟件中可以獨立進行開發(fā)的一個實體,包括程序、數(shù)據及其相應的文檔和說明。所以,系統(tǒng)配置項可按功能進行逐級細化、按層次標識,如分系統(tǒng)(第一層標識)、子系統(tǒng)(第二層標識)、功能模塊(第三層標識)……,過大過細兩個極端均不利于配置項的管理。以一種雷達系統(tǒng)軟件配置項劃分為例,其數(shù)據管理分系統(tǒng)的能力調度軟件及其組成模塊在表1(配置項劃分粒度過大)中未被有效標識出來;通過優(yōu)化完善(采納軍代表審查意見),在表2中配置項的劃分就比較合理,功能模塊大小適中,更切合技術狀態(tài)控制和質量監(jiān)督的實際。
表1 不合理的軟件配置項(過大)組成表
表2 合理的軟件配置項組成表
4)建議搭建或提倡承制單位使用“基于需求基線的軟件管理系統(tǒng)(BSCM)”,建立BSCM數(shù)學模型,以解決軟件配置管理過程中軟件配置項一致性、完整性和可追溯性等問題。
雖然國家、軍隊對軟件工程化管理和軟件研制質量控制越來越重視,要求承研、承制單位建立、健全軟件質量管理體系,并將軟件作為裝備及其配套產品的一部分納入型號研制計劃,嚴格按照軟件質量和工程化要求抓好軟件全生存周期管理;要求軍代表從設計源頭入手,狠抓軟件文檔審查、軟件研制階段評審、軟件技術狀態(tài)控制(“三庫”的建立和管理),確保軟件文檔質量符合要求、軟件測試充分有效、軟件技術狀態(tài)受控,最終確保軟件質量。但是,由于慣性思維和出于成本考慮,大部分企業(yè)又把軟、硬件變成了“兩張皮、兩條線”,在質量、進度管理上不盡一致,依然是硬件優(yōu)先。主要表現(xiàn)在以下三點:(1)在研制計劃管理上不盡協(xié)調,軟件開發(fā)和質量保證計劃滯后于硬件計劃;(2)軟、硬件質量管理力度不同,仍然是硬件強、軟件弱,沒有真正將軟件視為產品;(3)對軟件的資源投入仍然不夠,在人力、物力、財力上均有較大欠缺等,結果就是硬件更強、軟件更弱。此外,還會造成二者技術狀態(tài)協(xié)調和銜接上的困難,不利于全系統(tǒng)/整機技術狀態(tài)的控制。
相對于企業(yè)軟件工程化管理水平低的現(xiàn)狀,軍代表開展軟件質量監(jiān)督也存在一些困難。(1)方法、手段有限,根基薄弱;(2)一線軍代表中軟件人員嚴重匱乏;(3)扭轉質量監(jiān)督理念需要一個過程。這三個方面決定了軍代表開展軟件質量監(jiān)督的難度很大,需要適應新形勢、加緊補課,積極探索研究開展軟件質量監(jiān)督的新方法、新手段。
將軟、硬件在計劃、質量和成本管理上捆綁起來,二者并重。以立項論證為起點,在型號裝備研制的各個階段乃至全生命周期內,真正將軟件視為產品,納入型號研制計劃和型號配套表,建立完整的指標體系和完備的測評考核平臺。同步制定全過程研制計劃、同步開展過程質量控制和驗收把關、同步進行成本審核控制,兩者缺一不可,并將其“原則化、制度化”,徹底打破“硬件優(yōu)先”的慣例,從根本上解決軟、硬件研制的管理“兩張皮、兩條線”的問題,促進軟件質量監(jiān)督和工程化水平邁上一個新的臺階。同時,實施軟、硬件捆綁把關,亦可解決兩者的技術狀態(tài)控制的協(xié)調性問題,有利于整機技術狀態(tài)控制,確保整機研制質量。
1)嚴格按照軟件質量和工程化管理要求,同步抓好軟/硬件立項評審、需求評審、概要/初步設計、詳細設計、集成測試 /初樣試驗、軟件測評/硬件鑒定和定型等重點環(huán)節(jié),做到同步轉階段、同步凍結技術狀態(tài),同步開展定型試驗、同步開展價值工程和成本分析審查,同步設計定型。
2)軍代表依據軟硬件捆綁把關的原則,對照各個研制階段的軟件成果,明確軟件研制階段監(jiān)控重點,如表3所示,以點帶面,抓好軟件全生命周期的質量監(jiān)督。目前,已將該表格落實應用于部分在研重點雷達型號中,成效明顯。
表3 軟件研制階段監(jiān)控重點
鑒于當前軍用軟件面臨的工程化管理水平低、軟件產品質量低的形勢,軍代表應加快研究軟件質量監(jiān)督的相關方法,加強對策研究,積極探索軟件質量監(jiān)督的新手段、新方法,按照系統(tǒng)監(jiān)督、突出重點、預防為主、防檢結合的原則,切實抓好軟件需求分析和設計評審、文檔審簽、配置管理、定型測評等重點環(huán)節(jié),抓好里程碑節(jié)點控制,盡快提升軟件研制質量和工程化管理水平。
[1] 阮 鐮,陸民燕,韓峰巖,等.裝備軟件質量和可靠性管理[M].北京:國防工業(yè)出版社,2006.Ruan Lian,Lu Minyan,Han Fengyan,et al.The software quality and reliability management[M].Beijing:National Defense Industry Press,2006.
[2] 何新貴.GJB5000《軍用軟件能力成熟度模型》實施指南[M].北京:國防工業(yè)出版社,2004.He Xingui.GJB5000 military software capability maturity model implementaiton guide[M].Beijing:National Defense Industry Press,2004.
[3] 常云麗,鄔欣明,鄭 威.軍用軟件需求分析研究[J].火力與指揮控制,2013,38(1):126-128.Chang Yunli,Wu Xinming,Zheng Wei.Research on military software requirement analysis[J].Fire Control& Command Control,2013,38(1):126-128.
[4] 王珍英.配置管理在軟件項目管理中的應用[J].計算機系統(tǒng)應用,2008,17(6):101-104,61.Wang Zhenying.Application of configuration management in software project management[J].Computer Systems & Applications,2008,17(6):101-104,61.