張名明 凌旺 閔嘯
(中國船舶重工集團公司第七二三研究所 江蘇省揚州市 225011)
軟件生存周期內(nèi)各個階段活動的產(chǎn)物經(jīng)審批后,可以稱之為軟件配置項。眾所周知,軟件擁有不同的支撐硬件、版本。按照一般思路,在多各方面選取“最優(yōu)”性能,將之組合為一個整體,即可實現(xiàn)“強強聯(lián)手”。但實際上,不同的軟件需要進行配置,將契合度最高的項目組織到一起,方可產(chǎn)生“1+1>2”的效果。特別是運用于軍用軟件時,需要建立完善的軟件配置管理方案。
作為軍隊信息系統(tǒng)的重要組成部分,軍用軟件已經(jīng)成為提升單兵能力,在關(guān)鍵時刻助力戰(zhàn)士完成各種任務(wù)不可或缺的重要裝備。比如在2008年汶川地震時,震中地區(qū)搭載GPS 衛(wèi)星導(dǎo)航系統(tǒng)的所有通信設(shè)備連續(xù)70 多個小時內(nèi)無法向外界傳達出任何信息,導(dǎo)致抗震救災(zāi)總指揮部及人民群眾“干著急”;直到解放軍派遣的突擊深入小組攜帶載有北斗衛(wèi)星導(dǎo)航系統(tǒng)的、完全由我國自主研發(fā)的數(shù)字通信設(shè)備趕赴震中后,與外界的聯(lián)系方才恢復(fù)。由此可見,在通常情況下,軍用信息設(shè)備及軟件的安全性能必然超過普通的民用或一般性質(zhì)的商用軟件。除此之外,保密性、穩(wěn)定性、續(xù)航能力,共同成為軍用軟件及有關(guān)設(shè)備的核心訴求。如軍隊使用的具有通信功能的設(shè)備系統(tǒng),需要完全與大眾消費品分割開來,各項數(shù)據(jù)的存儲及專屬分屬不同服務(wù)器,且由軍隊及國家安全部門重點掌握,不允許任何其他個人或組織接觸。此外,軍隊戰(zhàn)士野外拉練,或是在極端危險的區(qū)域執(zhí)行任務(wù)時,所用軟件的穩(wěn)定性必須得到保證。如上文提到的北斗衛(wèi)星導(dǎo)航系統(tǒng),在地面精度顯示、標高參數(shù)等方面,均已超越了GPS,當解放軍戰(zhàn)士深入目標地域時,軟件系統(tǒng)不僅能夠?qū)崟r顯示區(qū)域位置(抵抗多種信號干擾或屏蔽)及周邊地區(qū)的實際情況,還能保證與遠處指揮控制部的聯(lián)系??傮w而言,軍用軟件需要具備極高的可靠性、安全性、抗干擾性。
為了實現(xiàn)上述功能,軍用軟件設(shè)計在不同階段,均對配置管理提出了相應(yīng)的要求。所謂配置管理,核心內(nèi)容包含:第一,與合同、過程、計劃、產(chǎn)品有關(guān)的一切文檔與資料需要實時匹配,不可出現(xiàn)整體性的疏漏;第二,軟件源代碼、目標代碼、可執(zhí)行代碼之間需要符合既定要求,并保持較高的“契合度”,不可擅自更改或出現(xiàn)“無法配對”的問題;第三,包含軟件工具、庫內(nèi)可重用軟件(在軟件開發(fā)期間,由于環(huán)境、功能等要求經(jīng)常發(fā)生變化,故對較為成熟的軟件系統(tǒng)進行局部修改,或是對部分功能模塊進行調(diào)整甚至是重組,在保證整體穩(wěn)定性的情況下,使軟件整體適應(yīng)新的要求。如某計算軟件應(yīng)用于新的環(huán)境時,原先所有的所有函數(shù)已經(jīng)無法完成相應(yīng)的功能,故通過增設(shè)函數(shù)庫調(diào)用的方式,在不改變系統(tǒng)程序的前提下,完成“打補丁”操作)、外購軟件、其他方式獲得的軟件(設(shè)備接入其他系統(tǒng)后,接受的來自第三方的特定軟件)在內(nèi)的軟件工具均屬于配置管理的范疇之內(nèi)。基于此,軍用軟件在開發(fā)設(shè)計的全過程內(nèi),需要圍繞上述三大類內(nèi)容,深入理解有關(guān)配置管理的一系列要求[1]。
軟件配置管理運用于軍用軟件使,不同需求之間對配置管理的要求不盡相同,有關(guān)人員應(yīng)該綜合各方意見,統(tǒng)籌兼顧,予以解決。比如軟件系統(tǒng)的的整體需求,強調(diào)分析、研究、確定系統(tǒng)框架的構(gòu)成,目的在于明確多個系統(tǒng)之間分工與合作的形式,需要提供軟件研發(fā)的任務(wù)書以及開發(fā)計劃。此項需求的重點在于,必須詳細評審任務(wù)書,對其中提出的技術(shù)指標要求、可靠性、設(shè)備及軟件整體質(zhì)量要求、研發(fā)時間等進行界定。比如某軍用(防化部隊)輻射指標測定軟件,除了具備針對多種輻射源準確測評的數(shù)據(jù)庫及測量機制意外,還需具備抵抗環(huán)境侵蝕、在不同干擾下依然能夠穩(wěn)定顯示最終測評結(jié)果的功能。若要實現(xiàn)上述功能,研發(fā)人員需要從多個角度著手開展相關(guān)工作。難點在于,當某一數(shù)據(jù)庫中的信息需要更新時,調(diào)用程序或配套的功能接口,在實際執(zhí)行有關(guān)指令時,是否會出現(xiàn)“不兼容”、“不匹配”等問題。只有將解決軟件配置管理方面的問題一一解決,才能促使軟件需求與系統(tǒng)需求之間的“統(tǒng)一”。
本文所述的“軟件實現(xiàn)”范圍較廣,包含概要設(shè)計(含詳細說明)以及主程序設(shè)計。概要設(shè)計是指在綜合考慮不同配置組合的情況下,基于特定的規(guī)格說明,完成對軟件框架的設(shè)計。此環(huán)節(jié)的目的在于確立軟件整體運行結(jié)構(gòu),并對主程序的諸多功能加以說明。具體到某一項特定功能時,程序單元內(nèi)部的細節(jié)(如算法和數(shù)據(jù)結(jié)構(gòu))必須保證精確程度。比如有關(guān)參數(shù)基于何種關(guān)系完成傳遞,程序單元的輸入、輸出過程是否存在制約條件等。上述過程必須具備詳細的說明,且在理想狀態(tài)下,針對不同單元的測試計劃也應(yīng)具備。
軟件實現(xiàn)階段對于配置管理的要求如下:相比之下,含有特定功能的軟件程序設(shè)計環(huán)節(jié)稍顯簡單(在不同配置、版本穩(wěn)定的情況下,錯誤發(fā)生率較低),如果其他程序框架完成更新或升級,則與之相匹配的功能算法很可能即時失效。因此,在軟件設(shè)計實現(xiàn)階段,需要按照規(guī)定完成編碼和調(diào)試,并依照既定計劃進行全面測試,保證程序單元與上述設(shè)計說明的統(tǒng)一。
在理想狀態(tài)下,軍用軟件的系統(tǒng)測試及實際運用過程,需要根據(jù)不同的軟件配置,在每次具體應(yīng)用前,利用很短的時間完成相關(guān)的檢驗,并解決程序運行中出現(xiàn)的錯誤。比如軍用地形勘探軟件,如果搭載了不同的CNSS 和GIS 系統(tǒng),是否在精度、實時信息傳遞等功能方面產(chǎn)生了較大的不同,需要自行確認。此項工作完成的重要標志在于,軟件需求規(guī)格中列出的有關(guān)功能、性能、結(jié)構(gòu)、約束、限制等特性,必須全部符合,任何一項未能達標,均會影響軟件性能;原則上,檢測過程中發(fā)現(xiàn)的所有缺陷,不可對應(yīng)用過程造成任何影響,且由于程序的自我修復(fù)功能,在產(chǎn)生影響前(極短時間內(nèi))就已經(jīng)被消除,并符合程序回歸測試的“良好”以上評級[2]。
軍用軟件則設(shè)計階段對軟件配置管理提出的所有要求均得到滿足之后,在具體應(yīng)用時,也需要重點控制。
嚴格來說,軍用軟件屬于應(yīng)用系統(tǒng)的一部分,在初始階段,對功能性、安全性、保密性、穩(wěn)定性的需求與大眾民用商品并無二致(在軍隊建設(shè)方向未曾確定的情況下,無法對軍用軟件的各項需求等級定性)。在此種背景下,軍用軟件的更迭速度極其頻繁,使得功能各異的軟件技術(shù)狀態(tài)大受影響。但隨著軍隊建設(shè)信息化成為常規(guī)性的認識,建立全新的自動化且完善的軟件配置管理體系,對于全面控制軟件技術(shù)狀態(tài)幾乎產(chǎn)生了具有決定性的意義。因此,軍用軟件開發(fā)及使用過程,必須與民用以及一般性質(zhì)的商用軟件加以區(qū)分(服務(wù)器絕不能相同、管理者制度必須完善)。首先,通過自動化配置管理系統(tǒng),根據(jù)軍用軟件使用者的實際要求,自動配置對應(yīng)的管理工具,并完成安裝;其次,通過系統(tǒng)審核后,對使用者(或接入的設(shè)備)賦予相應(yīng)的權(quán)限,保證軟件開發(fā)庫、產(chǎn)品庫、受控庫的正常流轉(zhuǎn);最后,完成特定但具體的自動化軟件配置管理平臺的建設(shè),創(chuàng)造出良好的配置管理環(huán)境。
在現(xiàn)代程序功能控制理念下,軟件配置管理必須具備優(yōu)化控制標識,組織修改“錯亂”的程序代碼,自助降低錯誤出現(xiàn)幾率等特點,從而為軍用軟件使用者提供方便。在傳統(tǒng)的設(shè)計思路中,通過變更標識與控制方式,避免應(yīng)用程序出現(xiàn)錯亂。此種方法“治標不治本”,在短時間內(nèi)確實能夠發(fā)揮一定的作用,但隨著時間的累積、配套功能軟件的升級,“變更”必須進行。因此,對變更和有關(guān)的標識進行優(yōu)化控制,“將工作做在前面”,能夠極大地提升軟件配置及運行效率,防止給用戶造成較大的麻煩。除此之外,優(yōu)化控制標識的另一個目的在于,防止版本的更迭引發(fā)程序錯亂。此種情況并非只出現(xiàn)在軍用軟件中,對電腦較為熟悉的人都有過如下經(jīng)歷:完成軟件升級后,從理論上來看,更新的版本應(yīng)該具備更強的性能;但實質(zhì)上,由于程序亂碼的出現(xiàn),可能導(dǎo)致“碎片”的增多,反而使軟件性能下降,進而影響硬件設(shè)備?;诖?,優(yōu)化控制標識,使軟件配置過程更加科學(xué),能夠有效避免版本升級造成的不良體驗[3]。
軟件配置管理的核心問題在于對配置進行審核,主要包含程序功能審核以及物理審核。一般來說,常規(guī)審核是指對配置項是否產(chǎn)生、是否具備該過程中解決變更的能力進行審核。比如優(yōu)化極限以及配置管理活動。在此過程中,如果發(fā)現(xiàn)問題,完善的配置管理審核機制需要對有關(guān)內(nèi)容及時記錄,經(jīng)過追蹤后,找到解決問題的方法。此項功能的重點在于,將基線技術(shù)文檔作為依據(jù),對版本更新與否加以審核,從而使各項軟件配置保持完整性。
軍用軟件不同于民用與一般性質(zhì)的商用軟件,對于性能、保密水平的要求性極高。基于此,只有建立完善的軟件配置管理機制,才能全面保證軍用軟件的質(zhì)量。在此種前提下,武器、設(shè)備的質(zhì)量以及訓(xùn)練、作戰(zhàn)方案的制定將會得到強有力的支撐,面對多種情況時,軍隊指揮系統(tǒng)和深入目標區(qū)域的作戰(zhàn)人員才能抵抗多種干擾,進而成功完成任務(wù),并在日積月累之下,提升軍隊的作戰(zhàn)水平。