王向敏, 臧 勤, 劉佳媛, 張玉喜
(中國船舶重工集團公司第七二四研究所,南京 211153)
基于雷達顯示終端的迭代式軟件框架設計與實現(xiàn)
王向敏, 臧 勤, 劉佳媛, 張玉喜
(中國船舶重工集團公司第七二四研究所,南京 211153)
介紹了軟件框架的設計特點,并針對雷達顯示終端軟件進行軟件框架設計與實現(xiàn)。在需求變化的情況下,通過軟件框架的復用機制,可使雷達顯示終端具有顯示靈活、模塊通用、擴展性和可移植等特點。
軟件框架;構件;軟件復用;雷達顯示終端
隨著雷達裝備需求不斷擴大,對雷達性能要求及可靠性也不斷提高。而作為對雷達數(shù)據(jù)直觀表述的雷達顯示終端在雷達系統(tǒng)中起著舉足輕重的作用,其操作靈活性、可擴展性、穩(wěn)定性及維護性尤其重要。針對此特點,本文設計了基于雷達顯示終端的一種面向對象的、可復用的軟件框架[1-3]。該框架采用迭代式開發(fā)模式,并通過構件[4]與構件庫的復用思想來實現(xiàn)軟件框架。這樣有助于提高軟件開發(fā)的生產(chǎn)率,提高軟件系統(tǒng)的可靠性,減少軟件維護的負擔。
雷達顯示終端軟件主要完成對雷達各類信息的實時顯示以及對雷達整機的操控,因此在構造的框架中主要按照領域模型建模。隨著對雷達領域的認識不斷地深入和精確,在框架開發(fā)過程[5]中采用基于迭代的演化模型,通過多次迭代,使框架正確性和可復用性不斷提高。
基于該過程模型,在框架開發(fā)時,首先針對雷達系統(tǒng)需求進行分析,得到描述該雷達系統(tǒng)的共性領域模型和個性領域模型。在該領域模型基礎上,進行領域設計,建立可以指導的框架設計??蚣茉O計包括框架體系結構、擴展點和框架構件的設計,尤其關鍵的是個性領域設計以及框架的可復用性的擴展點設計。在實現(xiàn)階段,根據(jù)框架應用設計,組裝應用構件,通過框架構件實現(xiàn)雷達顯示終端軟件共性領域模型,并根據(jù)不同的組裝需求實現(xiàn)擴展模式。在測試階段,通過基于框架構造具體應用來進行測試,然后再基于框架開發(fā)該應用,從而驗證框架正確性及可復用性。上述過程是迭代的,即每個階段活動可以進行多次。流程圖如圖1所示。
圖1 框架開發(fā)過程模型
根據(jù)應用邏輯將雷達顯控終端軟件框架抽象成三層[6],即數(shù)據(jù)層、應用服務層和用戶界面層。數(shù)據(jù)層主要用于數(shù)據(jù)訪問構件對數(shù)據(jù)庫中數(shù)據(jù)的插入、更新等操作,以及用戶操作相關的界面完成雷達信息的查詢。應用服務層主要用于對上下層之間交互數(shù)據(jù)的邏輯處理,在軟件框架設計時要根據(jù)實際雷達系統(tǒng)的處理流程來決定。所以,該部分的設計主要是設計通用的構件接口,通過這些接口來訪問數(shù)據(jù)層和用戶界面層構件,從而完成系統(tǒng)設計。用戶界面層主要實現(xiàn)人機交互和軟件展示,負責提供雷達系統(tǒng)操作和控制,同時對雷達的各類信息進行實時顯示。軟件框架的整體示意圖如圖2所示。
數(shù)據(jù)層主要分為以下4個模塊:系統(tǒng)維護模塊、目標信息模塊、態(tài)勢信息模塊和系統(tǒng)狀態(tài)信息模塊。系統(tǒng)維護模塊用來對數(shù)據(jù)庫自身進行管理和維護。目標信息模塊用于記錄探測到目標信息,并能作為目標信息的累積依據(jù),以及為研究人員提供二次分析的資料。態(tài)勢信息模塊用于記錄用戶在海圖中標注的信息,便于用戶分析海戰(zhàn)場的情況變化趨勢。系統(tǒng)狀態(tài)信息模塊記錄探測系統(tǒng)自身在各個時間段里的運行情況以及系統(tǒng)故障的排解方法。通過數(shù)據(jù)庫模塊關系結構圖可以反映出數(shù)據(jù)庫各模塊之間及內部的關系,如圖3所示。
圖2 軟件框架整體示意圖
應用服務層是為系統(tǒng)提供信息的相互銜接和路由服務,當系統(tǒng)的狀態(tài)發(fā)現(xiàn)改變時可以自動通知界面進行狀態(tài)更新。在該層框架設計時,首先采用數(shù)據(jù)抽象、多態(tài)和繼承類的方式抽象出構件并描述構件間的相互作用。其構件包括數(shù)據(jù)訪問構件、安全管理構件、算法構件、網(wǎng)絡處理構件和服務層可擴展構件等。框架由一組類表達,每個類對應一個構件,構件間的相互作用模式也是框架的重要組成部分。其次構件是以動態(tài)庫的形式封裝的,構件庫的結構是建立在系統(tǒng)抽象出的構件分類基礎之上的,其中框架與擴展點構件的控制流是雙向的。這樣框架復用時需要編寫的代碼更少,復用成熟框架的比例更高。采用消息隊列和線程同步技術構建工作流引擎,使得系統(tǒng)在多任務時整個工作流不堵塞。其工作流引擎的處理流程圖如圖4所示。
圖3 數(shù)據(jù)庫模塊關系結構圖
圖4 工作流引擎的處理流程圖
用戶界面層主要是設計快捷、實用、美觀、友好的顯示界面,實現(xiàn)人機交互的功能。根據(jù)用戶的需求可以將雷達顯示終端抽象為用戶管理構件、系統(tǒng)控制構件、態(tài)勢構件、目標表頁構件、故障顯示構件、波形圖構件、數(shù)據(jù)庫信息查詢構件和系統(tǒng)狀態(tài)構件。在界面層的設計時所有構件采用接口和抽象類組成的白箱層的設計方式。隨著需求的改變每個構件可以從白箱層繼承而來組成新的構件,并插入到體系中。
在雷達顯示終端開發(fā)過程中將實際需求和軟件框架進行有機結合,運用軟件框架程序自動調用構件庫的構件生成系統(tǒng)軟件,從而降低系統(tǒng)的耦合性,增加系統(tǒng)的構件化水平,其雷達顯示終端總體界面如圖5所示。
圖5 雷達顯示終端總體界面
隨著雷達系統(tǒng)領域不斷地擴展,開發(fā)者對領域的認識不斷深入,可使框架不斷演化,提高框架可復用性,增加復用比例并降低復用難度,因此一個好的框架是領域經(jīng)驗和設計經(jīng)驗的反復迭代的過程。本文從迭代式軟件開發(fā)過程模型入手,介紹了雷達顯示終端軟件在框架設計和實現(xiàn)過程中的分層設計模式,并在每層設計時考慮軟件框架和構件的復用性,從而指導了相關領域的開發(fā)活動。
[1] Graham E.設計模式-可復用面向對象軟件的基礎[M]. 北京:機械工業(yè)出版社,2000.
[2] Sparks S, Benner K, Faris C. Managing Object-oriented Framework Reuse[J]. Computer,1996(9):53-61.
[3] Johnson R, Foote B. Designing Reusable Classes[J].Journal of Object-Oriented Programming,1991:6-7.
[4] Szyperski C.Component Software-Beyond Object Oriented Programming[M].Addison-Wesley,1997.
[5] 高揚.基于NET平臺的三層架構軟件框架的設計與實現(xiàn)[J].計算機技術與發(fā)展,2011,21(2):77-80.
[6] 劉瑜,王立福,張世琨.軟件框架開發(fā)過程研究[J].計算機工程與應用,2004(2):26-28.
Design and implementation of iterative software framework based on radar display terminal
WANG Xiang-min, ZANG Qin, LIU Jia-yuan, ZHANG Yu-xi
(No. 724 Research Institute of CSIC, Nanjing 211153)
The design characteristics of the software framework are introduced, and the software framework is designed and implemented for radar display terminal. In the case of changed requirements, a reusable software framework is adopted, which makes the radar display terminal expansible and transplantable with flexible display and universal module.
software framework; component; software reuse; radar display terminal
2014-02-21;
2014-04-09
王向敏(1980-),女,工程師,碩士,研究方向:雷達終端顯示;臧勤(1983-),女,工程師,碩士,研究方向:雷達終端顯示與數(shù)據(jù)處理;劉佳媛(1988-),女,助理工程師,碩士,雷達數(shù)據(jù)處理;張玉喜(1979-),男,工程師,碩士,研究方向:雷達總體技術。
TN957.529
A
1009-0401(2014)03-0065-04