測(cè)試測(cè)量的元件基技術(shù)
2004年10月A版
本文引用地址:http://butianyuan.cn/article/4612.htm用通用硬件部件設(shè)計(jì)產(chǎn)品具有省時(shí)、省錢及改善質(zhì)量和可靠性的優(yōu)點(diǎn)。這種實(shí)用的方法使得制造商能大量生產(chǎn)產(chǎn)品。
在應(yīng)用部件方面軟件不像硬件那樣成熟,但元件基開發(fā)(component -Based Development-CBD)使我們更接近軟件通用性。
CBD的必要性
當(dāng)今市場(chǎng)環(huán)境的現(xiàn)實(shí)是不斷變化的測(cè)試要求、復(fù)雜的測(cè)試系統(tǒng),更快的上市和預(yù)算限制。這些要求需要有一種更有效和可預(yù)測(cè)的軟件開發(fā)方法。
技術(shù)的進(jìn)步已極大地改善了測(cè)試軟件開發(fā)進(jìn)程,但也增加了對(duì)軟件能力的期望?,F(xiàn)在,要求軟件能處理多種新儀器、平臺(tái)和環(huán)境以及適用新的通信標(biāo)準(zhǔn)。隨著通信的進(jìn)步,消費(fèi)者希望在任何地方和任何時(shí)間都易于得到數(shù)據(jù)。
公司需要不斷地適應(yīng)這種變化的環(huán)境。軟件開發(fā)必須以前所未有的速度提供高品質(zhì)應(yīng)用。基于這些原因,任何軟件方案都必須是可再用的。一個(gè)成功方案的關(guān)鍵是看它做過什么,所做的能證明什么。
定義元件
根據(jù)預(yù)定義性能指標(biāo)構(gòu)建部件的概念已經(jīng)有一個(gè)多世紀(jì)了?,F(xiàn)在,制造商用通用部件組裝產(chǎn)品可以大量生產(chǎn)很多裝置。
CBD應(yīng)用相同的原理在軟件開發(fā)中。根據(jù)預(yù)定義的性能指標(biāo),所設(shè)計(jì)的部件可以組裝成各種應(yīng)用裝置。這些部件稱之為元件(component)。
軟件元件是和生產(chǎn)、獲得、使用無關(guān)的二進(jìn)制單元,它們相互作用構(gòu)成一個(gè)功能系統(tǒng)。根據(jù)基本概念,軟件元件是軟件部件,可以一起用做建造一個(gè)應(yīng)用。元件基軟件開發(fā)的目標(biāo)是標(biāo)準(zhǔn)化軟件元件之間的界面,這樣軟件元件可以一起組裝。
元件可認(rèn)為是黑盒子。元件被密封,因?yàn)榛緦?shí)現(xiàn)的詳情對(duì)用戶是保密的,而相互作用是通過恰當(dāng)定義的接口實(shí)現(xiàn)的。
一個(gè)密封元件分離是什么,元件如何做接口定義元件和如何用元件。這種方法,使得用元件的任何使用者只關(guān)心如何相互配合。
元件必須具有可預(yù)知性能,而其現(xiàn)實(shí)與應(yīng)用無關(guān)。圖1示出密封概念。用戶與一個(gè)元件通信是通過與代表客戶端線路的適當(dāng)定義接口,而客戶不需要知道元件實(shí)現(xiàn)的詳情。
一個(gè)元件不約束任何特定的應(yīng)用。所生成的很多元件能滿足一個(gè)特定應(yīng)用的要求。但是,一旦生成元件,這些元件可用于不同的應(yīng)用。因?yàn)樵哂袊?yán)格定義的接口,所以只要元件接口滿足客戶需要,則同一元件可用于開發(fā)或增強(qiáng)其他應(yīng)用。而且,元件只要支持相同的接口,它們可以用其他元件替換來提供新的或增強(qiáng)的功能。
圖1示出元件是如何替換的。一個(gè)客戶通過一個(gè)適當(dāng)定義的接口與元件A通信。開發(fā)一個(gè)支持定義接口和新接口的新元件B。可以用元件B替換元件A,用戶仍然可以與它通信而不必重新編譯任何碼。而且,任何新客戶用任一種接口可以與元件B通信。
通過密封可獨(dú)立實(shí)現(xiàn)一個(gè)元件,與其他元件無關(guān)。每個(gè)元件是自己本身所包含的開發(fā)和測(cè)試單元。
因?yàn)?,在開始開發(fā)前可以定義元件接口,所以,人們可以獨(dú)立或并行確定任務(wù)和開發(fā)軟件元件。這確實(shí)影響產(chǎn)品上市時(shí)間并在軟件開發(fā)過程中提供更多控制和管理性。
圖1 密封概念
圖2 元件演變過程
測(cè)試應(yīng)用中采用元件的好處
采用元件的好處是可維護(hù)性、重新可用性和可測(cè)量性。元件的使用也捉進(jìn)分布計(jì)算。
可維護(hù)性
在具有很大互相依賴性的單一應(yīng)用中,改變應(yīng)用的一個(gè)部分可影響其他部分。用分立元件設(shè)計(jì)一個(gè)應(yīng)用,其系統(tǒng)不同部分之間的依賴性是最小的。隔離起作用元件的應(yīng)用變化而不需要修改整個(gè)應(yīng)用。
改善軟件開發(fā)速度是有利的,但是,一旦完成應(yīng)用,通常需要改變和維護(hù)它。例如,隨著要求的改變,現(xiàn)有方案將需要進(jìn)行改進(jìn)。
在軟件應(yīng)用的使用期限,很多時(shí)間和精力是花費(fèi)在維護(hù)上。處理變化的關(guān)鍵要求是保持它局部化,使它的范圍和影響最小。
在元件基系統(tǒng)中,理論上只一次實(shí)現(xiàn)功能。容易維護(hù),使系統(tǒng)成本降低、壽命較長(zhǎng)。
重新可用性
具有密封數(shù)據(jù)的分立元件使系統(tǒng)依賴性最小,并減少對(duì)輸入和希望輸出集合的相互影響。這種黑盒子性能使得碼重新可用性最大。
為了使用元件,開發(fā)人員應(yīng)簡(jiǎn)單地調(diào)用其接口。這不需要知道它是如何實(shí)現(xiàn)的。在開發(fā)系統(tǒng)時(shí),必須產(chǎn)生很多功能。若另一系統(tǒng)需要類似功能,則必須再次開發(fā)它。
測(cè)試工程師用CBD生成一個(gè)元件,這是一個(gè)完全的實(shí)現(xiàn)方案。
然后,元件再用于不同的系統(tǒng),這有助于可維護(hù)性。
重新可用性增加了元件的耐用性。隨著更多的應(yīng)用采用元件方案,其缺陷是固定的,而且可增加功能。元件已被廣泛采用,而客戶知道從元件得到什么。元件成為一個(gè)更穩(wěn)定的軟件單元。
可擴(kuò)展性
測(cè)試開發(fā)人員往往希望在不修改整個(gè)應(yīng)用的情況下進(jìn)一步增加更多的性能。消除一個(gè)應(yīng)用中不同元件之間的相互影響是比較容易的,可根據(jù)動(dòng)態(tài)需求擴(kuò)展不同的部分。
所以,元件基系統(tǒng)比用傳統(tǒng)設(shè)計(jì)技術(shù)構(gòu)建的系統(tǒng)具有更大的適用性和擴(kuò)展性。另外,通常不改變?cè)?,但可替換。這使得能迅速地從一個(gè)儀器到另一個(gè)儀器或從一個(gè)操作系統(tǒng)到另一個(gè)操作系統(tǒng)轉(zhuǎn)移。
分布計(jì)算
分布應(yīng)用具有運(yùn)行在不同計(jì)算機(jī)上的軟件。CBD為測(cè)試開發(fā)人員提供分配軟件模塊和在不同PC上運(yùn)行它們的能力。
這實(shí)現(xiàn)起來仍然是一個(gè)復(fù)雜的任務(wù),但元件有助于實(shí)現(xiàn)。CBD使設(shè)計(jì)分布系統(tǒng)成為可能。DCOM,CORBA和.NET技術(shù)為元件間的通信提供平臺(tái),而使分布計(jì)算實(shí)現(xiàn)變?nèi)菀住?br/>元件使用實(shí)例
對(duì)于在不同功能的多測(cè)試系統(tǒng)上重復(fù)的任務(wù),生成元件總是有用的。這些可重復(fù)的任務(wù)是進(jìn)入系統(tǒng),增加、編輯和刪除客戶,存儲(chǔ)和檢索配置信息,存儲(chǔ)和檢索測(cè)試數(shù)據(jù),檢驗(yàn)和打印測(cè)試合格證與UUT通信等,為這些任務(wù)開發(fā)的元件可用做為構(gòu)建單元,在很多測(cè)試系統(tǒng)中可容易組裝和再用這些單元。
例如,需要為Product A123開發(fā)一個(gè)功能測(cè)試系統(tǒng),構(gòu)建一個(gè)能處理與UUT通信的元件是有意義的。此通信元件可提供初始化和中止UUT的功能,用所選擇的信息配置UUT、獲得軟件版本以及從文件執(zhí)行過程程序。
用COM結(jié)構(gòu)實(shí)現(xiàn)的碼為:
Dim objUUT As New MYCommComponent.Product A123
obj UUT.initialize
obj UUT.Configure(TEST-
CONFIGURAT10N-A)
If objUUT.Getsoftware
Version()=“1.0.23”Then
objUUT.Execnte ScriptFromFile(PATH-TO-SCRIPT-FILE)
.......
此元件為MyCommComponent,它陳述接口ProductA123
首先,生成新目標(biāo)objUUT。然后用此目標(biāo)調(diào)用初始化、配置、獲得元件版本和執(zhí)行過程程序。
若修改 Product A123,則只需要新版本替換現(xiàn)在的通信元件,而測(cè)試碼不需要重新編譯或做任何的改變。這種使碼改變最小的能力是更快開發(fā)測(cè)試系統(tǒng)所需的。
元件技術(shù)
元件技術(shù)已經(jīng)發(fā)展了十多年。大多數(shù)元件基系統(tǒng)具有一個(gè)基礎(chǔ)軟件結(jié)構(gòu)。最通用的是CORBA(Common Object Request Broker Architecture)和DCOM (Distributed Component Object Model)。
借助所了解的商用元件技術(shù),測(cè)試技術(shù)人員可在開發(fā)應(yīng)用中選用合適的一種。圖2給出這些技術(shù)隨時(shí)間發(fā)展的情況,特別是近10年的發(fā)展。
COM,DCOM和COM+
COM(Component Object Model)從前稱之為OLE,是1993年推出的,它是Microsoft的元件軟件結(jié)構(gòu)。COM被認(rèn)為是最廣泛采用的元件軟件模塊。
現(xiàn)在很多工具和編程環(huán)境適用于建造COM目標(biāo)。為了支持分布計(jì)算,Microsoft于1996年推出DCOM(Distributed COM),它擴(kuò)展COM模塊,增加一個(gè)協(xié)議,使軟件元件能在網(wǎng)絡(luò)上直接通信。
Microsoft于1998年推出COM+(COM擴(kuò)展型)和MTS (Microsoft Transaction Server),這增強(qiáng)了采用COM、MTS和其他COM基技術(shù)編寫應(yīng)用程序。COM+處理很多資源管理任務(wù),這些任務(wù)(如情節(jié)分配和保密)從前開發(fā)人員必須編程。
ActiveX
ActiveX控制是基于COM的可再用的軟件元件和服務(wù)。這些控制可增加特定的功能到測(cè)試應(yīng)用。ActiveX已變得很知名,廣泛用做開發(fā)可編程軟件元件的結(jié)構(gòu),在很多應(yīng)用和開發(fā)工具中得到應(yīng)用。
CORBA
CORBA是OMG(Object Management Group)設(shè)計(jì)的固件,用于分布在網(wǎng)絡(luò)中應(yīng)用間的通信。CORBA被認(rèn)為是非??煽康?,特別是具有大通信量和異常瞬間斷率情況下。CORBA是獨(dú)立平臺(tái),它的幾種實(shí)現(xiàn)適用于支持不同的平臺(tái)。
.NET
Microsoft的.NET是建造、開發(fā)和運(yùn)行分布應(yīng)用和系統(tǒng)的一種平臺(tái)。它利用XML(Extended Markup Language)和其他技術(shù)標(biāo)準(zhǔn)。
.NET平臺(tái)使得通過利用XML Web 服務(wù)能軟件集成,XML Web服務(wù)是相互連接的小分立建造模塊應(yīng)用。.NET 工具恰好不適用于建造Web應(yīng)用。可以用任何.NET語言生成標(biāo)準(zhǔn)Windows應(yīng)用。
測(cè)試測(cè)量中的元件技術(shù)
當(dāng)今,幾乎所有流行的軟件開發(fā)工具都支持ActiveX,COM和.NET。這使得人們有能力從開發(fā)環(huán)境(如LabVIEW,Agilent VEE,Labwindows/CVI,Visual Basic.NET,Visual C#,Visual C++)使用元件。
通過 ActiveX自動(dòng)操作,這些環(huán)境提供控制其他應(yīng)用(如Microsoft Word,Excel和Access)的方法。用這種方法,可編程測(cè)試系統(tǒng)發(fā)送數(shù)據(jù)到應(yīng)用來讀數(shù)據(jù)和生成報(bào)告。
測(cè)試軟件開發(fā)工具
Microsoft 的Visual Studio .NET支持所有.NET 技術(shù)和DCOM/COM,允許開發(fā)人員在集成環(huán)境利用這些技術(shù)和其他技術(shù)建造和使用元件。此工具與Microsoft的Visual Studio .NET集成為測(cè)試測(cè)量系統(tǒng)開發(fā)提供一種開發(fā)環(huán)境。
NI的LabVIEW包含對(duì)COM的支持,因?yàn)楝F(xiàn)在Version4.1. LabVIEW7 Express為COM模塊、ActiveX控制和.NET元件提供支持。Lab Windows/CVI和TestStand也支持COM.Measurement Studio,為在ActiveX控制容器中構(gòu)建測(cè)試測(cè)量軟件提供ActiveX控制集。
Agileut公司的VEE支持ActiveX自動(dòng)操作和控制計(jì)算機(jī)運(yùn)行Windows。ActiveX自動(dòng)操作支持使人們用VEE做為自動(dòng)操作控制器來執(zhí)行其他Windows應(yīng)用。
測(cè)試數(shù)據(jù)管理軟件
通常,測(cè)試數(shù)據(jù)管理是一件麻煩的任務(wù),要連接不同的數(shù)據(jù)源以及組合成正確的數(shù)據(jù)。
元件技術(shù)大大地改善這些不足之處。例如,所有一般商用RDBMS (RelationalDatabase Management Systems),如Oracle和SQL Server都支持ADO(ActiveX Data Object)和ADO .NET。ADO是基于COM的元件模式,它提供到多數(shù)據(jù)源的存取。ADO對(duì)任何支持COM的環(huán)境是可存取的。
另外,其他工具增加更高抽象級(jí),使測(cè)試數(shù)據(jù)管理更容易。這些工具是從測(cè)試和管理的觀點(diǎn),而不是從RDBMS觀點(diǎn)為模塊數(shù)據(jù)提供更本能的接口和技術(shù)。VI Technology的Arendar產(chǎn)品就是這種工具的實(shí)例。
自動(dòng)數(shù)據(jù)存取軟件
OPC (OLE for Process Control)規(guī)范定義了基于Microsoft COM的標(biāo)準(zhǔn)接口組。傳統(tǒng)上,存取任何現(xiàn)場(chǎng)裝置或其數(shù)據(jù),要求開發(fā)人員連線用戶接口。OPC指定一個(gè)通用接口而消除了這種要求。
另外,OPC Foundation發(fā)布了基于XML和Microsoft .NET技術(shù)基礎(chǔ)上的OPCXML規(guī)范。OPCXML基于現(xiàn)有OPC數(shù)據(jù)存取規(guī)范。
儀器驅(qū)動(dòng)器軟件
IVI(Interchangeable Virtual Instrumnet)規(guī)范為互換儀器的儀器驅(qū)動(dòng)器和增強(qiáng)結(jié)構(gòu)提供一種標(biāo)準(zhǔn)。IVI Fundation已為幾種儀器(DMM,DC電源,示波器,任意波形/函數(shù)發(fā)生器)規(guī)定了規(guī)范。
IVI-COM是基于與COM相同的IVI驅(qū)動(dòng)器結(jié)構(gòu)。用IVI-COM,基于此規(guī)范的儀器驅(qū)動(dòng)器能與工業(yè)標(biāo)準(zhǔn)軟件開發(fā)環(huán)境(如Visual Studio .NET,Visual C++,Visual Basic和其他支持COM的測(cè)試測(cè)量軟件)工作。
結(jié)語
元件技術(shù)從OLE到CORBA以及最近的.NET前后發(fā)展至少10年了。這些技術(shù)已被證明是可靠和有效的。它們正在用于不同行業(yè)的很多應(yīng)用中。
與其他行業(yè)相比,測(cè)試工程采納這些技術(shù)稍微慢了一步,但正在走向正確的方向。大多數(shù)一般商用儀器用這些技術(shù)提供驅(qū)動(dòng)器和接口,這極大地簡(jiǎn)化了工程師與它們的接口方法。
做為測(cè)試系統(tǒng)的開發(fā)人員,具有一個(gè)良好的機(jī)會(huì)使其開發(fā)過程更有效和具有可預(yù)知性。在過度到CBD時(shí),第一步是了解技術(shù)和形成包含CBD于開發(fā)過程的計(jì)劃。(益林)
評(píng)論