曹 雷,薛平貞
(西北機(jī)電工程研究所2室,陜西 咸陽(yáng)712099)
在某裝備系統(tǒng)研發(fā)中,根據(jù)項(xiàng)目研制需求,需建立雷達(dá)仿真系統(tǒng)。該仿真系統(tǒng)在裝備中既可單獨(dú)工作,又可以與其他節(jié)點(diǎn)單元協(xié)同工作;能為裝備系統(tǒng)的調(diào)試提供信號(hào)源,同時(shí)接收顯示裝備系統(tǒng)中與雷達(dá)有關(guān)的命令數(shù)據(jù),從而為裝備的研制提供調(diào)試與驗(yàn)證平臺(tái)。
雷達(dá)仿真系統(tǒng)在開發(fā)過(guò)程中采用基于模型驅(qū)動(dòng)的設(shè)計(jì)方法,對(duì)系統(tǒng)進(jìn)行抽象建模,主要?jiǎng)?chuàng)建了包括功能需求模型、工作流程模型、邏輯結(jié)構(gòu)模型以及系統(tǒng)運(yùn)行交互模型等,建模語(yǔ)言采用UML2.0[1-2]。通過(guò)將系統(tǒng)設(shè)計(jì)的模型化,使得系統(tǒng)在開發(fā)過(guò)程中設(shè)計(jì)人員、程序員以及軟件測(cè)試人員能夠在模型的基礎(chǔ)上進(jìn)行直觀的溝通交流,最終指導(dǎo)并規(guī)范系統(tǒng)的實(shí)現(xiàn)與測(cè)試。
Rhapsody是一種遵循UML2.0標(biāo)準(zhǔn)基于模型驅(qū)動(dòng)的(Model-Driven Development,MDD)軟件開發(fā)平臺(tái)[3],其專門針對(duì)嵌入式操作系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)了嵌入式操作系統(tǒng)下基于UML2.0可視化建模的應(yīng)用程序開發(fā)。
Rhapsody通過(guò)將系統(tǒng)開發(fā)過(guò)程中的各個(gè)層次、結(jié)構(gòu)完全模型化,并能夠貫穿系統(tǒng)設(shè)計(jì)、軟件開發(fā)以及軟件測(cè)試等各個(gè)環(huán)節(jié)。有助于優(yōu)化系統(tǒng)及產(chǎn)品的規(guī)格說(shuō)明、設(shè)計(jì)、開發(fā)、記錄以及測(cè)試過(guò)程。從而使系統(tǒng)工程師和軟件設(shè)計(jì)人員更好地進(jìn)行協(xié)作,以更快的速度交付高質(zhì)量的系統(tǒng)。
雷達(dá)仿真系統(tǒng)在Rhapsody開發(fā)環(huán)境中對(duì)進(jìn)行系統(tǒng)建模[4],其主要步驟分為:(1)對(duì)系統(tǒng)進(jìn)行功能需求分析,建立功能需求模型。(2)針對(duì)需求模型,明確系統(tǒng)的具體工作流程,構(gòu)建系統(tǒng)工作流程模型。(3)建立系統(tǒng)的邏輯結(jié)構(gòu)模型,包括類與類圖[5]。(4)為表征系統(tǒng)各組成部分之間重要活動(dòng)時(shí)的交互關(guān)系,建立系統(tǒng)運(yùn)作模型。(5)根據(jù)第(2)步和第(4)步建立的活動(dòng)圖和順序圖,構(gòu)建系統(tǒng)狀態(tài)模型。
雷達(dá)仿真系統(tǒng)包括搜索雷達(dá)仿真和跟蹤雷達(dá)仿真兩部分。搜索雷達(dá)仿真功能模擬搜索雷達(dá)的工作狀態(tài)、航路、點(diǎn)跡與干擾源數(shù)據(jù)和故障信息等信號(hào)量,并依據(jù)通信協(xié)議要求進(jìn)行數(shù)據(jù)傳輸。跟蹤雷達(dá)仿真功能模擬跟蹤雷達(dá)的工作狀態(tài)、跟蹤數(shù)據(jù)和故障信息等信號(hào)量,并依據(jù)通信協(xié)議要求進(jìn)行實(shí)時(shí)傳輸。此外,通過(guò)對(duì)系統(tǒng)的功能需求分析,在Rhapsody中建立相應(yīng)的功能需求模型并使用用例圖表示,具體如圖1所示。
圖1 系統(tǒng)用例圖
在用例圖中,外部角色包括:操作者、網(wǎng)絡(luò)、一層CAN、二層CAN。系統(tǒng)主要包含10個(gè)用例,分別是:航路數(shù)據(jù)顯示、PPI畫面顯示、數(shù)據(jù)處理、網(wǎng)絡(luò)數(shù)據(jù)收發(fā)、仿真控制、CAN數(shù)據(jù)收發(fā)、工作狀態(tài)設(shè)置、故障信息設(shè)置、航路點(diǎn)跡參數(shù)設(shè)置以及GUI操作。圖中外部角色與具體用例之間由關(guān)聯(lián)線連接,表示二者之間有通信關(guān)系。外部角色、用例和關(guān)聯(lián)線共同組成了系統(tǒng)的需求模型。
若是用例圖表征了系統(tǒng)的功能,則系統(tǒng)工作流程模型則指明系統(tǒng)將如何實(shí)現(xiàn)其功能,活動(dòng)圖顯示了鏈接在一起的動(dòng)作(action),代表系統(tǒng)中發(fā)生的流程。根據(jù)上文建立的系統(tǒng)功能需求模型,概括得出系統(tǒng)活動(dòng)圖如圖2所示,“●”代表活動(dòng)起點(diǎn);“”代表活動(dòng)終點(diǎn);“◇”代表?xiàng)l件判定點(diǎn)。
圖2 系統(tǒng)工作活動(dòng)圖
根據(jù)系統(tǒng)用例圖,將系統(tǒng)邏輯結(jié)構(gòu)從頂層劃分為3個(gè)模塊,分別為界面顯示與操作處理模塊(itsGUI)、底層通信處理模塊(itsCANPro)和GUI與底層的接口對(duì)象模塊(itsDI),建立系統(tǒng)邏輯結(jié)構(gòu)模型如圖3所示,圖4~圖6分別是圖3中對(duì)象itsGUI、itsCANPro和itsDI的基類模型圖;圖3中符號(hào)“:”后的名稱為對(duì)象的類型名稱,對(duì)象之間的連接(Link)表示兩個(gè)對(duì)象具有相互調(diào)用關(guān)系,帶箭頭的線則代表單向調(diào)用關(guān)系。
圖3 系統(tǒng)頂層對(duì)象模型圖
圖4 cl_RadarGUI組成模型圖
圖5 cl_CANPRO組成模型圖
圖6 itsDI組成模型圖
為表達(dá)系統(tǒng)各用例之間的交互次序,即執(zhí)行特定用例時(shí),會(huì)發(fā)生哪些交互,以及這些交互以何種次序發(fā)生,需建立系統(tǒng)運(yùn)作模型,在UML中使用系統(tǒng)工作順序圖表示。以系統(tǒng)功能需求模型中的航路點(diǎn)跡參數(shù)設(shè)置、數(shù)據(jù)處理及CAN總線數(shù)據(jù)收發(fā)3個(gè)用例交互關(guān)系為例,設(shè)計(jì)系統(tǒng)工作順序圖如圖7所示。
圖7 航路點(diǎn)跡參數(shù)設(shè)置的系統(tǒng)工作順序圖
依據(jù)各對(duì)象的建模結(jié)果,以下對(duì)各對(duì)象的基類屬性和操作進(jìn)行具體實(shí)現(xiàn)。在實(shí)現(xiàn)各對(duì)象功能的基類中采用了事件觸發(fā)有限狀態(tài)機(jī)之間自動(dòng)進(jìn)行轉(zhuǎn)移來(lái)管理對(duì)象生命周期中的所有活動(dòng),由此各對(duì)象間以及對(duì)象內(nèi)部之間的動(dòng)態(tài)交互流程更為清晰,增進(jìn)了程序的可讀性。這里只給出頂層設(shè)計(jì)中對(duì)象itsGUI和itsCANPro的功能實(shí)現(xiàn)狀態(tài)圖,分別如圖8和圖9所示。
經(jīng)多次調(diào)試驗(yàn)證,雷達(dá)仿真系統(tǒng)的設(shè)計(jì)達(dá)到了研制要求,最終系統(tǒng)主界面運(yùn)行效果如圖10所示。
圖8 cl_RadarGUI狀態(tài)圖
圖9 cl_CANPRO狀態(tài)圖
圖10 雷達(dá)仿真系統(tǒng)運(yùn)行界面
在雷達(dá)仿真系統(tǒng)的開發(fā)中通過(guò)運(yùn)用基于模型驅(qū)動(dòng)的設(shè)計(jì)方法,對(duì)系統(tǒng)開發(fā)中的各個(gè)階段進(jìn)行建模,能夠達(dá)到簡(jiǎn)化系統(tǒng)設(shè)計(jì)與維護(hù),使系統(tǒng)更容易被理解、開發(fā)和測(cè)試的目的。另外將系統(tǒng)的開發(fā)重點(diǎn)放到頂層的功能分解、結(jié)構(gòu)劃分、行為分析和需求規(guī)范上,從而提高了系統(tǒng)的可靠性,縮短了項(xiàng)目研制時(shí)間。目前該雷達(dá)仿真系統(tǒng)已完成驗(yàn)收,并應(yīng)用于后續(xù)自行武器系統(tǒng)的研制和調(diào)試之中。
[1]GRADYBOOCH,JAMES R,IVAR J.Unified modeling language user guide(2ndE2dition)[M].New York:Addison-Wesley Professional,2005.
[2]DOUGLASS,BRUCE P.Doing hard time:developing realtime systems with UML,ob2jects,frameworks,and patterns[M].New York:Addison-Wesley,1999.
[3] 王飛.基于模型驅(qū)動(dòng)架構(gòu)的仿真系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2007.
[4] 李卉,鐘成,黃先鋒,等.集成激光雷達(dá)數(shù)據(jù)和遙感影像的立交橋自動(dòng)檢測(cè)方法[J].測(cè)繪學(xué)報(bào),2012,41(3):428-433.
[5] 李禹,計(jì)科鋒,粟毅.合成孔徑雷達(dá)圖像分割技術(shù)綜述[J].宇航學(xué)報(bào),2008,29(2):407-412.
[6] 王沛.一種基于XML的異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)轉(zhuǎn)換方法[J].西安郵電學(xué)院學(xué)報(bào),2011,16(3):73-76.
[7] 芮新芳.XML與數(shù)據(jù)庫(kù)的信息交互[J].西安郵電學(xué)院學(xué)報(bào),2005,10(1):85-88.