2004年10月A版
用通用硬件部件設(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)鍵是看它做過(guò)什么,所做的能證明什么。
定義元件
根據(jù)預(yù)定義性能指標(biāo)構(gòu)建部件的概念已經(jīng)有一個(gè)多世紀(jì)了。現(xiàn)在,制造商用通用部件組裝產(chǎn)品可以大量生產(chǎn)很多裝置。
CBD應(yīng)用相同的原理在軟件開發(fā)中。根據(jù)預(yù)定義的性能指標(biāo),所設(shè)計(jì)的部件可以組裝成各種應(yīng)用裝置。這些部件稱之為元件(component)。
軟件元件是和生產(chǎn)、獲得、使用無(wú)關(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ì)用戶是保密的,而相互作用是通過(guò)恰當(dāng)定義的接口實(shí)現(xiàn)的。
一個(gè)密封元件分離是什么,元件如何做接口定義元件和如何用元件。這種方法,使得用元件的任何使用者只關(guān)心如何相互配合。
元件必須具有可預(yù)知性能,而其現(xiàn)實(shí)與應(yīng)用無(wú)關(guān)。圖1示出密封概念。用戶與一個(gè)元件通信是通過(guò)與代表客戶端線路的適當(dāng)定義接口,而客戶不需要知道元件實(shí)現(xiàn)的詳情。
一個(gè)元件不約束任何特定的應(yīng)用。所生成的很多元件能滿足一個(gè)特定應(yīng)用的要求。但是,一旦生成元件,這些元件可用于不同的應(yīng)用。因?yàn)樵哂袊?yán)格定義的接口,所以只要元件接口滿足客戶需要,則同一元件可用于開發(fā)或增強(qiáng)其他應(yīng)用。而且,元件只要支持相同的接口,它們可以用其他元件替換來(lái)提供新的或增強(qiáng)的功能。
圖1示出元件是如何替換的。一個(gè)客戶通過(guò)一個(gè)適當(dāng)定義的接口與元件A通信。開發(fā)一個(gè)支持定義接口和新接口的新元件B�?梢杂迷﨎替換元件A,用戶仍然可以與它通信而不必重新編譯任何碼。而且,任何新客戶用任一種接口可以與元件B通信。
通過(guò)密封可獨(dú)立實(shí)現(xiàn)一個(gè)元件,與其他元件無(wú)關(guān)。每個(gè)元件是自己本身所包含的開發(fā)和測(cè)試單元。
因?yàn)?在開始開發(fā)前可以定義元件接口,所以,人們可以獨(dú)立或并行確定任務(wù)和開發(fā)軟件元件。這確實(shí)影響產(chǎn)品上市時(shí)間并在軟件開發(fā)過(guò)程中提供更多控制和管理性。
圖1 密封概念
圖2 元件演變過(guò)程