楊 璇 來晉峰
(1.西安電子工程研究所 西安 710100;2.中國北方工業(yè)公司 北京 100053)
為了提高軟件開發(fā)的效率和軟件質(zhì)量、縮短軟件開發(fā)的周期,增強軟件的開放性和對外部適應(yīng)性,減少軟件危機,軟件復(fù)用作為軟件工程中的一個重要領(lǐng)域,已成為解決上述問題的主要途徑。
軟件復(fù)用的概念是由Mellroy 早在1968年的軟件工程會議上提出,然而軟件復(fù)用技術(shù)對軟件產(chǎn)業(yè)發(fā)展的支持效果不是如人所愿,這種情況是由技術(shù)方面、非技術(shù)方面中不成熟因素導(dǎo)致而成的[1]。近年來,隨著面向?qū)ο蠹夹g(shù)的出現(xiàn)和成熟,軟件復(fù)用關(guān)鍵技術(shù)瓶頸問題得到解決,在軍用雷達軟件開發(fā)中,軟件復(fù)用的研究也正成為焦點。但由于國內(nèi)研究時間較短,應(yīng)用并不廣泛,本文利用模塊化與構(gòu)件思想研究分析軟件復(fù)用技術(shù)在雷達數(shù)據(jù)處理軟件中的應(yīng)用,具有一定先進性和指導(dǎo)意義。
近年來,隨著計算機技術(shù)與武器裝備技術(shù)的快速發(fā)展,武器系統(tǒng)對于信息化、智能化的要求越來越高,導(dǎo)致雷達數(shù)據(jù)處理軟件的規(guī)模和復(fù)雜性也不斷提高。傳統(tǒng)的軟件開發(fā)方法由于普遍存在重復(fù)勞動、開發(fā)周期長、經(jīng)費浪費等問題,已經(jīng)不適應(yīng)大型化、復(fù)雜化的系統(tǒng)研制。
通過對不同型號雷達數(shù)據(jù)處理系統(tǒng)研究可以看出,其系統(tǒng)的功能和原理是基本相同的。因此,可以采用軟件復(fù)用技術(shù)構(gòu)建雷達數(shù)據(jù)處理軟件,實現(xiàn)不同型號雷達數(shù)據(jù)處理軟件的相互移植,從而減少重復(fù)勞動,縮短開發(fā)周期,全面提升軟件開發(fā)質(zhì)量。
軟件復(fù)用技術(shù)是指重復(fù)使用“為了復(fù)用目的而設(shè)計的軟件”的過程[2]。其中,在一個系統(tǒng)中多次使用一個相同的軟件成分,不能稱為復(fù)用而只能叫軟件共享;對一個軟件進行修改,使它可運行新的軟硬件平臺也不能稱為復(fù)用而叫做軟件移植。
軟件復(fù)用是在新的軟件開發(fā)過程中,利用已有的、可復(fù)用的軟件成分來構(gòu)造和生成新的軟件系統(tǒng)[3]。其中可復(fù)用的軟件成分包括軟件設(shè)計方法、軟件結(jié)構(gòu)框架、程序代碼、分析結(jié)果等。
根據(jù)軟件復(fù)用的實施性質(zhì)和過程可將軟件復(fù)用分為抽象技術(shù)、選擇技術(shù)、例化技術(shù)和集成技術(shù)[4]。抽象是對復(fù)用對象的概括和提煉,即將操作和對象從語言、機器和環(huán)境中提煉出來,是軟件復(fù)用的關(guān)鍵;選擇是根據(jù)功能需求,在庫中檢索和匹配相關(guān)復(fù)用對象,完成存放、比較和檢索可復(fù)用軟件對象的功能;例化是選擇技術(shù)的繼續(xù),完成對象的參數(shù)設(shè)置、轉(zhuǎn)換和約束;集成是根據(jù)復(fù)用技術(shù)提高的框架,將已例化的復(fù)用對象組合成軟件系統(tǒng)的過程。
雷達數(shù)據(jù)處理軟件用以完成目標(biāo)的航跡建立、航跡相關(guān)、航跡管理、航跡濾波、雜波處理、敵我識別、威脅估等處理任務(wù),實現(xiàn)對目標(biāo)的穩(wěn)定跟蹤[5]。
數(shù)據(jù)處理軟件的核心功能包括點跡凝聚、航跡處理和數(shù)據(jù)交互三個部分。
點跡凝聚完成對雷達信號處理機送來的原始一次點跡進行存儲,對符合凝聚條件的原始一次點跡按照采用線性加權(quán)求重心的方法進行凝聚。
航跡處理功能模塊是數(shù)據(jù)處理器的核心,它將凝聚點跡經(jīng)過一系列處理,形成航跡,同時剔除雜波干擾。
主要包含以下子功能模塊:雜波剔除功能、航跡建立功能、航跡批號管理功能、自動威脅判斷功能、航跡質(zhì)量管理功能、航跡濾波功能、敵我識別功能、ARM 報警功能構(gòu)成。各個功能子模塊功能獨立,在時間上是順序執(zhí)行。
數(shù)據(jù)交互功能模塊主要是實現(xiàn)數(shù)據(jù)處理器同信號處理器、雷達控制計算機、綜合顯示計算機等外部設(shè)備之間的信息交互。主要包括兩類:數(shù)據(jù)信息和指令信息。
數(shù)據(jù)處理軟件功能劃分如圖1所示。
圖1 數(shù)據(jù)處理軟件功能劃分圖
2.3.1 軟件的活動圖分析
軟件活動圖用于表征軟件系統(tǒng)的工作處理過程。系統(tǒng)工作時,雷達數(shù)據(jù)處理軟件實時接收空情信息并完成空情信息分類存儲;通過坐標(biāo)變換,將目標(biāo)信息轉(zhuǎn)到數(shù)據(jù)處理系統(tǒng)要求的坐標(biāo)系下,完成點跡預(yù)處理;對符合凝聚條件的原始一次點跡進行合并處理,提高點跡精度,生成凝聚點跡,并作為航跡處理輸入;判定每個點跡是屬于新發(fā)現(xiàn)目標(biāo)的點跡,還是屬于已經(jīng)發(fā)現(xiàn)并建立航跡的目標(biāo)點跡,對于新發(fā)現(xiàn)的目標(biāo),及時建立目標(biāo)航跡,并通過批號管理完成航跡批號的有效分配;對于用于航跡更新的點跡,建立航跡和點跡的配對矩陣,完成航跡點跡相關(guān)和航跡濾波更新;依據(jù)目標(biāo)運動要素和詢問結(jié)果,完成目標(biāo)的威脅評估和目標(biāo)屬性識別;處理更新后的航跡數(shù)據(jù)一方面實時上報,一方面用于航跡數(shù)據(jù)庫更新,為下次跟蹤維持服務(wù);在航跡處理過程中,通過對航跡質(zhì)量不斷更新,完成航跡的確認(rèn)和撤銷過程。典型雷達數(shù)據(jù)處理軟件活動圖如圖2所示。
2.3.2 軟件的用例圖分析
圖3 給出了數(shù)據(jù)處理軟件用例圖,表1 給出了數(shù)據(jù)處理軟件核心用例的功能說明。進一步對作為數(shù)據(jù)處理器核心功能的航跡處理進行更細(xì)致的用例劃分,并給出各個用例的功能說明,如表1所示,航跡處理圖例見圖4。
圖2 數(shù)據(jù)處理系統(tǒng)活動圖
圖3 數(shù)據(jù)處理軟件用例圖
表1 數(shù)據(jù)處理軟件用例功能說明
表2 航跡處理用例功能說明
圖4 航跡處理用例圖
雷達數(shù)據(jù)處理軟件的過程和原理大致是相同的,依次完成坐標(biāo)轉(zhuǎn)換、點跡凝聚、航跡建立、航跡批號管理、航跡相關(guān)、航跡更新、威脅估計、航跡質(zhì)量管理等處理;但是,由于各個型號的雷達數(shù)據(jù)處理系統(tǒng)采用的數(shù)據(jù)協(xié)議,硬件接口等存在差異。因此,在軟件層面上既有不同也有可以共享的軟件結(jié)構(gòu)和模塊,這使得數(shù)據(jù)處理系統(tǒng)的軟件構(gòu)件復(fù)用成為可能。2.4.1 點跡凝集采用線性加權(quán)求重心的方法將滿足凝聚條件的原始一次點跡與凝聚點跡線性表中的已有點跡進行凝集。因此,對于任何型號的雷達數(shù)據(jù)處理系統(tǒng),根據(jù)其凝集條件的不同來實現(xiàn)該模塊的復(fù)用。
2.4.2 對于航跡處理模塊中的雜波剔除包括對雜波圖和屏蔽區(qū)的處理,對滿足相關(guān)條件的一次點跡應(yīng)作為雜波進行剔除。因此,可以設(shè)置不同的相關(guān)條件來實現(xiàn)雜波剔除模塊的復(fù)用。
2.4.3 在航跡建立模塊中,當(dāng)自由點跡與剩余點跡符合建航規(guī)則時應(yīng)能自動建立航跡,只是在初始建航時,不同型號的雷達對目標(biāo)速度的大小與批號容量大小有所不同。因此,可以通過設(shè)計目標(biāo)速度與批號容量來實現(xiàn)該模塊的復(fù)用。
2.4.4 在航跡管理中分為航跡批號管理和航跡質(zhì)量管理。對于不同型號的雷達,其批號容量不同,因此,根據(jù)批號容量的設(shè)置來實現(xiàn)航跡批號管理模塊的復(fù)用;航跡質(zhì)量管理采用記分法,航跡的初始質(zhì)量為3,最大為9,小于1 時航跡自動撤銷,通過關(guān)聯(lián)波門類型,更新航跡質(zhì)量的大小,動態(tài)的實現(xiàn)航跡的確認(rèn)與撤銷。因此,對于航跡批號管理模塊和航跡質(zhì)量管理模塊均可以完全復(fù)用。
2.4.5 航跡濾波模塊根據(jù)航跡歷史數(shù)據(jù)和更新點跡,通過濾波處理,實現(xiàn)航跡數(shù)據(jù)更新??赏ㄟ^調(diào)整濾波器增益系數(shù)來實現(xiàn)航跡濾波模塊的復(fù)用。
2.4.6 在自動威脅判斷模塊中,數(shù)據(jù)處理軟件根據(jù)目標(biāo)飛臨時間和距離等因素給出目標(biāo)的威脅等級,通過建立統(tǒng)一的威脅評估表,實現(xiàn)自動威脅判斷模塊的復(fù)用。
2.4.7 敵我識別是根據(jù)詢問結(jié)果進行敵我屬性的判斷。根據(jù)各個型號雷達詢問機的工作模式對敵我識別模塊進行復(fù)用。
2.4.8 在ARM 報警模塊中根據(jù)新建立的航跡的速度、運動狀態(tài)等特性是否滿足ARM 特性,由于判斷標(biāo)準(zhǔn)唯一,故該模塊可完全復(fù)用。
2.4.9 數(shù)據(jù)交互模塊實現(xiàn)與信號處理機、雷達控制機、綜合顯示機之間的數(shù)據(jù)通信。由于通信協(xié)議不同,因此該模塊不能復(fù)用。
根據(jù)以上各功能模塊的復(fù)用分析,利用條件宏[6]控制模塊復(fù)用條件,實現(xiàn)對各個模塊的復(fù)用。
本次設(shè)計利用創(chuàng)建duplicate.h 文件(頭文件形式)實現(xiàn)對模塊的復(fù)用,通過對該文件的個性化配置,完成各模塊復(fù)用條件的加載、刪除和參數(shù)配置,并通過和應(yīng)用工程進行重新編譯完成數(shù)據(jù)處理可執(zhí)行程序生成。具體實現(xiàn)如下:
a.根據(jù)系統(tǒng)實際需求,設(shè)置條件宏,利用軟件模塊化配置軟件,完成模塊的靜態(tài)加載和參數(shù)配置。
例如配置航跡建立模塊,本軟件在設(shè)計時創(chuàng)建目標(biāo)速度與批號容量的條件宏,完成對不同型號雷達數(shù)據(jù)處理軟件航跡建立模塊的控制。duplicate.h包含如下代碼:
…………
//航跡建立模塊
#define H_CREATE_NEW_HJ
#ifdefH_CREATE_NEW_HJ
#define H_TARGET_SPEED_LIM_DOWN 30 //目標(biāo)速度下限
#define H_TARGET_ SPEED_LIM_UP 700 //目標(biāo)速度上限
#define H_TARGET_CAPACITY 250 //目標(biāo)容量
#endif
………
上述代碼包含了功能模塊的靜態(tài)加載項和參數(shù)配置項,若靜態(tài)加載項H_CREATE_NEW_HJ 沒有定義,則后續(xù)參數(shù)配置項不參與軟件編譯。對于其它軟件功能模塊的加載和參數(shù)配置與此相同,就不再贅述。
b.在DPU 的應(yīng)用工程中加載duplicate.h,重新進行編譯,完成數(shù)據(jù)處理軟件可執(zhí)行程序的生成;
c.若想在已有配置文件基礎(chǔ)上進行局部修改,通過打開已有配置文件,重新編輯保存后,完成配置更新并重新編譯。
利用上述設(shè)計方法在實驗室進行動態(tài)仿真,圖5 為該雷達數(shù)據(jù)處理軟件航跡跟蹤處理效果。仿真結(jié)果表明,該雷達數(shù)據(jù)處理軟件各個模塊功能正確,對交叉航跡、轉(zhuǎn)彎機動航跡等均能有效跟蹤,滿足雷達數(shù)據(jù)處理對功能和性能的指標(biāo)要求。
圖5 基于軟件復(fù)用技術(shù)的航跡跟蹤效果圖
在雷達數(shù)據(jù)處理軟件開發(fā)的過程中,通過模塊化的復(fù)用分析,對數(shù)據(jù)處理軟件的各個模塊進行抽象,有效的分離差異,實現(xiàn)了大部分模塊的復(fù)用,從而提高了軟件開發(fā)的效率,縮短了軟件開發(fā)的周期,節(jié)約成本、減少勞動力,具有較高的工程價值與經(jīng)濟價值。
[1]史浩輝,何煒.基于構(gòu)件的指控軟件復(fù)用[J].計算機技術(shù)與發(fā)展.2011,(2):159-165.
[2]徐正權(quán).軟件復(fù)用方法與技術(shù)[M].華中理工大學(xué)出版社,1998.8.
[3]楊芙清,梅宏,李克勤.軟件復(fù)用與軟件構(gòu)件技術(shù)[J].電子學(xué)報,1999.27(2):68-75.
[4]陳升來.軟件復(fù)用技術(shù)及在雷達標(biāo)校軟件中的應(yīng)用[D].中國科學(xué)院研究生院.2003.
[5]羅利強.張艷艷.高恒.雷達數(shù)據(jù)處理軟件模塊化研究[J].火控雷達技術(shù),2013.42(2):38-41.
[6]譚浩強.C 程序設(shè)計[M].北京:清華大學(xué)出版社,2008.