劉福軍1,湯宮民1,孫香冰1,湯瀟奕2,梁清果1
(1.中國人民解放軍72465部隊(duì),濟(jì)南 250022;2.華中師范大學(xué),武漢 430079)
基于構(gòu)件的開放式網(wǎng)絡(luò)化自動(dòng)測(cè)試技術(shù)研究
劉福軍1,湯宮民1,孫香冰1,湯瀟奕2,梁清果1
(1.中國人民解放軍72465部隊(duì),濟(jì)南 250022;2.華中師范大學(xué),武漢 430079)
針對(duì)當(dāng)前網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)的軟件復(fù)用局限于代碼復(fù)用的問題,提出基于構(gòu)件的開放式網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)軟件開發(fā)方法,實(shí)現(xiàn)測(cè)試軟件的更高層次復(fù)用;引入領(lǐng)域工程的思想,將軟件開發(fā)過程劃分為三個(gè)階段:領(lǐng)域分析階段運(yùn)用UML建模語言對(duì)網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)進(jìn)行需求分析、靜態(tài)分析和動(dòng)態(tài)分析;領(lǐng)域設(shè)計(jì)階段完成可復(fù)用構(gòu)件的辨識(shí)和提取,并建立可復(fù)用構(gòu)件框架模型;領(lǐng)域?qū)崿F(xiàn)階段對(duì)關(guān)鍵的可復(fù)用構(gòu)件進(jìn)行實(shí)現(xiàn)。
構(gòu)件;網(wǎng)絡(luò)化;自動(dòng)測(cè)試系統(tǒng);統(tǒng)一建模語言
隨著武器裝備測(cè)試需求的不斷增加,網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)的規(guī)模和結(jié)構(gòu)也日趨復(fù)雜,在這種情況下,系統(tǒng)開發(fā)中的軟件可復(fù)用性是系統(tǒng)能否實(shí)現(xiàn)開放性的重要保證。目前,網(wǎng)絡(luò)化自動(dòng)測(cè)試領(lǐng)域內(nèi)的軟件復(fù)用基本局限于代碼復(fù)用,而不是對(duì)整個(gè)體系結(jié)構(gòu)的設(shè)計(jì)復(fù)用,這勢(shì)必造成開發(fā)人員花費(fèi)大量時(shí)間來處理對(duì)象之間的控制流,從而為系統(tǒng)的維護(hù)與升級(jí)帶來了困難[1]。
目前,較大規(guī)模的復(fù)雜應(yīng)用系統(tǒng)一般采用現(xiàn)代軟件工程中基于構(gòu)件的軟件開發(fā)方法,這種方法不僅具有方便開發(fā)和維護(hù)、可移植性強(qiáng)、復(fù)用性好等優(yōu)勢(shì),而且有利于積累開發(fā)復(fù)雜系統(tǒng)的豐富經(jīng)驗(yàn)和方法模式。因此,本文將基于構(gòu)件的軟件開發(fā)技術(shù)運(yùn)用到網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)的軟件開發(fā)中,使得測(cè)試軟件的復(fù)用不局限于基礎(chǔ)源代碼的復(fù)用,而更重要的是設(shè)計(jì)過程、設(shè)計(jì)框架和體系結(jié)構(gòu)等更高層次的復(fù)用。
本章首先給出了基于構(gòu)件的網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)軟件開發(fā)的階段劃分方法,在領(lǐng)域分析階段和領(lǐng)域設(shè)計(jì)階段運(yùn)用UML建模語言對(duì)網(wǎng)絡(luò)化自動(dòng)測(cè)試領(lǐng)域內(nèi)的可復(fù)用構(gòu)件進(jìn)行辨識(shí)和抽取,在領(lǐng)域?qū)崿F(xiàn)階段對(duì)識(shí)別出的部分關(guān)鍵構(gòu)件進(jìn)行實(shí)現(xiàn)。整個(gè)軟件開發(fā)過程中采用了面向信號(hào)的軟件設(shè)計(jì)方法,從而保證了測(cè)試軟件的可移植性和儀器的可互換性。
構(gòu)件[2]是按照一定規(guī)范編寫的、近乎獨(dú)立的、可替換的滿足一定功能的軟件模塊,是語義描述、通信接口和實(shí)現(xiàn)代碼的復(fù)合體。構(gòu)件技術(shù)繼承并發(fā)展了面向?qū)ο蟮乃枷?,它更?qiáng)調(diào)真正的軟件復(fù)用和高度的互操作性。
基于構(gòu)件的軟件開發(fā)過程分為兩部分:開發(fā)可復(fù)用的構(gòu)件和利用可復(fù)用的構(gòu)件開發(fā)應(yīng)用系統(tǒng)[3]。本文開展的基于構(gòu)件的開放式網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)軟件研究集中在開發(fā)過程的前一部分,即通過對(duì)網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)進(jìn)行分析,辨識(shí)出領(lǐng)域中可復(fù)用的構(gòu)件元素;并對(duì)辨識(shí)出的可復(fù)用構(gòu)件采用組件對(duì)象模型COM加以實(shí)現(xiàn)。
整個(gè)軟件開發(fā)過程可分為3個(gè)階段:領(lǐng)域分析階段、領(lǐng)域設(shè)計(jì)階段和領(lǐng)域?qū)崿F(xiàn)階段。
1)領(lǐng)域分析階段:領(lǐng)域分析是識(shí)別、捕捉和組織系統(tǒng)可重用信息的過程,其主要任務(wù)是通過對(duì)網(wǎng)絡(luò)化自動(dòng)測(cè)試領(lǐng)域內(nèi)知識(shí)的抽象,區(qū)分出共性和可變性,形成領(lǐng)域模型。
2)領(lǐng)域設(shè)計(jì)階段:領(lǐng)域設(shè)計(jì)階段是對(duì)領(lǐng)域模型進(jìn)行技術(shù)延伸,在領(lǐng)域需求的基礎(chǔ)上嚴(yán)格區(qū)分出通用功能點(diǎn)、可選功能點(diǎn)和差異點(diǎn),把各個(gè)通用功能點(diǎn)作為領(lǐng)域的特征,并把該特征抽象成共性的特征模型,以此為基礎(chǔ)抽取出可復(fù)用構(gòu)件,設(shè)計(jì)出基于構(gòu)件的領(lǐng)域軟件框架結(jié)構(gòu)。
3)領(lǐng)域?qū)崿F(xiàn)階段:領(lǐng)域?qū)崿F(xiàn)階段的主要目的是依據(jù)領(lǐng)域模型和領(lǐng)域軟件框架結(jié)構(gòu)開發(fā)和組織可復(fù)用信息。這個(gè)階段也可以看作是復(fù)用基礎(chǔ)設(shè)施的實(shí)現(xiàn)階段。
領(lǐng)域分析是系統(tǒng)進(jìn)行成功復(fù)用的第一步,也是最重要的一步。本文在領(lǐng)域分析過程中引入了UML建模方法[4]。基于UML的領(lǐng)域分析過程如圖1所示,整個(gè)領(lǐng)域分析過程分為標(biāo)識(shí)域、分析域和描述域3個(gè)階段。與之對(duì)應(yīng)的UML建模過程可概括為:首先由需求分析建立用例模型,得到系統(tǒng)的功能;其次對(duì)用例模型進(jìn)行細(xì)化,建立系統(tǒng)的靜態(tài)模型;然后將系統(tǒng)要完成的功能在類之間進(jìn)行分配,得到對(duì)類的操作,建立系統(tǒng)的動(dòng)態(tài)模型。
圖1 基于UML的領(lǐng)域分析過程
2.1 網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)需求分析
用例圖是從用戶的觀點(diǎn)來描述系統(tǒng)功能的一種高級(jí)視圖。針對(duì)不同的使用者,網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)的用例圖主要包括:瀏覽器端用例圖、客戶端測(cè)試執(zhí)行人員用例圖、系統(tǒng)管理人員用例圖、網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)核心用例圖。遠(yuǎn)程測(cè)試任務(wù)的執(zhí)行是網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)的核心功能,因此本文重點(diǎn)對(duì)網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)的核心用例圖進(jìn)行介紹,如圖2所示。
圖2 網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)核心用例圖
該核心用例圖中體現(xiàn)了面向信號(hào)的思想。遠(yuǎn)程對(duì)象廠用例的功能是:測(cè)試任務(wù)執(zhí)行過程中,測(cè)試執(zhí)行人員通過遠(yuǎn)程對(duì)象廠在指定IP地址的測(cè)試服務(wù)器上創(chuàng)建資源管理器對(duì)象進(jìn)程,并返回資源管理器對(duì)象的接口指針;資源管理器用例則用來創(chuàng)建測(cè)試過程中所需要的各種信號(hào)對(duì)象;信號(hào)功能用例、信號(hào)參數(shù)用例、信號(hào)調(diào)理用例、信號(hào)狀態(tài)用例及信號(hào)連接用例分別用來設(shè)置和描述信號(hào)功能、物理參數(shù)值、信號(hào)調(diào)理、信號(hào)狀態(tài)以及信號(hào)與被測(cè)對(duì)象的連接關(guān)系;測(cè)試引擎用例則負(fù)責(zé)根據(jù)信號(hào)所描述的測(cè)試需求信息和資源配置描述信息優(yōu)選真實(shí)資源,調(diào)用選中的儀器驅(qū)動(dòng)器控制儀器,通過測(cè)試通道進(jìn)行測(cè)試,并把測(cè)試結(jié)果進(jìn)行相應(yīng)的處理;資源配置描述用例用來描述測(cè)試資源能力、測(cè)試平臺(tái)通道連接關(guān)系、測(cè)試適配器信號(hào)變換和通道轉(zhuǎn)接關(guān)系以及UUT測(cè)試配置等相關(guān)信息。
2.2 網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)靜態(tài)分析
靜態(tài)模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),提供了系統(tǒng)中的結(jié)構(gòu)成員及其相互關(guān)系。系統(tǒng)靜態(tài)分析可用類圖來實(shí)現(xiàn),主要包括網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)類圖和信號(hào)類圖。
根據(jù)面向?qū)ο笤瓌t以及用例圖所界定的網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)的特征及功能,建立的網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)類圖如圖3所示,圖中給出了每個(gè)類的主要方法。部分類的功能如下:UserInterface類:用戶操作界面類主要向用戶提供交互式操作界面。
圖3 網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)類圖
Task Manage類:任務(wù)管理類主要負(fù)責(zé)系統(tǒng)中各種任務(wù)的管理,實(shí)現(xiàn)具體功能。
DeviceNetwork Manage類:設(shè)備入網(wǎng)管理類用來完成測(cè)試設(shè)備入網(wǎng)的注冊(cè)和管理。
DataOperation類:數(shù)據(jù)操作類用來完成對(duì)數(shù)據(jù)庫的操作。
SystemConfig Manage類:系統(tǒng)配置類管理的是測(cè)試資源配置信息、測(cè)試平臺(tái)通道連接關(guān)系、測(cè)試適配器信號(hào)變換和通道轉(zhuǎn)接關(guān)系以及UUT測(cè)試配置的信息描述內(nèi)容。
RemObjFactory類:遠(yuǎn)程對(duì)象廠類用于在指定IP地址的測(cè)試服務(wù)器上創(chuàng)建資源管理器對(duì)象進(jìn)程。
Engine類:測(cè)試引擎類根據(jù)所描述的測(cè)試需求信息和配置信息優(yōu)選真實(shí)資源,調(diào)用選中的儀器驅(qū)動(dòng)器類控制儀器,通過測(cè)試通道進(jìn)行測(cè)試。
2.3 網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)動(dòng)態(tài)分析
順序圖描述了對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系,展示對(duì)象之間傳遞消息的時(shí)間順序,反映對(duì)象之間的一次特定的交互過程。
本文仍以網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)的核心功能,用戶執(zhí)行遠(yuǎn)程測(cè)試任務(wù)為例,以順序圖的方式對(duì)測(cè)試任務(wù)執(zhí)行的動(dòng)態(tài)過程進(jìn)行分析。根據(jù)信號(hào)功能的不同,網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)所執(zhí)行的測(cè)試任務(wù)可分為信號(hào)激勵(lì)與信號(hào)測(cè)試兩大類。圖4為信號(hào)激勵(lì)的順序圖。整個(gè)信號(hào)激勵(lì)的過程可簡單描述為客戶端用戶在遠(yuǎn)程測(cè)試服務(wù)器上產(chǎn)生一個(gè)激勵(lì)信號(hào),并輸出到指定端口。圖中清晰地表達(dá)了網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)在執(zhí)行信號(hào)激勵(lì)任務(wù)過程中的主要控制流。
圖4 信號(hào)激勵(lì)的順序圖
領(lǐng)域設(shè)計(jì)階段的主要任務(wù)是根據(jù)領(lǐng)域分析的結(jié)果,抽取領(lǐng)域中的可復(fù)用構(gòu)件?;赨ML的構(gòu)件抽取過程可描述如下:
步驟1:通過用例圖映射系統(tǒng)的需求圖,得到系統(tǒng)的功能描述。
步驟2:通過分析類圖,來描述系統(tǒng)的靜態(tài)結(jié)構(gòu)和完成功能的實(shí)體。
步驟3:通過分析順序圖,描述類對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系,可以更加清晰地找出多余的或是遺漏的類;
步驟4:通過上述分析,抽象出系統(tǒng)的構(gòu)件模型。在類圖的基礎(chǔ)上,結(jié)合實(shí)際需求對(duì)分析得到的類進(jìn)行重組,對(duì)關(guān)系緊密的類組成構(gòu)件。
本文采用上述方法,完成了網(wǎng)絡(luò)化自動(dòng)測(cè)試領(lǐng)域內(nèi)可復(fù)用構(gòu)件的辨識(shí),并以此為基礎(chǔ)建立了基于構(gòu)件的網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)軟件結(jié)構(gòu)框圖,如圖5所示。
圖5 基于構(gòu)件的軟件結(jié)構(gòu)框圖
針對(duì)構(gòu)件的功能特點(diǎn),本文對(duì)辨識(shí)出的可復(fù)用構(gòu)件進(jìn)行了層次劃分。
1)用戶界面層:用戶界面層主要由用戶界面構(gòu)件組成。用戶界面構(gòu)件封裝了用戶操作界面類,通過接口實(shí)現(xiàn)系統(tǒng)與用戶的交互。
2)管理層:管理層由任務(wù)管理構(gòu)件組成。任務(wù)管理構(gòu)件封裝了任務(wù)管理相關(guān)的類。用戶通過任務(wù)管理構(gòu)件實(shí)現(xiàn)系統(tǒng)中各種任務(wù)的管理。
3)應(yīng)用層:應(yīng)用層由用戶管理構(gòu)件、網(wǎng)絡(luò)管理構(gòu)件等功能構(gòu)件組成。這些構(gòu)件通過上層程序的調(diào)用,以完成相應(yīng)的功能。
4)測(cè)試執(zhí)行層:測(cè)試執(zhí)行層由遠(yuǎn)程對(duì)象廠構(gòu)件、資源管理器構(gòu)件、測(cè)試引擎構(gòu)件等組成。這些構(gòu)件共同作用以完成遠(yuǎn)程測(cè)試任務(wù)。
5)儀器驅(qū)動(dòng)層:儀器驅(qū)動(dòng)層由各種儀器驅(qū)動(dòng)器構(gòu)件組成,儀器驅(qū)動(dòng)器構(gòu)件實(shí)現(xiàn)測(cè)試程序與硬件資源的通訊并能驅(qū)動(dòng)硬件資源執(zhí)行相應(yīng)的功能。
領(lǐng)域?qū)崿F(xiàn)階段的主要任務(wù)是對(duì)經(jīng)過領(lǐng)域分析和領(lǐng)域設(shè)計(jì)階段識(shí)別出的可復(fù)用構(gòu)件進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)。本文以網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)中的關(guān)鍵構(gòu)件資源管理器構(gòu)件為例,介紹其實(shí)現(xiàn)過程。
資源管理器 (ResourceManager)構(gòu)件主要完成測(cè)試任務(wù)執(zhí)行過程中各種信號(hào)構(gòu)件對(duì)象的創(chuàng)建。工廠方法(Factory Method)模式定義了一個(gè)創(chuàng)建對(duì)象的接口,該接口被稱為工廠方法。工廠方法模式的設(shè)計(jì)意圖是為了適應(yīng)被創(chuàng)建對(duì)象可能發(fā)生變化的情況。在面向信號(hào)的網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)軟件平臺(tái)上,考慮到信號(hào)構(gòu)件將來升級(jí)的需要,采用工廠方法設(shè)計(jì)資源管理器構(gòu)件的IResource Manager接口來完成各種信號(hào)構(gòu)件對(duì)象的創(chuàng)建。這樣最大的好處是:當(dāng)信號(hào)構(gòu)件升級(jí)或改變時(shí),只需要修改IResourceManager接口,測(cè)試程序不用修改。IResource Manager接口的IDL描述如下:
該接口只有Require一個(gè)方法,用來根據(jù)信號(hào)描述信息完成對(duì)應(yīng)信號(hào)構(gòu)件接口的創(chuàng)建,其關(guān)鍵實(shí)現(xiàn)代碼如下所示。
本文首先介紹了構(gòu)件和基于構(gòu)件的軟件開發(fā)方法,建立了基于構(gòu)件的網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)軟件開發(fā)模型,將整個(gè)軟件開發(fā)過程劃分為領(lǐng)域分析、領(lǐng)域設(shè)計(jì)和領(lǐng)域?qū)崿F(xiàn)3個(gè)階段。運(yùn)用UML建模語言從需求分析、靜態(tài)分析和動(dòng)態(tài)分析三個(gè)方面完成了對(duì)網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)的領(lǐng)域分析。以此為基礎(chǔ),在領(lǐng)域設(shè)計(jì)階段辨識(shí)和抽取了領(lǐng)域內(nèi)的可復(fù)用構(gòu)件,并建立了基于構(gòu)件的網(wǎng)絡(luò)化自動(dòng)測(cè)試系統(tǒng)軟件結(jié)構(gòu)框圖。在領(lǐng)域?qū)崿F(xiàn)階段對(duì)測(cè)試系統(tǒng)中關(guān)鍵的可復(fù)用構(gòu)件進(jìn)行了實(shí)現(xiàn)。整個(gè)軟件開發(fā)過程實(shí)現(xiàn)了軟件更高層次的復(fù)用,具體體現(xiàn)在概念級(jí)需求階段的可復(fù)用、邏輯級(jí)框架結(jié)構(gòu)的可復(fù)用和物理級(jí)業(yè)務(wù)構(gòu)件的可復(fù)用。從而保證了測(cè)試軟件的可移植性和儀器的可互換性。
[1]徐小良.自動(dòng)測(cè)試系統(tǒng)的面向?qū)ο罂蚣荛_發(fā)方法研究[D].杭州:浙江大學(xué),2003.
[2]馮 沖,江 賀,馮 靜.軟件體系結(jié)構(gòu)理論與實(shí)踐[M].北京:人民郵電出版社,2004,4.
[3]楊振勇.基于構(gòu)件的工控軟件設(shè)計(jì)與研究[D].上海:上海師范大學(xué),2004.
[4]別文群.UML統(tǒng)一的建模語言的研究與實(shí)踐[D].武漢:武漢大學(xué),2004.
Research on Open Networked Automatic Test Technology Based on Components
Liu Fujun1,Tang Gongmin1,Sun Xiangbing1,Tang Xiaoyi2,Liang Qingguo1(1.72465 Unit of PLA,Jinan 250022,China;2.Central China Normal University,Wuhan 43007,China)
Implementation methods of component-based software are put forward in the open Networked Automatic Test System (ATS),which lays the foundation for the system software reuse.The thought of Domain Engineering is introduced into the development process and divides the whole process into three phases.In the domain analysis phase,the Unified Modeling Language(UML)is used to perform requirement analysis,static analysis and dynamic analysis of the test system.In the domain design phase,identification and extraction of reusable components are accomplished on the basis of the achievements in domain analysis.In the domain realization phase,key reusable components in the test system have been realized.
component;networked;ATS;UML
1671-4598(2016)08-0012-04
10.16526/j.cnki.11-4762/tp.2016.08.004
:TP274
:A
2016-01-31;
:2016-02-16。
國防預(yù)研項(xiàng)目(51317030104)。
劉福軍(1964-),男,山東萊州人,博士,高級(jí)工程師,主要從事復(fù)雜武器裝備的維修與故障診斷、自動(dòng)測(cè)試技術(shù)等方向的研究。