韓冰 鐘聲
摘要:軟件復(fù)用是在軟件開發(fā)中充分利用已有資源提高開發(fā)效率的解決方案。但在信息管理系統(tǒng)軟件開發(fā)過(guò)程中普遍存在著需求復(fù)雜,開發(fā)工作量大、開發(fā)時(shí)間長(zhǎng)、開發(fā)內(nèi)容重復(fù)等突出問(wèn)題,使得軟件開發(fā)的效率和質(zhì)量受到嚴(yán)重影響。構(gòu)件技術(shù)是一種復(fù)用和快速組裝的軟件技術(shù),能夠提高軟件開發(fā)效率,減少重復(fù)開發(fā)。在信息管理系統(tǒng)軟件開發(fā)中引入構(gòu)件技術(shù),有利于提高軟件的可擴(kuò)展性和易維護(hù)性。
關(guān)鍵詞:構(gòu)件;軟件復(fù)用;軟件構(gòu)件技術(shù);軟件開發(fā);信息管理系統(tǒng)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)34-8155-02
信息管理系統(tǒng)軟件的開發(fā),其面向的領(lǐng)域多樣,需求變化快,所耗費(fèi)的開發(fā)時(shí)間和工作量巨大,容易導(dǎo)致開發(fā)的效率和質(zhì)量低下。而軟件復(fù)用是在軟件開發(fā)中充分利用已有資源提高開發(fā)效率的解決方案?;谲浖?fù)用理論的軟件構(gòu)件技術(shù),是一種能夠充分利用原有資源并快速組裝軟件的軟件技術(shù),將構(gòu)件技術(shù)引入到信息管理系統(tǒng)軟件開發(fā)中來(lái),將有效的提高信息管理系統(tǒng)軟件的開發(fā)效率和質(zhì)量。
軟件構(gòu)件是指軟件系統(tǒng)中具有明確標(biāo)識(shí)、具備獨(dú)立的功能、可重復(fù)使用的構(gòu)成部分。它通過(guò)對(duì)軟件對(duì)象單元的封裝,并且可利用封裝好的構(gòu)件組裝成一個(gè)更大的軟件系統(tǒng)。將整個(gè)應(yīng)用系統(tǒng)看成是一個(gè)可由各種零件(構(gòu)件)拼裝而成的系統(tǒng),通過(guò)使用構(gòu)件來(lái)集成開發(fā)和更新系統(tǒng),通過(guò)定制和替換可復(fù)用的構(gòu)件為維護(hù)和更新系統(tǒng)提供支持,把軟件開發(fā)的重心轉(zhuǎn)向?qū)?gòu)件的開發(fā)、篩選和配置。這種新的方法稱為基于構(gòu)件的軟件工程(ComponentBasedSoftwareEngineering,CBSE)[1]。
基于構(gòu)件的軟件開發(fā)(Component-BasedSoftwareDevelopment,CBSD),它提供了一種通過(guò)復(fù)用已有的或預(yù)先定制包裝好的封裝對(duì)象(構(gòu)件)來(lái)組裝軟件應(yīng)用系統(tǒng)的方法。構(gòu)建一個(gè)軟件應(yīng)用系統(tǒng),會(huì)使用到大量原有構(gòu)件模塊,這些構(gòu)件可能是面向不同領(lǐng)域的,在不同開發(fā)環(huán)境,由不同人員在不同時(shí)間開發(fā)的,它們之間存在著一定差異性。在這種情況下,應(yīng)用系統(tǒng)的開發(fā)過(guò)程就變成排除構(gòu)件之間的差異性,探索構(gòu)件一致性的過(guò)程。CBSD將軟件開發(fā)中程序代碼編寫轉(zhuǎn)變?yōu)閷?duì)已有構(gòu)件的篩選和組裝,用更高的效率來(lái)完成應(yīng)用系統(tǒng)的構(gòu)造,減輕系統(tǒng)升級(jí)和維護(hù)負(fù)擔(dān),從而降低軟件開發(fā)的成本[1]。
1構(gòu)件技術(shù)在信息管理系統(tǒng)中的應(yīng)用
1.1構(gòu)件庫(kù)管理軟件
基于構(gòu)件的軟件開發(fā)其最明顯的特點(diǎn)在于它在軟件生命周期的各個(gè)階段中,工作的基礎(chǔ)不再是一無(wú)所有,軟件開發(fā)人員可以在已有的構(gòu)件資源中檢索和篩選軟件開發(fā)需要的構(gòu)件,因此,基于構(gòu)件的軟件開發(fā)需要包含有大量構(gòu)件的構(gòu)件庫(kù)做開發(fā)支持。為了能夠滿足多種信息管理系統(tǒng)開發(fā)的需要,構(gòu)件庫(kù)中應(yīng)含有大量各種類型的構(gòu)件,構(gòu)件庫(kù)中的構(gòu)件應(yīng)具備明確標(biāo)識(shí),能夠?qū)崿F(xiàn)構(gòu)件的分類、檢索、維護(hù)等。為此,需要專門的構(gòu)件庫(kù)管理軟件來(lái)完成這些工作。它應(yīng)具備以下幾種功能:
1)構(gòu)件存取功能—對(duì)構(gòu)件庫(kù)構(gòu)件的檢索、插入、修改和刪除。
2)構(gòu)件庫(kù)運(yùn)行管理功能—包括構(gòu)件的識(shí)別、提取、執(zhí)行和維護(hù)等。
3)構(gòu)件分類、組織和管理功能—可以識(shí)別構(gòu)件類型,并依據(jù)分類來(lái)管理各類構(gòu)件。
4)構(gòu)件庫(kù)的創(chuàng)建和維護(hù)—可以創(chuàng)建新的構(gòu)件庫(kù)、實(shí)現(xiàn)構(gòu)件庫(kù)的恢復(fù)和轉(zhuǎn)儲(chǔ)、構(gòu)件庫(kù)的重構(gòu)造與重組織以及性能檢測(cè)分析等功能。
5)支持構(gòu)件組合。
1.2構(gòu)件的層次結(jié)構(gòu)
構(gòu)件的體系結(jié)構(gòu)是分層體系結(jié)構(gòu),共分三層:系統(tǒng)構(gòu)件層、通用構(gòu)件層和專用構(gòu)件層[2]。系統(tǒng)構(gòu)件指在整個(gè)軟件體系結(jié)構(gòu)內(nèi)都使用的構(gòu)件。一般來(lái)說(shuō),它們都是開發(fā)工具提供的。通用構(gòu)件又稱為支撐構(gòu)件,例如通用的數(shù)據(jù)查詢模塊、數(shù)據(jù)瀏覽模塊等。通用構(gòu)件一般是利用系統(tǒng)構(gòu)件生成的。目前國(guó)內(nèi)外已有大量產(chǎn)品,但為了適應(yīng)具體的應(yīng)用領(lǐng)域,常常需要二次開發(fā)。至于領(lǐng)域?qū)S脴?gòu)件,國(guó)內(nèi)外均在發(fā)展之中,而且不同的應(yīng)用領(lǐng)域需求也不一樣,一般需要專門開發(fā)[2]。
1.3構(gòu)件的開發(fā)
CBSD整個(gè)過(guò)程從需求開始,首先建立系統(tǒng)的需求規(guī)約。在完成體系結(jié)構(gòu)設(shè)計(jì)后,確定應(yīng)用系統(tǒng)中可通過(guò)構(gòu)件組裝來(lái)構(gòu)建的部分,而對(duì)于系統(tǒng)中無(wú)法通過(guò)構(gòu)件組裝來(lái)構(gòu)建的部分,就需要開發(fā)人員采用其他方式開發(fā)新構(gòu)件。對(duì)于那些可以用以構(gòu)建應(yīng)用系統(tǒng)的構(gòu)件,開發(fā)人員一般需要進(jìn)行如下活動(dòng):
構(gòu)件鑒定(qualification):每個(gè)構(gòu)件都需通過(guò)其約束條件和構(gòu)件接口來(lái)判斷構(gòu)件是否可用以構(gòu)建新系統(tǒng)。構(gòu)件鑒定分為發(fā)現(xiàn)和評(píng)估兩個(gè)階段。發(fā)現(xiàn)階段應(yīng)對(duì)構(gòu)件的各種屬性做出明確鑒別,如構(gòu)件的有用性(構(gòu)件是否提供了滿足需求的服務(wù))及其可移植性(構(gòu)件能夠在何種環(huán)境下工作)、構(gòu)件的質(zhì)量屬性(構(gòu)件能夠正確運(yùn)行)等。構(gòu)件由于其結(jié)構(gòu)復(fù)雜,屬性難以獲取,使得構(gòu)件的發(fā)現(xiàn)難度較大。評(píng)估階段則依據(jù)應(yīng)用系統(tǒng)的需求和構(gòu)件屬性判斷構(gòu)件是否符合新系統(tǒng)需求并可以在新系統(tǒng)中復(fù)用。
構(gòu)件適配(adaptation):構(gòu)件的集成是基于系統(tǒng)軟件體系結(jié)構(gòu)的設(shè)計(jì),因此對(duì)于構(gòu)件運(yùn)行上下文及構(gòu)件接口的一致性做出了嚴(yán)格的規(guī)定,系統(tǒng)對(duì)于構(gòu)件的設(shè)計(jì)規(guī)則、連接關(guān)系和通信模式必須做出明確定義。如果采用不符合要求的構(gòu)件來(lái)組裝新系統(tǒng),該構(gòu)件有可能在新系統(tǒng)中無(wú)法正常工作,甚至導(dǎo)致整個(gè)系統(tǒng)的運(yùn)行出現(xiàn)問(wèn)題,這種情形稱為失配(mismatch)。對(duì)構(gòu)件屬性及其接口進(jìn)行調(diào)整,使之能夠和體系結(jié)構(gòu)對(duì)構(gòu)件一致性要求相匹配的行為就是構(gòu)件適配。如果通過(guò)對(duì)構(gòu)件的修改和重新配置,仍然無(wú)法適配,那就只能重新尋找或定制其它適合的構(gòu)件。
構(gòu)件組裝(composition):構(gòu)件必須通過(guò)良好的軟件體系結(jié)構(gòu)規(guī)則才能組裝成目標(biāo)系統(tǒng)。體系結(jié)構(gòu)的設(shè)計(jì)決定了構(gòu)件之間連接和通信的方式,也決定了構(gòu)件的組裝機(jī)制,是構(gòu)件能否成功組裝的關(guān)鍵因素之一。
構(gòu)件更新(update):隨著軟件技術(shù)的不斷發(fā)展和系統(tǒng)需求的不斷變化,對(duì)構(gòu)件的要求也在不斷變化,直接體現(xiàn)為對(duì)構(gòu)件的替換或增加,其關(guān)鍵在于如何保證新構(gòu)件不會(huì)影響到其他構(gòu)件和整體系統(tǒng)的運(yùn)行,只要通過(guò)對(duì)新構(gòu)件的充分測(cè)試來(lái)保證其正確運(yùn)行。
1.4信息管理系統(tǒng)的生成
基于構(gòu)件的開發(fā)方法就是按照領(lǐng)域構(gòu)架確定本系統(tǒng)哪些部分可采用構(gòu)件組裝,由于信息慣例系統(tǒng)有其特殊需求,因此軟件構(gòu)架和構(gòu)件需依據(jù)其特殊需求進(jìn)行特化處理,并依據(jù)信息管理系統(tǒng)軟件構(gòu)架的要求開發(fā)專用構(gòu)件,然后在軟件構(gòu)架的基礎(chǔ)上,將領(lǐng)域構(gòu)件和系統(tǒng)專用構(gòu)件組裝成一個(gè)完整的信息管理系統(tǒng)[3]。具體步驟如下:
1)對(duì)信息管理系統(tǒng)進(jìn)行需求分析,確定系統(tǒng)的數(shù)據(jù)流程和業(yè)務(wù)流程,獲取系統(tǒng)的功能需求、性能需求、運(yùn)行需求等。
2)根據(jù)應(yīng)用需求,抽象出功能對(duì)象,明確劃分功能對(duì)象與外界的接口,以此為基礎(chǔ),對(duì)數(shù)據(jù)流和業(yè)務(wù)流進(jìn)行功能分割。分割的原則:業(yè)務(wù)流之間的聯(lián)系盡量少,降低構(gòu)件間的鏈接復(fù)雜性。
3)將以上結(jié)果映射為構(gòu)件,準(zhǔn)確區(qū)分通用性構(gòu)件和專用性構(gòu)件。根據(jù)構(gòu)件各自的特性,分別采用不同的生成與獲取方式。
4)系統(tǒng)動(dòng)態(tài)集成。根據(jù)系統(tǒng)需求進(jìn)行構(gòu)件的組裝。
5)系統(tǒng)測(cè)試。根據(jù)需求分析中所獲取的功能需求,性能需求等設(shè)計(jì)測(cè)試用例,對(duì)系統(tǒng)進(jìn)行全面測(cè)試,發(fā)現(xiàn)問(wèn)題并及時(shí)解決問(wèn)題。
6)提交用戶,系統(tǒng)運(yùn)行。
2結(jié)束語(yǔ)
構(gòu)件技術(shù)的出現(xiàn),使得各種技術(shù)形成的各種類型的軟構(gòu)件可以最大程度地得到復(fù)用,極大地滿足了多個(gè)應(yīng)用領(lǐng)域的要求。通過(guò)對(duì)多個(gè)領(lǐng)域的信息系統(tǒng)分析發(fā)現(xiàn),在信息管理系統(tǒng)中,不同領(lǐng)域內(nèi)對(duì)信息系統(tǒng)的需求存在有共通性,利用構(gòu)件的復(fù)用技術(shù),可以較大程度的提高信息管理系統(tǒng)的開發(fā)效率。但在利用構(gòu)件技術(shù)實(shí)現(xiàn)信息系統(tǒng)的組裝上仍存在一系列的問(wèn)題。如何有效提取和鑒別可復(fù)用的構(gòu)件;如何對(duì)已有構(gòu)件資源實(shí)施有效地組織和管理并能充分利用各個(gè)應(yīng)用領(lǐng)域的構(gòu)件資源;如何進(jìn)一步優(yōu)化構(gòu)件的組裝等等,我們正是缺少了一個(gè)以面向構(gòu)件開發(fā)為核心的系統(tǒng)化的開發(fā)環(huán)境。雖然這條道路還很漫長(zhǎng),但我們有理由相信,構(gòu)件化軟件必然是未來(lái)軟件的發(fā)展方向。
參考文獻(xiàn):
[1]楊璇.基于構(gòu)件的企業(yè)信息系統(tǒng)架構(gòu)模式的研究與應(yīng)用[J].新疆大學(xué)學(xué)報(bào):自然科學(xué)版,2009(1):111-114.
[2]王繼成.軟構(gòu)件技術(shù)及其在MIS中應(yīng)用的研究[J].計(jì)算機(jī)應(yīng)用研究,2003(6):7-9.
[3]張丹,趙記濤,張世虎.基于構(gòu)件技術(shù)的企業(yè)MIS開發(fā)及應(yīng)用[J].現(xiàn)代電子技術(shù),2007(24):96-97.
[4]賈文峰.基于軟件構(gòu)件的MIS開發(fā)研究[J].洛陽(yáng)大學(xué)學(xué)報(bào),2007(2):87-90.
[5]任午令,唐任仲,郭尚鴻,等.基于構(gòu)件的企業(yè)應(yīng)用集成技術(shù)[J].浙江大學(xué)學(xué)報(bào):工學(xué)版,2007,41(8):1283-1287.
[6]蔣蕊,王德占,盧志舟.基于構(gòu)件的企業(yè)快速可再構(gòu)信息系統(tǒng)開發(fā)集成模型[J].物流技術(shù),2008,27(1):102-103.
[7]何毅俊,徐楠,陳松喬.基于XML的構(gòu)件組裝平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2007,15(7):933-936.
[8]李岱峰,覃正,王永鑫.基于業(yè)務(wù)構(gòu)件的企業(yè)信息整合應(yīng)用研究[J].鄭州大學(xué)學(xué)報(bào):哲學(xué)社會(huì)科學(xué)版,2006,39(5):97-100.