張永鵬
(中國電子科技集團公司第三十八研究所 合肥 230088)
隨著制導武器打擊精度的不斷提升,雷達導引頭作為提升制導打擊精度的重要組成部分,其作用越來越重要。雷達導引頭系統(tǒng)軟件設計則是整個導引頭研制過程中的重要環(huán)節(jié)。雷達導引頭的系統(tǒng)軟件主要包括導引頭數據通信、內部自檢、時序控制、工作模式控制、參數計算、伺服控制等功能。當前雷達導引頭軟件設計側重于采用自上而下“面向過程”的軟件設計方法[1-2]。
面向過程的主要設計思路包含:
1)以“模塊”為中心,根據軟件功能將軟件以樹狀結構劃分為若干基本模塊,各模塊功能獨立、相互之間關系簡單;
2)采用“自上而下”、“逐步求精”的開發(fā)方法,明確各模塊之間的組裝和交互,各個模塊設計完成后,將各模塊組合在一起形成整個系統(tǒng);
3)模塊設計采用“高內聚、低耦合”設計原則,每個模塊都是具備一個完整的功能,盡可能使得模塊之間相互獨立,不存在信息交互。
面向過程的軟件設計方法首先在解決問題時是以數據流和時間觸發(fā)進行的,當需求變動時,其程序結構會產生較大變化;其次在計算類型上采用的是數據結構進行構造,用算法表示事物的處理,但是在數據結構和算法上的構造和形式向分離,不具備對統(tǒng)一性,因而導致程序可繼承性差[3]。
當前隨著雷達導引頭對復合多模、高性能的不斷發(fā)展,對雷達導引頭的功能、研制周期等都提出了新的需求。這些最終都體現(xiàn)在更高的軟件設計,即如何使得雷達導引頭軟件設計在實時性、多任務處理、硬件資源限制、軟件質量及安全性、研制周期等都能適應當前的發(fā)展需求。因此,依舊采用傳統(tǒng)的軟件設計方法,已經不足以滿足當前的要求。
因此,針對雷達導引頭軟件的特點,通過采用面對對象的設計思想,提出基于UML對雷達導引頭進行系統(tǒng)建模,對導引頭首先進行系統(tǒng)分析,再對導引頭在軟件設計過程中進行控制和管理,使系統(tǒng)軟件設計更加規(guī)范化、合理化,保障軟件設計的質量和安全性。本文以某主動雷達導引頭系統(tǒng)軟件設計過程為例,利用了UML為導引頭系統(tǒng)進行系統(tǒng)軟件設計建模。實際應用情況表明該方法在雷達導引頭軟件設計過程中能夠促進軟件設計的合理性和規(guī)范化,具有很好的應用價值。
UML是采用面向對象的方法進行分析和設計的一種標準語言表示,利用圖形化的語言建立能夠表達各類需求的軟件系統(tǒng)模型,貫穿整個軟件設計的生命周期,能夠有效的控制和管理軟件設計過程,提高軟件開發(fā)效率和軟件質量[4-5]。
UML包括9種圖形可分為用例圖、行為圖、靜態(tài)圖、交互圖和實現(xiàn)圖等五類圖[4-5]。
1)用例圖主要是從用戶角度描述了系統(tǒng)各項功能,反映了角色與系統(tǒng)用例之間的交互關系;
2)行為圖展現(xiàn)了系統(tǒng)狀態(tài)間的轉換和對象間的相互關聯(lián),包括狀態(tài)圖和活動圖。狀態(tài)圖描述了類的對象全部可能的狀態(tài)和事件發(fā)生時狀態(tài)間的轉移條件;活動圖描述了對象間的流程控制,及系統(tǒng)內活動之間的相互約束;
3)靜態(tài)圖展現(xiàn)了系統(tǒng)靜態(tài)設計視角下事物之間的關系視圖,包括類圖和對象圖。類圖描述了系統(tǒng)中類屬性、操作、接口等之間關聯(lián)、依賴、聚合等關系;對象圖是類圖的實例,描述了類在系統(tǒng)中具體使用的實例;
4)交互圖描述了系統(tǒng)對象之間的交互關系,包括時序圖和協(xié)作圖。時序圖描述了對象間的動態(tài)交互的順序關系,顯示出對象與對象之間的相關交互;協(xié)作圖類似于時序圖,主要描述了對象之間信息交互順序和連接關系;
5)實現(xiàn)圖則是展現(xiàn)了系統(tǒng)各個構件之間的相互依賴關系以及系統(tǒng)運行時的節(jié)點和配置等,包括組件圖和部署圖。組件圖描述組件之間的動態(tài)關系;部署圖描述了系統(tǒng)的物理拓撲結構和在該結構上的執(zhí)行軟件。
UML通過面向對象圖的方式來描述系統(tǒng),具備系統(tǒng)從需求、分析、設計、實現(xiàn)、測試等各個階段的建模方法,對軟件設計有著很大的促進作用。因此,本文以某主動雷達導引頭系統(tǒng)軟件研發(fā)過程進行說明,具體分析UML在部分系統(tǒng)軟件設計過程中的應用。
本文根據UML的圖類進行主動雷達導引頭系統(tǒng)軟件設計建模分析。
用例圖從系統(tǒng)用戶頂層角度進行系統(tǒng)規(guī)劃,獲取系統(tǒng)的所需功能要求。主動雷達導引頭系統(tǒng)軟件根據其設計要求,主要包括內部自檢功能、伺服控制功能、成像識別功能和主動跟蹤功能等,各個功能的參與者均為主動雷達導引頭。如圖2為業(yè)務用例圖模型。
主動雷達導引頭中業(yè)務具體行為:導引頭需要進行內部系統(tǒng)軟硬件自檢,檢驗導引頭內部是否存在相關組件故障;導引頭能夠根據實際需求計算伺服控制指向位置,并控制導引頭伺服正確指向預定位置;導引頭能夠完成對預定位置進行主動成像,并完成圖像識別過程,獲取地面目標位置等信息;導引頭能夠根據主動識別的地面目標位置信息,完成主動脈沖跟蹤,實時輸出對應的目標位置、測距等信息。下面主要以主動跟蹤為例詳細描述導引頭系統(tǒng)軟件建模過程。
行為模型主要包括活動圖和狀態(tài)圖,下面分別通過活動圖和狀態(tài)圖進行軟件建模描述。
1)活動圖建模
活動圖是對用戶例圖添加一定具體的操作條件或范圍等限定,主要描述邏輯的設計過程,是一種概念級的描述過程。主動跟蹤主要包括目標檢測、數據處理、主動跟蹤等功能,具體活動圖如圖3所示,導引頭根據指令進入目標檢測流程,首先設置參數,并控制伺服指向預定方向和對信號進行脈壓等并行處理,即檢測出目標信息;數據處理中點跡預處理、暫航及航跡處理等是以時間為順序的串行處理過程;主動跟蹤過程中也包括跟蹤狀態(tài)處理等串行,以及參數計算、測角和角速度計算、目標信息輸出等并行處理過程。
2)狀態(tài)圖建模
狀態(tài)圖是通過對系統(tǒng)工作狀態(tài)和狀態(tài)變化條件進行描述的。狀態(tài)圖可以詳細地了解系統(tǒng)在整個過程中運行規(guī)則和軌跡。圖4為主動跟蹤的狀態(tài)圖。
圖4詳細描述了主動跟蹤中未捕獲狀態(tài)、捕獲狀態(tài)、跟蹤狀態(tài)、記憶跟蹤狀態(tài)、丟失狀態(tài)和進入盲區(qū)等工作狀態(tài)之間的轉換關系。導引頭通過外部指令進入主動跟蹤模式,狀態(tài)進入未捕獲狀態(tài),再到捕獲目標進入捕獲狀態(tài),以及后續(xù)進入跟蹤狀態(tài)、記憶跟蹤狀態(tài)和丟失狀態(tài),再回到未捕獲狀態(tài)的主動跟蹤狀態(tài)切換過程。
類和對象是面向對象技術的基本元素,靜態(tài)模型則是通過類圖和對象圖來描述類、接口、對象等之間的關系。通過利用面向對象的設計思想中的對象、類的封裝性,來實現(xiàn)程序開發(fā)的組件化,使得程序具備“高內聚、低耦合”特性,提高程序的可靠性和繼承性。
根據圖4的狀態(tài)圖,可得出需要完成主動跟蹤功能動作的類,如圖5所示,構造了主動跟蹤處理類、FPGA數據總線通信類、時序參數控制類、伺服控制類、工作模式切換類以及串口通信類等,每個構造的類都封裝有各自的變量和操作內容,根據這些變量和操作,可以詳細得出主動跟蹤靜態(tài)動作設計。
在實際的系統(tǒng)中,對象之間都存在相互之間的信息交互,而不是孤立存在的。交互是一種行為,主要包括時序圖和協(xié)作圖。時序圖強調消息的時間順序,表示參與交互的多個對象之間發(fā)送消息、接收消息的序列,將這些消息沿垂直方向按時間順序從上到下放置。導引頭主動跟蹤的時序圖表明了在跟蹤過程中相關對象之間時序的關聯(lián)關系。圖6的時序圖描述了對象之間相互的消息傳遞時序,橫坐標表示為對象,縱坐標表示為時間。如,同對FPGA數據總線通信的端口配置串口通信和變量的讀取,串口通信接收指令進行主動狀態(tài)切換,主動跟蹤處理通過對目標數據的處理進行伺服控制、時序設置以及進行工作參數的上報等具體的操作,整個序列詳細的概括了整個主動跟蹤狀態(tài)變化之間類對象的相關消息傳遞過程。
軟件最終需要運行在用戶的環(huán)境中才能發(fā)揮作用。在完成導引頭系統(tǒng)軟件的體系結構建模后,便進入軟件的實現(xiàn)階段,通過組件圖和部署圖進行實現(xiàn)。
組件是軟件系統(tǒng)的一個物理單元,作為一個或多個類的軟件實現(xiàn),可以包括源代碼、二進制碼、可執(zhí)行碼以及動態(tài)鏈接庫等。
部署是一種特殊的依賴關系,一個部署表示一件實例被定位到一個部署目標上。通過將應用程序的各部分在物理結構上進行安裝和部署,需要從應用程序本身和運行環(huán)境兩個方法的要求來分析。
綜上所述,本文主要利用UML對雷達導引頭系統(tǒng)軟件進行建模研究,通過用例圖、行為圖、靜態(tài)圖、交互圖和實現(xiàn)圖五類UML圖形的設計和分析,將導引頭系統(tǒng)軟件設計通過可視化的圖形進行表示,建立清晰、直觀的系統(tǒng)軟件設計模型,在實際開發(fā)中可以有效對導引頭系統(tǒng)軟件設計過程進行控制和管理,降低了軟件設計的復雜性,保障了設計過程中軟件的可靠性、維護性,最終保障雷達導引頭研制周期和軟件質量,對后續(xù)產品的開發(fā)都具有極大的借鑒作用。