皇甫一江,王向敏,臧 勤,張玉喜
(1. 海軍裝備部裝備項(xiàng)目管理中心,北京100071;2. 中國(guó)船舶集團(tuán)有限公司第八研究院,南京 211153)
隨著新時(shí)期軍事裝備需求不斷擴(kuò)大,技偵領(lǐng)域出現(xiàn)設(shè)備種類多、軟件個(gè)性化與定制化需求不斷提升,傳統(tǒng)的“開(kāi)發(fā)定型,批量裝備”的軟件開(kāi)發(fā)方式已經(jīng)不能滿足現(xiàn)代軍事裝備層出不窮的新需求。近年來(lái)民用市場(chǎng)“軟件即服務(wù)”的思想也逐步滲透到軍用領(lǐng)域的軟件生產(chǎn)中。所謂“軟件即服務(wù)”意味著軟件交付之后仍需要根據(jù)用戶的新需求不斷地升級(jí)完善,以便能更好地為客戶服務(wù)。因此,亟待需要一種利于敏捷開(kāi)發(fā)、低代碼冗余度,并易于后期升級(jí)維護(hù)、低耦合度的構(gòu)件化的軟件生產(chǎn)方式,其各功能構(gòu)件可重復(fù)利用、靈活部署。本文利用基于構(gòu)件[1]的軟件開(kāi)發(fā)(Component-Based Software Development,CBSD)模式[2-3],開(kāi)發(fā)技偵領(lǐng)域的雷達(dá)顯控終端軟件,并構(gòu)建能快速搭建不同需求的開(kāi)發(fā)軟件控制平臺(tái)。該技術(shù)可以減少軟件開(kāi)發(fā)過(guò)程中大量的重復(fù)性工作,提高軟件生產(chǎn)率,降低開(kāi)發(fā)成本,縮短開(kāi)發(fā)周期。
基于構(gòu)件的軟件開(kāi)發(fā)是新一代的軟件開(kāi)發(fā)的思路和方法。它是建立在軟件重用、軟件工程和分布式系統(tǒng)的基礎(chǔ)上提出的一種軟件開(kāi)發(fā)方法。傳統(tǒng)的軟件開(kāi)發(fā)就是按照需求編寫代碼,從而產(chǎn)生很多冗余,軟件開(kāi)發(fā)的效率比較低。CBSD打破傳統(tǒng)的軟件開(kāi)發(fā)思路,把每個(gè)相對(duì)獨(dú)立的功能抽象為一個(gè)構(gòu)件,每個(gè)構(gòu)件都有一個(gè)標(biāo)準(zhǔn)的接口。而這些構(gòu)件又可以成為第3方的任務(wù),可以通過(guò)定制、采購(gòu)或自主開(kāi)發(fā)獲得,就可以將軟件開(kāi)發(fā)的任務(wù)分解。軟件開(kāi)發(fā)人員只需要將這些構(gòu)件搭建起來(lái)調(diào)試運(yùn)行即可開(kāi)發(fā)出新的軟件。
雷達(dá)顯示終端軟件主要實(shí)現(xiàn)態(tài)勢(shì)顯示、系統(tǒng)操控、故障檢測(cè)、表頁(yè)顯示、系統(tǒng)狀態(tài)顯示、數(shù)據(jù)分析、數(shù)據(jù)記錄回放、情報(bào)交互、數(shù)據(jù)及日志管理等功能,與其關(guān)系到的系統(tǒng)類型包括干涉儀偵測(cè)、時(shí)差偵測(cè)、拋物面被動(dòng)偵測(cè)、數(shù)字陣列被動(dòng)偵測(cè)、主動(dòng)偵測(cè)等。
在構(gòu)造的框架[4-6]中,主要按照領(lǐng)域模型建模。隨著對(duì)雷達(dá)領(lǐng)域的認(rèn)識(shí)不斷地深入和精確,在框架開(kāi)發(fā)過(guò)程中首先針對(duì)雷達(dá)系統(tǒng)需求進(jìn)行分析,得到描述該雷達(dá)系統(tǒng)的共性領(lǐng)域模型和個(gè)性領(lǐng)域模型。在該領(lǐng)域模型基礎(chǔ)上進(jìn)行領(lǐng)域設(shè)計(jì),建立可以指導(dǎo)的框架設(shè)計(jì)??蚣茉O(shè)計(jì)包括框架體系結(jié)構(gòu)、擴(kuò)展點(diǎn)和框架構(gòu)件的設(shè)計(jì),尤其關(guān)鍵的是個(gè)性領(lǐng)域設(shè)計(jì)以及框架的可復(fù)用性的擴(kuò)展點(diǎn)設(shè)計(jì)。在實(shí)現(xiàn)階段,根據(jù)框架應(yīng)用設(shè)計(jì)組裝應(yīng)用構(gòu)件,通過(guò)框架構(gòu)件實(shí)現(xiàn)雷達(dá)顯示終端軟件共性領(lǐng)域模型,并根據(jù)不同的組裝需求實(shí)現(xiàn)擴(kuò)展模式。該構(gòu)架分解的構(gòu)件如圖1所示。本系統(tǒng)根據(jù)功能和任務(wù)特性分解17個(gè)構(gòu)件,其中4個(gè)構(gòu)件是個(gè)性構(gòu)件,即每個(gè)不同類型的設(shè)備具有不同的系統(tǒng)操控、故障檢測(cè)、系統(tǒng)狀態(tài)和使用手冊(cè)的個(gè)性的構(gòu)件。但是,對(duì)于同一類型應(yīng)用在不同設(shè)備上,該個(gè)性構(gòu)件就具備復(fù)用性。
圖1 雷達(dá)顯控終端軟件相關(guān)的構(gòu)件圖
構(gòu)件是可復(fù)用的軟件組成部分,在系統(tǒng)中為實(shí)際存在的可更換部分。它實(shí)現(xiàn)特定的功能,其物理形態(tài)是符合工業(yè)標(biāo)準(zhǔn)(COM或COBAR等)的二進(jìn)制可復(fù)用軟件模塊。圖1的構(gòu)件在設(shè)計(jì)過(guò)程中符合如下的設(shè)計(jì)準(zhǔn)則:
(1) 獨(dú)立性 構(gòu)件必須是一個(gè)可以獨(dú)立配置的單元,必須具備自包容性;
(2) 封裝性 構(gòu)件的實(shí)現(xiàn)是嚴(yán)格封裝的,要與環(huán)境和其他構(gòu)件完全分離,這樣外界沒(méi)有機(jī)會(huì)或沒(méi)有必要知道構(gòu)件內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),從而體現(xiàn)面向?qū)ο缶幊痰姆庋b性;
(3) 規(guī)范接口 構(gòu)件在適當(dāng)?shù)沫h(huán)境下可以被重用,必須有規(guī)范的接口才可以被共享;
(4) 擴(kuò)展性 在需求變動(dòng)或新增需求時(shí)能夠基于該構(gòu)件快速開(kāi)發(fā)。
為了支持可重用構(gòu)件庫(kù)的管理,定義可重用構(gòu)件的屬性,具體如表1所示。將雷達(dá)顯示終端相關(guān)所有構(gòu)件根據(jù)此標(biāo)準(zhǔn)輸入到構(gòu)件庫(kù)中。
根據(jù)顯控終端軟件不同的應(yīng)用需求,從構(gòu)件庫(kù)中查找滿足系統(tǒng)功能、系統(tǒng)類型和應(yīng)用領(lǐng)域的構(gòu)件。如果被復(fù)用的構(gòu)件不符合目標(biāo)系統(tǒng)的軟件體系架構(gòu)就可能導(dǎo)致該構(gòu)件無(wú)法正常工作,甚至影響整個(gè)系統(tǒng)的運(yùn)行。這種情況就會(huì)導(dǎo)致構(gòu)件失配。這時(shí)需要采用開(kāi)發(fā)工具進(jìn)行構(gòu)件更新,然后充分測(cè)試新構(gòu)件以保證其正確工作后入構(gòu)件庫(kù)。當(dāng)調(diào)整構(gòu)件滿足體系結(jié)構(gòu)要求的行為時(shí)構(gòu)件適配成功,再進(jìn)行構(gòu)件組裝,而構(gòu)件的組裝由顯控終端軟件構(gòu)建平臺(tái)(如圖2)完成,具體構(gòu)建流程如圖3所示。
表1 可重用構(gòu)件屬性表
圖2 顯控終端軟件構(gòu)建平臺(tái)
圖3 顯控終端軟件構(gòu)建處理流程圖
顯控終端軟件構(gòu)建平臺(tái)是以可視化的方式來(lái)實(shí)現(xiàn)功能構(gòu)件的參數(shù)設(shè)置(比如菜單構(gòu)件的功能項(xiàng)設(shè)置、IP地址、窗口顯示位置、窗口是否顯示等)并生成對(duì)應(yīng)的腳本文件,實(shí)現(xiàn)構(gòu)件功能上的調(diào)整或刪減,最終達(dá)到終端軟件的布局和功能需求,再啟動(dòng)雷達(dá)顯示終端應(yīng)用框架,讀取腳本文件,構(gòu)成新的顯控終端軟件。
為了雷達(dá)裝備的軟件可以繼承性地開(kāi)發(fā),無(wú)論顯控終端軟件還是數(shù)據(jù)處理軟件在軟件開(kāi)發(fā)過(guò)程中都可以采用軟件構(gòu)件的方式實(shí)現(xiàn)軟件重用。首先,在生產(chǎn)過(guò)程中要不斷地組織提煉共性軟件功能、優(yōu)化應(yīng)用框架;其次,不斷地進(jìn)行構(gòu)件的積累,并將它們組織成構(gòu)件庫(kù)。這樣不僅利用構(gòu)件的維護(hù),而且也解決構(gòu)件如何檢索、如何選取構(gòu)件等問(wèn)題。
利用顯控終端軟件構(gòu)建平臺(tái)可以快速搭建一個(gè)新的雷達(dá)顯控終端軟件,同時(shí)將工作重點(diǎn)轉(zhuǎn)移到研發(fā)新構(gòu)件。在此基礎(chǔ)上,軟件的靈活性和標(biāo)準(zhǔn)化程度也能得到進(jìn)一步提高。