文/車雪
構(gòu)件的軟件開發(fā)流行于20世紀90年代,一個軟件構(gòu)件是可執(zhí)行軟件的一個可分離的單元。構(gòu)件可以提高軟件開發(fā)中構(gòu)件復用成度,縮短軟件的開發(fā)周期,提高系統(tǒng)的穩(wěn)定性,軟件構(gòu)件是軟件復用的基本單元,為了實現(xiàn)軟件的復用,必須不斷地積累軟件部件,并將其組成軟件庫。了解構(gòu)件的軟件開發(fā)技術(shù)和方法可以從構(gòu)件的概念及應用優(yōu)勢、構(gòu)件的主要內(nèi)容和構(gòu)件的軟件開發(fā)過程來了解。
構(gòu)件是軟件的構(gòu)成元素,它幾乎是獨立并可被替換的一部分。其可以明確辯識,可以通過構(gòu)件接口訪問它所提供的服務。而且構(gòu)件和語境有明顯依靠關系,是可以組裝的軟件實體。從廣義上講構(gòu)件可以是數(shù)據(jù),也可以是被封裝的對象類、軟件構(gòu)架、文檔、測試用例等。軟件構(gòu)件是由第三方提供的可組裝軟件實體,軟件構(gòu)件都承載著一些有用的功能,并且遵循某種構(gòu)件模型。可復用構(gòu)件則是指具有可復用價值的構(gòu)件。
當前我國軟件企業(yè)方面面對著日益增加的競爭壓力,在國際市場上稍不注意就有可能會被淘汰,角逐愈激烈愈能促進軟件這個行業(yè)的發(fā)展。傳統(tǒng)軟件開發(fā)方式僅僅是通過軟件開發(fā)人員手工設計的模式,如果稍有變動就必須重新開發(fā)系統(tǒng)。這樣很難跟得上現(xiàn)在軟件行業(yè)的發(fā)展。然而現(xiàn)在的構(gòu)件軟件技術(shù)在碰到業(yè)務流程發(fā)生變化或系統(tǒng)升級等情況時,不需要全盤推翻重新開發(fā),只需要增加新的構(gòu)件或改動原來的構(gòu)件即可完成。這樣不僅節(jié)省時間和成本,還大大提升了軟件開發(fā)的效率。相比于傳統(tǒng)的軟件開發(fā)技術(shù),構(gòu)件的軟件開發(fā)的軟件產(chǎn)品更能吻合客戶的需求,上市時間和軟件質(zhì)量也是遙遙領先于傳統(tǒng)的軟件開發(fā)。
構(gòu)件的主要內(nèi)容可以從構(gòu)件的基本特點、構(gòu)件的要素和常用構(gòu)件的基本模式進行大致的了解。
(1)自描述:構(gòu)件必須能夠識別其屬性、存取方法和事件,通過這些信息可以使開發(fā)環(huán)境將第三方軟件構(gòu)件緊密地結(jié)合起來。
(2)可移植性:構(gòu)件應該能在不同硬件平臺運行和軟件環(huán)境中工作。
(3)通用性:構(gòu)件不是為某一個企業(yè)或客戶專門定制的,而是在某一領域中通用的。
(4)連結(jié)機制:構(gòu)件必須能產(chǎn)生事件或具有讓程序員從語意上實現(xiàn)相互連接的其它機制。
(5)是預先創(chuàng)建的:在軟件開發(fā)周期中,源代碼復用代價比較高,所以最好是預先創(chuàng)建的。構(gòu)件是第三方通過現(xiàn)成買來的,根據(jù)接口參數(shù)和約束條件進行調(diào)用的。
一般完工的構(gòu)件應具備以下要素:
(1)規(guī)格說明:建立在接口概念之上,作為服務提供方與客戶之間的契約。
(2)一個或多個實現(xiàn):應符合規(guī)格說明,各自實現(xiàn)。
(3)受約束的構(gòu)件標準:即符合某種構(gòu)件模型。
(4)包裝方法:按不同的方式分組,提供一套可以替換的服務。
(5)部署方法:即可以部署多個實例。
由于軟件構(gòu)件蘊含著及其大量的信息,且構(gòu)件數(shù)量也是十分龐大,對于其分類就顯得尤為重要了。常用的構(gòu)件分類模式有枚舉分類、屬性―值分類和刻面分類。
枚舉分類:將構(gòu)件按某些性質(zhì)分成若干大類,再將大類分成若干較小的類,經(jīng)過多次分解,形成構(gòu)件分類的層次結(jié)構(gòu)。這樣的分層結(jié)構(gòu)易于理解或檢索,但在建立層次結(jié)構(gòu)之前需進行領域分析。
屬性―值分類:為每一個構(gòu)件定義一組屬性,開發(fā)人員可以通過指定一組特定屬性對構(gòu)件庫檢索,這樣具有較好的靈活性,使用的屬性數(shù)量沒有限制;屬性沒有優(yōu)先級。
刻面分類:根據(jù)一組刻面對構(gòu)件進行分類。每個刻面從不同的側(cè)面對構(gòu)件庫中的構(gòu)件進行分類,并根據(jù)重要性設置刻面的優(yōu)先級。用戶通過指定一組刻面的術(shù)語值尋找匹配的構(gòu)件。這種方法同樣具有較好的靈活性,易于加入新的刻面值,易于擴展和修改。
傳統(tǒng)的軟件開發(fā)過程在重用元素及開發(fā)方法上和構(gòu)件的軟件開發(fā)都有很大的不同。自構(gòu)件的出現(xiàn)以來軟件的重用元素得到了根本的改變。且相比于傳統(tǒng)的軟件開發(fā)過程,構(gòu)件的軟件開發(fā)過程亦有很大不同。構(gòu)件的軟件開發(fā)過程可分為以下幾步:
按照需求從構(gòu)件庫查找所需的標準構(gòu)件,并對構(gòu)件的功能、可靠性和市場價值進行分析,篩選出一些較好的構(gòu)件。
部分構(gòu)件不能直接應用于軟件的開發(fā),需按照所需要求進行修改或擴展。
修改或擴展的構(gòu)件需在構(gòu)造應用工具上進行測試,保證構(gòu)件的功能及能夠正常應用,以免造成軟件開發(fā)過程中返工的現(xiàn)象。
將構(gòu)件裝配成模板。
先完成應用邏輯和數(shù)據(jù)定義編程的工作,然后對應用服務器及客戶的標準完成文件的配置和部署。
通過系統(tǒng)中某些構(gòu)件的升級或替換使系統(tǒng)中的功能不斷地進行改進完善即系統(tǒng)的演化。
相比于傳統(tǒng)的軟件開發(fā)技術(shù)所開發(fā)出的軟件,CBSD技術(shù)軟件的復用,可以有效的地提高軟件開發(fā)的效率和質(zhì)量,降低開發(fā)和維護的成本??萍荚诓粩嗟剡M步,相信在不久的將來,構(gòu)件的軟件開發(fā)技術(shù)會更加完善,改去現(xiàn)存的缺點,大大提高軟件開發(fā)的工作效率。在科技發(fā)展迅猛的現(xiàn)在,唯有順應潮流,不斷地學習并掌握新的技術(shù),才不會被這個時代所淘汰。同時相對于企業(yè)來說,不斷引進發(fā)達的技術(shù),培養(yǎng)工作人員的技能,才能大大提高產(chǎn)品的質(zhì)量和工作效率,在軟件開發(fā)市場獲取一席之地。