凌旺 閔嘯 張名明
(中國船舶重工集團(tuán)公司第七二三研究所 江蘇省揚(yáng)州市 225011)
傳統(tǒng)電子戰(zhàn)視景軟件大多只注重功能實現(xiàn),這使得其需要在面對不同應(yīng)用需求時針對性設(shè)計或改造,設(shè)計或改造的范圍往往較大,軟件的適應(yīng)能力和可擴(kuò)展性較差。為實現(xiàn)電子戰(zhàn)三維視景軟件的開發(fā)成本和周期縮減、快速響應(yīng)需求滿足,正是本文圍繞電子戰(zhàn)三維視景軟件適應(yīng)性架構(gòu)設(shè)計開展具體研究的原因所在。
在幾乎所有軟件的生命周期中,需求變化的出現(xiàn)不可避免,這種變化的根源為需求的不穩(wěn)定、不完整、不準(zhǔn)確特性。從用戶需求直接到軟件實現(xiàn)屬于傳統(tǒng)軟件開發(fā)特點,這類定制軟件往往靈活性較差。架構(gòu)在軟件生命周期中的關(guān)鍵作用和特殊性可通過軟件架構(gòu)的設(shè)計方法得到較好體現(xiàn),這是方法可成為實現(xiàn)與需求的橋梁。軟件適應(yīng)性架構(gòu)開發(fā)可處理需求變化特性,這屬于其基礎(chǔ),如軟件架構(gòu)開發(fā)面向領(lǐng)域應(yīng)用,需做好需求域的定義,并基于功能抽象分類需求,為順利提高架構(gòu)適應(yīng)能力,需細(xì)分變化需求和穩(wěn)定需求,以此進(jìn)行大量領(lǐng)域需求累計可更好提醒客戶,開發(fā)初期的需求不確性減少也可由此實現(xiàn)。在具體實踐中,必須重點做好需求處理,為夯實基礎(chǔ),可進(jìn)行需求的分解和抽象處理[1]。
為真正實現(xiàn)需求抽象,滿足實際需要,需求必須以軟件架構(gòu)設(shè)計和需求作為切入口。考慮到一般情況下的用戶需求多存在不系統(tǒng)、不準(zhǔn)確、不完整特征,為認(rèn)識軟件架構(gòu)設(shè)計中的關(guān)鍵問題,必須從設(shè)計者角度出發(fā),領(lǐng)域抽象也需要同時開展,以此向領(lǐng)域設(shè)計問題實現(xiàn)用戶需求的集合轉(zhuǎn)化。填補(bǔ)傳統(tǒng)用戶需求到軟件設(shè)計間鴻溝屬于需求抽象的特點所在,提供過渡媒介服務(wù)于,基于一定完備性考慮的設(shè)計初期對設(shè)計者技能和經(jīng)驗的依賴相對較小。
為較好應(yīng)對設(shè)計復(fù)雜性挑戰(zhàn),必須做好需求的分解工作,為順利構(gòu)建領(lǐng)域需求空間,需針對性開展分類、分層,體系化需求結(jié)構(gòu)可順利獲得。具體需要依據(jù)和對系統(tǒng)具有關(guān)鍵作用的高層及全局性需求劃定軟件架構(gòu)范圍,可從低一層次確定頂層問題域內(nèi)的重要需求,并隨之確定其他問題范圍,層次化的需求結(jié)構(gòu)即可逐步建立,架構(gòu)設(shè)計的重要功能性要求可由此明確?;诜枪δ苄孕枨?,即可作為需求結(jié)構(gòu)補(bǔ)充,需求結(jié)構(gòu)抽象在其中發(fā)揮的關(guān)鍵性作用必須得到重視。對于一般情況下難以發(fā)現(xiàn)和表達(dá)的非功能性需求來說,如配置、可維護(hù)性、質(zhì)量屬性、設(shè)計約束、界面要求等,需求的可復(fù)用性可基于抽象所得需求關(guān)聯(lián)性和獨(dú)立性明確,領(lǐng)域需求空間的完備性會直接影響領(lǐng)域軟件架構(gòu)適應(yīng)性設(shè)計[2]。
圖1:邏輯架構(gòu)分層示意圖
圖2:構(gòu)件結(jié)構(gòu)示意圖
圖3:架構(gòu)運(yùn)行示意圖
對于本文研究的電子戰(zhàn)三維視景軟件設(shè)計來說,設(shè)計需要建立具備實時瀏覽及控制、場景制作、作戰(zhàn)想定編輯功能的開放基礎(chǔ)平臺,以此提供軟件平臺支持,即可更好開發(fā)電子戰(zhàn)視景并滿足不同類別、不同層次需要,科學(xué)性的架構(gòu)設(shè)計直接關(guān)系著二次開發(fā)效率,具體設(shè)計需要關(guān)注軟件的領(lǐng)域需求、軟件架構(gòu)方案等內(nèi)容。
圍繞領(lǐng)域需求進(jìn)行研究可以發(fā)現(xiàn),具體可細(xì)分為功能及非功能需求。功能需求包括業(yè)務(wù)、集成、數(shù)據(jù)訪問層需求,業(yè)務(wù)層功能需求可細(xì)分為效果控制、模型控制、顯示模式、運(yùn)行方式、視點控制,如顯示模式包括視窗的關(guān)閉打開、線框模式、不同視窗的選擇、全屏切換,以此響應(yīng)各種算法及命令,一般情況下用戶需求不會在數(shù)據(jù)訪問層和服務(wù)層細(xì)化體現(xiàn)。集成層功能需求包括場景顯示、數(shù)據(jù)顯示、界面布局、戰(zhàn)情編輯,如場景顯示包括干擾過程、偵察過程、指控過程、平臺飛行。一般情況下,根據(jù)仿真目的編輯作戰(zhàn)想定為集成層的需求來源,以此實現(xiàn)各類對抗場景、數(shù)據(jù)的可視化,以及戰(zhàn)情、界面要求的編輯輸入;對于較為迷糊的非功能性來說,必須關(guān)注頂層抽象、分解,并同時開展針對性的補(bǔ)充需求,以此保證需求結(jié)構(gòu)完整性。在需求結(jié)構(gòu)上,軟件架構(gòu)需要對需要解決的問題及具體解決辦法進(jìn)行清晰定義,并保證需求變化時架構(gòu)的影響范圍和調(diào)整方案能夠及時確定。在具體的電子戰(zhàn)三維視景軟件需求分解過程中,需圍繞數(shù)據(jù)訪問層、業(yè)務(wù)層、集成層進(jìn)行,由此可發(fā)現(xiàn)上層屬于易變需求的集中位置,特點為概括模糊和不清晰,體系存在的個性化要求也不容忽視,如多樣化仿真目的、可視化人機(jī)界面與數(shù)據(jù),這不會對軟件架構(gòu)設(shè)計帶來深遠(yuǎn)影響。愈向底層則用戶界定清楚的難度越大,因此需開展設(shè)計方輔助決策,保證功能穩(wěn)定。結(jié)合質(zhì)量等非功能需求,高規(guī)格設(shè)計下的處理方法具備可復(fù)用特性。
具體方案的形成需關(guān)注通信關(guān)系(構(gòu)件間)、基礎(chǔ)信息結(jié)構(gòu)、數(shù)據(jù)接口協(xié)議、設(shè)計功能分配等內(nèi)容,新問題解決方案在集成層功能需求變化時的針對性選取也需要得到重視,為在軟件架構(gòu)中實現(xiàn)充分融入,構(gòu)件關(guān)系作用這一過程中必須做到充分發(fā)揮,小改動的大效果可真正實現(xiàn),同時可得到適應(yīng)性更高的架構(gòu),具體的邏輯架構(gòu)分層示意圖設(shè)計如圖1所示[3]。
結(jié)合圖1進(jìn)行分析可以發(fā)現(xiàn),邏輯架構(gòu)由數(shù)據(jù)訪問層、業(yè)務(wù)層、集成層組成。集成層主要包括戰(zhàn)情的錄入、數(shù)據(jù)及場景態(tài)勢的展示、窗口界面,由于變動相對頻繁,變更空間需要在設(shè)計時預(yù)留,靈活處理更改可由此實現(xiàn)。業(yè)務(wù)層的完成需應(yīng)用多個處理算法,包括場景效果實現(xiàn)、模型驅(qū)動、進(jìn)程控制、各類數(shù)據(jù)的交換、處理接口等算法,控制部分在功能需求中的實現(xiàn)可順利完成,由于用戶基本不參與,該層存在最穩(wěn)定的需求,通用的模塊也使得重組使用較為便利。數(shù)據(jù)訪問層負(fù)責(zé)各類數(shù)據(jù)讀取,功能需求中通信部分需由該層實現(xiàn),涉及相對穩(wěn)定的消息響應(yīng)、系統(tǒng)配置文件和數(shù)據(jù)庫讀取,通信方式上較為容易出現(xiàn)變動,如socket、HLA 通信。集成層與數(shù)據(jù)訪問層存在不同的不穩(wěn)定性。前者可能在任何時候出現(xiàn)改動,但數(shù)據(jù)訪問層變化在最初確定后基本不會出現(xiàn),具體設(shè)計需要開展“需求-架構(gòu)構(gòu)件-功能實現(xiàn)”關(guān)聯(lián)鏈的建設(shè),架構(gòu)適應(yīng)性可由此得到保障,圖2為構(gòu)件結(jié)構(gòu)示意圖。
構(gòu)件與關(guān)聯(lián)接口功能可實現(xiàn)分離,在架構(gòu)層面構(gòu)件的更改或增刪時,存在保持不變的關(guān)聯(lián)接口。對于細(xì)化為更小顆粒構(gòu)件,需求變化時的影響域可基于關(guān)聯(lián)鏈確定,通過較小更改關(guān)聯(lián)鏈條和構(gòu)件,新的功能即可順利實現(xiàn)。此外,分析集成層的易變性可以發(fā)現(xiàn),構(gòu)件設(shè)計的松耦合和高內(nèi)聚特性需得到注意,構(gòu)建的獨(dú)立性和功能針對性可由此提升,大范圍更改規(guī)避、較大操作空間預(yù)留可順利實現(xiàn)。從架構(gòu)上還可以分離戰(zhàn)情設(shè)置、集成層要處理的數(shù)據(jù),采用配置文件的形式保存,分離參數(shù)數(shù)據(jù)和調(diào)用算法,通過對分離出的配置項和文件進(jìn)行修改,提升變更空間目的即可順利實現(xiàn)。對于由多個類組成的每個構(gòu)件來說,
對于具備復(fù)雜互操作邏輯和業(yè)務(wù)邏輯的電子戰(zhàn)三維視景軟件來說,為實現(xiàn)關(guān)鍵資源使用效率優(yōu)化,采用多條控制流并發(fā)執(zhí)行或并行運(yùn)行架構(gòu),主線程窗口系統(tǒng)由VisualC++6.0 創(chuàng)建,主線程不斷執(zhí)行,用于顯示輸出數(shù)據(jù)信息和用戶輸入指令處理,以及各線程工作的建立、關(guān)閉和協(xié)調(diào)。通信和場景顯示由子線程處理,采用并行工作模式,執(zhí)行過程中的每個子線程需要不斷監(jiān)聽消息指令,各自負(fù)責(zé)事務(wù)處理需要在接到指令后立即開展,主線程負(fù)責(zé)后續(xù)處理。圖3為架構(gòu)運(yùn)行示意圖。
在進(jìn)行仿真前,程序配置參數(shù)需從界面加載acf 文件實現(xiàn),在接收初始化命令后,即可讀取數(shù)據(jù)庫中的戰(zhàn)情文件并開展裝備模型布站和初始化。在具體仿真過程中,需接收發(fā)送數(shù)據(jù)進(jìn)行幀循環(huán),同時進(jìn)行態(tài)勢推進(jìn)過程顯示,用戶在期間可介入,用戶命令由程序接收并響應(yīng)。在完成軟件架構(gòu)設(shè)計后,可從可移植性、可維護(hù)性、可靠性、可用性、功能性、效率等方面衡量架構(gòu)質(zhì)量。
通過建立電子戰(zhàn)三維視景軟件適應(yīng)性架構(gòu),即可為軟件的調(diào)整和擴(kuò)展提供便利,影響的軟件模塊確定可根據(jù)增加的功能實現(xiàn),以此最小調(diào)整模塊的功能和行為,模塊間在調(diào)整后的關(guān)系也可隨之明確,架構(gòu)上的開發(fā)代價和影響域可由此確定。以某預(yù)警機(jī)雷達(dá)對抗視景軟件為例,用戶在開發(fā)過程中對通訊方式、界面、戰(zhàn)情提出了新需求,且原視景軟件中預(yù)警機(jī)的運(yùn)動方式無相應(yīng)運(yùn)動模塊支撐。開展軟件架構(gòu)分析可確定,改動會影響集成層的戰(zhàn)情編輯和窗口界面,及數(shù)據(jù)訪問層接口模塊HLA 事件總線接口,業(yè)務(wù)層的運(yùn)動策略??蚣苄薷脑O(shè)計可基于影響域進(jìn)行,其他模塊不會受到界面控件調(diào)整影響,同時僅需要按照設(shè)定標(biāo)準(zhǔn)格式重新輸入新的戰(zhàn)情,無需更改戰(zhàn)情參數(shù)的調(diào)用,運(yùn)動策略模塊中需加載針對性開發(fā)的相應(yīng)子類,調(diào)用方法在主程序中保持不變。需要基于socket 網(wǎng)絡(luò)通信取代HLA 事件總線接口,主程序的調(diào)用在數(shù)據(jù)接收后保持不變。具體仿真根據(jù)干擾功率的大小實時調(diào)整預(yù)警機(jī)偵測范圍,由相應(yīng)的軟件單元實時計算飛機(jī)運(yùn)動、干擾功率及范圍,視景軟件實時表現(xiàn)突防、干擾、飛行情況和攻擊彈道效果及過程。結(jié)合軟件更改效率評估可以確定,在面對新需求更改時,基于適應(yīng)性架構(gòu)設(shè)計的領(lǐng)域軟件具備開發(fā)代價小、適應(yīng)能力強(qiáng)特點。
綜上所述,電子戰(zhàn)三維視景軟件適應(yīng)性架構(gòu)設(shè)計需關(guān)注多方面因素影響。在此基礎(chǔ)上,本文涉及的需求抽象、需求分解、軟件架構(gòu)方案形成及擴(kuò)展應(yīng)用分析等內(nèi)容,則提供了可行性較高的電子戰(zhàn)三維視景軟件適應(yīng)性架構(gòu)設(shè)計路徑。為更好服務(wù)于電子戰(zhàn)三維視景軟件設(shè)計,需求變化特性帶來的影響必須得到重點關(guān)注。