基于構(gòu)件的軟件復(fù)用技術(shù)研究與應(yīng)用實(shí)踐_第1頁(yè)
基于構(gòu)件的軟件復(fù)用技術(shù)研究與應(yīng)用實(shí)踐_第2頁(yè)
基于構(gòu)件的軟件復(fù)用技術(shù)研究與應(yīng)用實(shí)踐_第3頁(yè)
基于構(gòu)件的軟件復(fù)用技術(shù)研究與應(yīng)用實(shí)踐_第4頁(yè)
基于構(gòu)件的軟件復(fù)用技術(shù)研究與應(yīng)用實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于構(gòu)件的軟件復(fù)用技術(shù)研究與應(yīng)用實(shí)踐基于構(gòu)件的軟件復(fù)用技術(shù)研究谷今杰 莫繼紅 (湖南大學(xué)軟件學(xué)院,長(zhǎng)沙410082)通常情況下應(yīng)用軟件系統(tǒng)的開發(fā)過(guò)程包含以下幾個(gè)階段:需求分析、設(shè)計(jì)、編碼、測(cè)試、維護(hù)等。當(dāng)每個(gè)應(yīng)用系統(tǒng)的開發(fā)都是從頭開始時(shí),在系統(tǒng)開發(fā)過(guò)程中就必然存在大量的重復(fù)勞動(dòng),如:用戶需求獲取的重復(fù)、需求分析、編碼、測(cè)試的重復(fù)和文檔等。探討應(yīng)用系統(tǒng)的本質(zhì),發(fā)現(xiàn)其中通常包含:通用基本構(gòu)件:是特定于計(jì)算機(jī)系統(tǒng)的構(gòu)成成分,如基本的數(shù)據(jù)結(jié)構(gòu)、用戶界面元素等,它們可以存在于各種應(yīng)用系統(tǒng)中;領(lǐng)域共性構(gòu)件:是應(yīng)用系統(tǒng)所屬領(lǐng)域的共性構(gòu)成成分,它們存在于該領(lǐng)域的各個(gè)應(yīng)用系統(tǒng)中;應(yīng)用專用構(gòu)件:是每個(gè)應(yīng)用系統(tǒng)的特

2、有構(gòu)成成分。應(yīng)用系統(tǒng)開發(fā)中重復(fù)勞動(dòng)主要在于前兩類構(gòu)成成分的重復(fù)開發(fā)。軟件復(fù)用是在軟件開發(fā)中避免重復(fù)勞動(dòng)的解決方案。其出發(fā)點(diǎn)是應(yīng)用系統(tǒng)的開發(fā)不再采用一切“從零開始”的模式,而是以已有的工作為基礎(chǔ),充分利用過(guò)去應(yīng)用系統(tǒng)開發(fā)中積累的知識(shí)和經(jīng)驗(yàn),如:需求分析結(jié)果、設(shè)計(jì)方案、源代碼、測(cè)試計(jì)劃及測(cè)試案例等從而將開發(fā)的重點(diǎn)集中于應(yīng)用的特有構(gòu)成成分。通過(guò)軟件復(fù)用,在應(yīng)用系統(tǒng)開發(fā)中可以充分利用已有的開發(fā)成果消除了包括分析、設(shè)計(jì)、編碼、測(cè)試等在內(nèi)的許多重復(fù)勞動(dòng),從而提高了軟件開發(fā)的效率:同時(shí),通過(guò)復(fù)用高質(zhì)量的已有開發(fā)成果時(shí),避免了重新開發(fā)可能引入的錯(cuò)誤,從而提高軟件的質(zhì)量。軟件復(fù)用指重復(fù)使用“為了復(fù)用目的而設(shè)計(jì)的

3、軟件”的過(guò)程。相應(yīng)地,可復(fù)用軟件是指為了復(fù)用目的而設(shè)計(jì)的軟件。與軟件復(fù)用的概念相關(guān),重復(fù)使用軟件的行為還可能是重復(fù)使用“并非為了復(fù)用目的而設(shè)計(jì)的軟件”的過(guò)程,或在一個(gè)應(yīng)用系統(tǒng)中的不同版本間重復(fù)使用代碼的過(guò)程,這兩類行為都不屬于嚴(yán)格意義上的軟件復(fù)用。真正的復(fù)用是為了支持軟件,使用“為復(fù)用而開發(fā)的軟件(構(gòu)件)”來(lái)更快、更好地開發(fā)新的應(yīng)用系統(tǒng)。復(fù)用技術(shù)在整體上對(duì)軟件產(chǎn)業(yè)的影響卻并不盡如意。這是由于技術(shù)方面和非技術(shù)方面的種種因素造成的,其中技術(shù)上的不成熟是一個(gè)主要原因。近十幾年來(lái),面向?qū)ο蠹夹g(shù)出現(xiàn)并逐步成為主流技術(shù),為軟件復(fù)用提供了基本的技術(shù)支持。軟件復(fù)用研究重新成為熱點(diǎn)。被視為解決軟件危機(jī)。提高軟件

4、生產(chǎn)效率和質(zhì)量的現(xiàn)實(shí)可行途徑。(復(fù)用分類)軟件復(fù)用可以從多個(gè)角度進(jìn)行考察。依據(jù)復(fù)用的對(duì)象,可以將軟件復(fù)用分為產(chǎn)品復(fù)用和過(guò)程復(fù)用。產(chǎn)品復(fù)用指復(fù)用已有的軟件構(gòu)件通過(guò)構(gòu)件集成(組裝)得到新系統(tǒng)。過(guò)程復(fù)用指復(fù)用已有的軟件開發(fā)過(guò)程使用可復(fù)用的應(yīng)用生成器來(lái)自動(dòng)或半自動(dòng)地生成所需系統(tǒng)。過(guò)程復(fù)用依賴于軟件自動(dòng)化技術(shù)的發(fā)展,目前只適應(yīng)于一些特殊的應(yīng)用領(lǐng)域。產(chǎn)品復(fù)用是目前現(xiàn)實(shí)的、主流的途徑。依據(jù)對(duì)可復(fù)用信息進(jìn)行復(fù)用的方式。可以將軟件復(fù)用區(qū)分為黑盒(Blackbox)復(fù)用和白盒(Whitebox)復(fù)用。黑盒復(fù)用指對(duì)已有構(gòu)件不需作任何修改,直接進(jìn)行復(fù)用。這是理想的復(fù)用方式。白盒復(fù)用指已有構(gòu)件并不能完全符合用戶的需求。

5、需要根據(jù)用戶需求進(jìn)行適應(yīng)性修改后才使用。而在大多數(shù)應(yīng)用的組裝過(guò)程中,構(gòu)件適應(yīng)性修改是必需的。軟件復(fù)用按抽象程度的高低, 可以劃分為如下的復(fù)用級(jí)別: (1) 代碼的復(fù)用, 包括目標(biāo)代碼和源代碼的復(fù)用。當(dāng)前大部分編程語(yǔ)言的運(yùn)行支持系統(tǒng)都提供了連接(L ink) 、綁定(Binding) 等功能來(lái)支持這種復(fù)用; ( 2) 設(shè)計(jì)的復(fù)用, 設(shè)計(jì)結(jié)果比源程序的抽象級(jí)別更高, 因此它的復(fù)用受到實(shí)現(xiàn)環(huán)境的影響較少, 從而使可復(fù)用構(gòu)件被復(fù)用的機(jī)會(huì)更多, 并且所需的修改更少; (3) 分析的復(fù)用, 可復(fù)用的分析成分是針對(duì)問(wèn)題域的某些事物(問(wèn)題) 的抽象程度更高的解法。軟件復(fù)用有三個(gè)基本問(wèn)題一是必須有可一是必須有可

6、以復(fù)用的對(duì)象。二是所復(fù)用的對(duì)象必須是有用的。三是復(fù)用者需要知道如何去使用被復(fù)用的對(duì)象。軟件復(fù)用包括兩個(gè)相關(guān)的過(guò)程:可復(fù)用軟件(構(gòu)件)的開發(fā)(Development, for Reuse)和基本可復(fù)用軟件(構(gòu)件)的應(yīng)用系統(tǒng)構(gòu)造(集成和組裝)(Development with Reuse)。解決好這幾個(gè)方面的問(wèn)題才能實(shí)現(xiàn)真正成功的軟件復(fù)用。2構(gòu)件技術(shù)21構(gòu)件技術(shù)模型構(gòu)件復(fù)用是軟件復(fù)用的核心問(wèn)題,因此有關(guān)構(gòu)件的研究得到日益重視并且形成了軟件工程學(xué)科的一個(gè)分支。在產(chǎn)業(yè)界正在逐漸形成一種產(chǎn)業(yè)模式,即構(gòu)件生產(chǎn)商負(fù)責(zé)生產(chǎn)構(gòu)件,構(gòu)件銷售商負(fù)責(zé)構(gòu)件的銷售,構(gòu)件集成商負(fù)責(zé)構(gòu)件集成。目前已經(jīng)商品化的構(gòu)件有微軟的CO

7、MDCOM、Sun公司的Java Bean和對(duì)象管理組織(OMG)的CORBA。構(gòu)件是一種不透明的功能實(shí)現(xiàn)要通過(guò)構(gòu)件模型進(jìn)行構(gòu)造,要能夠與第三方進(jìn)行合成,這樣就存在構(gòu)件模型標(biāo)準(zhǔn)化的問(wèn)題。構(gòu)件模型的標(biāo)準(zhǔn)化要能同時(shí)滿足構(gòu)件生產(chǎn)者和構(gòu)件消費(fèi)者需求,學(xué)術(shù)界普遍接受的是“3C”(Concept,Content,Context)模型2,即component=(Concept,Content,Context),在這個(gè)模型中:Concept:概念描述軟件完成什么功能。描述構(gòu)件的接口和語(yǔ)義,概念和內(nèi)容(Content)能夠進(jìn)行通信;Content:內(nèi)容,描述如何實(shí)現(xiàn)這個(gè)構(gòu)件,一般情況下,構(gòu)件的內(nèi)容信息對(duì)臨時(shí)用戶

8、是隱藏的。只有需要對(duì)構(gòu)件作修改的用戶才是可知的;Context:上下文、組件在其適用領(lǐng)域內(nèi)的配置,通過(guò)對(duì)概念、操作和實(shí)現(xiàn)特征的詳細(xì)說(shuō)明。上下文能夠使軟件尋找到滿足應(yīng)用需求的組件。22構(gòu)件的開發(fā)構(gòu)件的開發(fā)技術(shù)有多種其中比較有代表性的是CBSD技術(shù)。CBSD是CMUSEI提出的構(gòu)件設(shè)計(jì)參考模式,這種設(shè)計(jì)模式的原則是:組件具的擴(kuò)充獨(dú)立性:組件模型必須給出一些標(biāo)準(zhǔn)以保證獨(dú)立開發(fā)的組件能夠配置到公共的環(huán)境中,而不會(huì)出現(xiàn)不可預(yù)知的問(wèn)題;開發(fā)時(shí)間短,這樣會(huì)減少整個(gè)開發(fā)和維護(hù)費(fèi)用;提高可預(yù)知性?;跇?gòu)件的系統(tǒng)來(lái)源于基于構(gòu)件的設(shè)計(jì)策略,構(gòu)件技術(shù)包括支持這種設(shè)計(jì)策略的產(chǎn)品的概念,這種設(shè)計(jì)策略與組件描述的設(shè)計(jì)模式和

9、交互模式的構(gòu)造類型非常相近,組件(即構(gòu)件)反映的設(shè)計(jì)模式如圖1。圖1中,構(gòu)件實(shí)現(xiàn)是能夠在物理或者邏輯設(shè)備中執(zhí)行的軟件實(shí)現(xiàn)。一個(gè)構(gòu)件可以有一個(gè)或者多個(gè)接口。構(gòu)件滿足一定的規(guī)范,這里稱為契約,這些契約的作用是保證獨(dú)立開發(fā)的構(gòu)件符合給定的規(guī)則,以便以可預(yù)知的方式進(jìn)行交互并配置到標(biāo)準(zhǔn)的建造環(huán)境和運(yùn)行環(huán)境中。基于構(gòu)件的系統(tǒng)是建立在少數(shù)不同的構(gòu)件類型上。每一個(gè)構(gòu)件的類型在中扮演的一個(gè)特定的角色,由接口對(duì)其進(jìn)行描述。構(gòu)件模型是組件類型、接口和組件間相互作用的模式說(shuō)明書集合。構(gòu)件構(gòu)架提供多種服務(wù)來(lái)支持和加強(qiáng)構(gòu)件模型。3 COTS構(gòu)件當(dāng)前的軟件已不再是一個(gè)簡(jiǎn)單的系統(tǒng)規(guī)模越來(lái)越大,通常是一復(fù)雜的“系統(tǒng)中的系統(tǒng)”。

10、大型軟件尤其如此,從頭開始做每一件事情來(lái)建造系統(tǒng)幾乎是不可能的。于是出現(xiàn)了COTS(Commercial Off The Shelf)技術(shù)。COTS構(gòu)件是從市場(chǎng)上采購(gòu)得到的軟件組件,它由第三方開發(fā)。系統(tǒng)開發(fā)者不能訪問(wèn)源代碼,相同的COTS構(gòu)件可能有很多用戶最后才能得到健壯的系統(tǒng)。C0碼構(gòu)件有以下的特征:COTS軟件不能被修改,這是COTS軟件的固有特性系統(tǒng)集成者購(gòu)買組件后,不需要對(duì)構(gòu)件作修改:有時(shí)為了把所有的構(gòu)件進(jìn)行了太多的修改就不再被認(rèn)為是COTS組件了;系統(tǒng)集成者對(duì)COTS構(gòu)件沒(méi)有升級(jí)和維護(hù)控制權(quán),軟件升級(jí)和維護(hù)是COTS組件開發(fā)者的職責(zé)。依據(jù)COTS組件在系統(tǒng)中所起的作用不同。COTS分

11、為兩類:一類是一個(gè)COTS系統(tǒng)中,不是單一的COTS構(gòu)件支配整個(gè)系統(tǒng),而是由一組綁定在一起構(gòu)成的;另一類是在COTS解決方案中。使用一個(gè)主COTS構(gòu)件作為主解決方案。其他的傳統(tǒng)的構(gòu)件作為輔助的軟件或者插件加入到系統(tǒng)中。使用COTS構(gòu)件突出的優(yōu)點(diǎn)是能降低軟件開發(fā)的成本購(gòu)買現(xiàn)有的軟件比自己開發(fā)所需的成本低,軟件的健壯性要高,因?yàn)槭袌?chǎng)上提供的COTS軟件使用的是成熟的技術(shù),使用這樣的構(gòu)件往往比自己開發(fā)的構(gòu)件的可靠性要高。但是COTS構(gòu)件的缺點(diǎn)是以“黑盒”提供給用戶,沒(méi)有源代碼,維護(hù)困難版本易于變化。不同COTS之間存在潛在的沖突。軟件構(gòu)件提供的功能過(guò)少或者過(guò)多。4 基于Agent的軟件復(fù)用技術(shù) Ag

12、ent也被稱為軟件Agent或智能Agent許多研究人員依據(jù)不同的研究?jī)?nèi)容和目標(biāo)對(duì)術(shù)語(yǔ)“Agent”賦予了不同含義。Woodridge和Jennings對(duì)“Agent”的不同定義進(jìn)行了總結(jié),認(rèn)為“Agent”按其用法可分為兩種也就是Agent的兩種定義3:弱定義和強(qiáng)定義。Agent的弱定義是指Agent具有的自主性、社會(huì)性、反應(yīng)性、能動(dòng)性、時(shí)間連續(xù)性以及面向目標(biāo)的特性。Agent強(qiáng)定義指Agent除了具有弱定義中的特性以外,通常還具有:可移動(dòng)性、理性、適應(yīng)性、協(xié)作性。面向?qū)ο蠹夹g(shù)用于對(duì)被動(dòng)實(shí)體的抽象較好。但是,它無(wú)法實(shí)現(xiàn)對(duì)活動(dòng)實(shí)體的抽象;而Agent技術(shù)能夠較好地實(shí)現(xiàn)對(duì)活動(dòng)實(shí)體的抽象?;贏g

13、ent的軟件復(fù)用是軟件工程的一個(gè)新的研究領(lǐng)域,面向Agent編程AOP(AgentOriented Programming)的概念是Shoham在1993年提出的。因此,軟件技術(shù)的發(fā)展經(jīng)歷00(Object Oriented)技術(shù)后。并正在Agent技術(shù)方向發(fā)展。人工智能專家Guilfoyle在1995年就斷言:10年后大多數(shù)新興信息技術(shù)的發(fā)展將接受:Agent理論與技術(shù)手段是解決2l世紀(jì)系統(tǒng)建模和網(wǎng)絡(luò)化協(xié)同的重要手段【4】?;跇?gòu)件的復(fù)用必須解決的需求有:用戶能對(duì)所需要的構(gòu)件進(jìn)行搜索;需要有對(duì)已有復(fù)用該構(gòu)件的用戶版本進(jìn)行升級(jí)機(jī)制;對(duì)應(yīng)用該組構(gòu)件生產(chǎn)商和用戶提供一種能夠用相同的技術(shù)語(yǔ)言交流的工

14、具;構(gòu)件生產(chǎn)者和構(gòu)件復(fù)用者可以靈活地加入系統(tǒng)和從系統(tǒng)中撤銷;Internet上基于構(gòu)件復(fù)用的工具一定是復(fù)用者和生產(chǎn)者的環(huán)境的集成的部分。要滿足以上需求。基于組件復(fù)用的軟件開發(fā)過(guò)程實(shí)際上成為被多Agent系統(tǒng)理解和操作的過(guò)程,這里稱為“面向Agent的軟件復(fù)用”。其基本思想是:在可復(fù)用的通用多Agent機(jī)構(gòu)中,對(duì)Agent結(jié)構(gòu)中的每一個(gè)元素都進(jìn)行定義,這些元素包括Agent需要的知識(shí)、計(jì)劃、行為和Agent之間的交互等,每一個(gè)具體Agent都是在基本Agent結(jié)構(gòu)的基礎(chǔ)上進(jìn)行創(chuàng)建。Internet環(huán)境下基于Agent的軟件復(fù)用的一般結(jié)構(gòu)如圖2所示。依據(jù)上述結(jié)構(gòu),構(gòu)建基于構(gòu)件的軟件復(fù)用的多Agen

15、t系統(tǒng)結(jié)構(gòu)時(shí),必須要考慮的因素有:選用哪幾種類型的Agent,多Agent人分工與協(xié)作,Agent知識(shí)庫(kù)的建立等。構(gòu)建的方法和步聚包括:識(shí)別Agent對(duì)任務(wù)進(jìn)行提煉,定義本體(Ontology),定義行為計(jì)劃,表示行為和定義交互作用,構(gòu)造原型。使用Java的RIM能夠很好地實(shí)現(xiàn)通訊模塊的功能,這種結(jié)構(gòu)中需要對(duì)每一個(gè)實(shí)例化的Agent定義必需的知識(shí)。這些知識(shí)概括為:計(jì)劃、行為、與其他Agent的交互等。5結(jié)論不同的復(fù)用技術(shù),得到復(fù)用構(gòu)件或軟件的粒度大小不一樣,其設(shè)計(jì)方法和模式也不一樣。比較常用和成熟的是構(gòu)件復(fù)用。對(duì)于大型系統(tǒng)需要更大粒度的軟件復(fù)用一COTS,但其缺點(diǎn)是不能訪問(wèn)源代碼,在Inter

16、net環(huán)境下,本人提出了基于Agent的軟件復(fù)用和方法由Agent在網(wǎng)絡(luò)環(huán)境下自主地進(jìn)行構(gòu)件的尋找和匹配,實(shí)現(xiàn)軟件的復(fù)用。軟件復(fù)用是解決軟件危機(jī)的有效途徑,促進(jìn)了軟件向產(chǎn)業(yè)化和健康化的方向發(fā)展。參考文獻(xiàn)1楊美清軟件復(fù)用及其相關(guān)技術(shù)計(jì)算機(jī)世界19900315:(5)2 Tveit AA survery of agent-oriented software engineeringhttp:/wwweleomagcorn/around/200353齊艷平面Agent與面向?qū)ο笥?jì)算機(jī)科學(xué)4 Syeara K Desker K,Pannu Aet a1Distributed intelligent ag

17、entshttp:/wwwcseemuEdu/softanents/19965 Sommervile L Software engineering(4th ed)Mass:Addison-Wesley,Reading,19926 Giorgini P,Kolp M,Mylopoulos JMulti-agent and software agentand software architecture:a comparative case studyhttp:wwwcsTorontoend,2003;47 Nwosu I C Workshop on componet based software

18、engineeringprocesseshttp:www11WOUnetpapem,200258 Jennings N RA roadmap of agent a researsh and developmenthttp:citeseernineceomJennings98 roamphtral,2003;10基于構(gòu)件的軟件復(fù)用技術(shù)應(yīng)用研究武偉,張明新(1西北師范大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院,甘肅蘭州730070;2山西大同大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,山西大同037009)2軟件復(fù)用的核心技術(shù)構(gòu)件(Component)是指應(yīng)用系統(tǒng)中可以明確辨識(shí)的構(gòu)成成分而可復(fù)用構(gòu)件(Reusable Componen

19、t)是指具有相對(duì)獨(dú)立的功能和可復(fù)用價(jià)值的構(gòu)件軟件構(gòu)件技術(shù)(Software Component Technology)是支持軟件復(fù)用的核心技術(shù),是近幾年來(lái)迅速發(fā)展并受到高度重視的一個(gè)學(xué)科分支其主要研究?jī)?nèi)容如下:21建立構(gòu)件庫(kù)簡(jiǎn)單來(lái)說(shuō),構(gòu)件庫(kù)是一個(gè)對(duì)軟件構(gòu)件統(tǒng)一進(jìn)行形式化包裝、分類描述、存儲(chǔ)管理、檢索瀏覽的場(chǎng)所軟件構(gòu)件庫(kù)是大范圍內(nèi)、系統(tǒng)化實(shí)施軟件復(fù)用的必備基礎(chǔ)設(shè)施要復(fù)用軟件構(gòu)件有兩個(gè)前提條件,一是所需的構(gòu)件已經(jīng)存在,二是復(fù)用者能方便地找到所需的構(gòu)件由于軟件構(gòu)件蘊(yùn)涵了大量的信息,對(duì)其準(zhǔn)確、簡(jiǎn)潔地描述極其困難,如果沒(méi)有一個(gè)統(tǒng)一的場(chǎng)所對(duì)其進(jìn)行統(tǒng)一的描述包裝,大規(guī)模的軟件復(fù)用是不可能實(shí)現(xiàn)的,所以建立大規(guī)

20、模的公共構(gòu)件庫(kù)是必須的建立自己的構(gòu)件庫(kù)是實(shí)現(xiàn)復(fù)用的基礎(chǔ),可獲取的構(gòu)件有公共構(gòu)件和商業(yè)構(gòu)件,前者質(zhì)量無(wú)法保障,必須對(duì)構(gòu)件進(jìn)行測(cè)試;后者不能修改源碼,只能是黑盒使用此外,可以自己開發(fā)一些簡(jiǎn)單的構(gòu)件這樣通過(guò)不同途徑不斷的積累自己的軟構(gòu)件庫(kù),開發(fā)的復(fù)用率會(huì)逐漸提高22構(gòu)件分類對(duì)于一個(gè)應(yīng)用系統(tǒng)通常包插i類成分:1)通用基本構(gòu)件:是特定于計(jì)算機(jī)系統(tǒng)的構(gòu)成成分,如基本數(shù)據(jù)結(jié)構(gòu)、用戶界面元素等,它們可以存在于各種應(yīng)用系中;2)領(lǐng)域共性構(gòu)件:是應(yīng)用系統(tǒng)所屬領(lǐng)域的共性構(gòu)成成分,它們存在于該領(lǐng)域的各個(gè)應(yīng)用系統(tǒng)中;3)應(yīng)用專用構(gòu)件:是應(yīng)用系統(tǒng)的特有構(gòu)成成分應(yīng)用系統(tǒng)開發(fā)中的重復(fù)勞動(dòng)主要在于前兩類構(gòu)成成分重復(fù)開發(fā)其中通用

21、基本構(gòu)件層為底層,整個(gè)集成環(huán)境和運(yùn)行環(huán)境都使用的構(gòu)件,通用性好,粒度最小,可廣泛復(fù)用,屬于黑盒復(fù)用;領(lǐng)域共性構(gòu)件完成系統(tǒng)主要功能,但通用性不如前者,大部分使用前須進(jìn)行修改和測(cè)試,復(fù)用方式屬于白盒復(fù)用23構(gòu)件管理構(gòu)件庫(kù)隨著規(guī)模的擴(kuò)大和應(yīng)用時(shí)間的增長(zhǎng),構(gòu)件的管理難度也越來(lái)越大,作者設(shè)計(jì)一管理工具,在此管理工具中對(duì)入庫(kù)構(gòu)件需登記以下信息:構(gòu)件名稱、構(gòu)件序號(hào)、制作日期、修改日期、功能分類、功能描述、使用環(huán)境、構(gòu)件名稱、版本、保存位置和復(fù)用次數(shù)管理工具提供了添加、刪除、修改、檢索、統(tǒng)計(jì)等功能,實(shí)現(xiàn)了構(gòu)件的系統(tǒng)管理,通過(guò)該工具對(duì)構(gòu)件進(jìn)行管理基本解決了構(gòu)件保存、版本和篩選的問(wèn)題,提高了軟件復(fù)用的效率24構(gòu)件

22、組裝構(gòu)件的組裝指將構(gòu)件庫(kù)中或能直接使用的構(gòu)件,或經(jīng)過(guò)適應(yīng)性修改后的構(gòu)件以及為當(dāng)前項(xiàng)目新開發(fā)的構(gòu)件進(jìn)行整合,最終構(gòu)成新的目標(biāo)軟件的過(guò)程基于構(gòu)件的開發(fā)通過(guò)構(gòu)件組裝得到最終應(yīng)用系統(tǒng),構(gòu)件組裝必須以某個(gè)框架或架構(gòu)為藍(lán)圖,實(shí)際可以看作是用構(gòu)件實(shí)例將軟件構(gòu)架具體化的過(guò)程構(gòu)件組裝技術(shù)以構(gòu)件模型、構(gòu)件一構(gòu)架描述盒開放系統(tǒng)技術(shù)為基礎(chǔ),成功的組裝必須以開放構(gòu)件模型和規(guī)范的構(gòu)件描述(包括對(duì)構(gòu)件連接和交互協(xié)議的嚴(yán)格定義)為基礎(chǔ),構(gòu)件實(shí)例必須符合系統(tǒng)中其他部分的要求分布式軟件總線、事件登記和回調(diào)、構(gòu)架描述語(yǔ)言、腳本語(yǔ)言和代碼生成技術(shù)都為架構(gòu)組裝指出了希望之路;DCO,JavaBean等運(yùn)行級(jí)的分布式構(gòu)件模型的出現(xiàn)和OR

23、B與Internet的引入,是構(gòu)件之問(wèn)的獨(dú)立性和互操作性變得更強(qiáng),這些技術(shù)為構(gòu)件組裝,尤其是運(yùn)行級(jí)的構(gòu)件組裝提供了有力的支持25構(gòu)件標(biāo)準(zhǔn)化構(gòu)件模型的標(biāo)準(zhǔn)化和構(gòu)件庫(kù)系統(tǒng)的標(biāo)準(zhǔn)化3基于構(gòu)件的軟件開發(fā)基本思想基于構(gòu)件軟件開發(fā)方法的思路是借鑒傳統(tǒng)工業(yè)生產(chǎn)模式,首先是分析消費(fèi)者需求,設(shè)計(jì)整體結(jié)構(gòu)框架,根據(jù)需要到構(gòu)件庫(kù)中選擇能完成相應(yīng)功能的構(gòu)件,之后組裝應(yīng)用系統(tǒng)如果所需構(gòu)件不存在,就去購(gòu)買、定制或自行開發(fā)新構(gòu)件構(gòu)件生產(chǎn)組和系統(tǒng)開發(fā)組問(wèn)嚴(yán)格按照生產(chǎn)者一消費(fèi)者關(guān)系進(jìn)行任務(wù)分工:經(jīng)驗(yàn)工廠負(fù)責(zé)生產(chǎn)、提供構(gòu)件,項(xiàng)目組不再編程,而是通過(guò)從經(jīng)驗(yàn)工廠中請(qǐng)求所需的構(gòu)件集成組裝而得到最終所需的系統(tǒng)經(jīng)驗(yàn)工廠的活動(dòng)分為同步活動(dòng)和

24、異步活動(dòng)同步活動(dòng)指配合項(xiàng)目組的活動(dòng),接收構(gòu)件查找請(qǐng)求或定制請(qǐng)求,為項(xiàng)目組服務(wù)異步活動(dòng)指有目的的構(gòu)件生產(chǎn)或?qū)ν交顒?dòng)中的構(gòu)件進(jìn)行再工程以提高構(gòu)件的可復(fù)用性4軟件復(fù)用技術(shù)的應(yīng)用作者【本文】把軟件復(fù)用技術(shù)應(yīng)用在管理信息系統(tǒng)中,簡(jiǎn)介如下:41系統(tǒng)分析管理信息系統(tǒng)(MIS)包括以下模塊:1)信息管理模塊實(shí)現(xiàn)各類信息的添加、刪除、修改、審核等功能;2)信息查詢模塊實(shí)現(xiàn)對(duì)各類數(shù)據(jù)信息的查詢功能;3)信息輸出模塊實(shí)現(xiàn)數(shù)據(jù)的顯示,報(bào)表生成和打印功能;4)用戶管理模塊實(shí)現(xiàn)對(duì)各類用戶信息的輸入、修改、刪除和用戶權(quán)限分配功能以及用戶相關(guān)信息統(tǒng)計(jì)功能;5)部門管理模塊實(shí)現(xiàn)各個(gè)部門管理的分配、修改,新部門的添加以及老部門

25、的更新功能;6)訪問(wèn)統(tǒng)計(jì)模塊實(shí)現(xiàn)系統(tǒng)訪問(wèn)次數(shù)的統(tǒng)計(jì),包括日訪問(wèn)量、周訪問(wèn)量、月訪問(wèn)量和年訪問(wèn)量對(duì)來(lái)訪的IP地址進(jìn)行統(tǒng)計(jì),并提供查詢功能;7)異常處理模塊異常處理模塊繼承了Java自身的異常處理類實(shí)現(xiàn)了對(duì)自定義異常的處理4.2 軟件復(fù)用技術(shù)在系統(tǒng)中的應(yīng)用MIS主要是利用已有構(gòu)件組合集成生成軟件產(chǎn)品它的開發(fā)過(guò)程與傳統(tǒng)方法不同,大體分為以下幾個(gè)階段:1)需求分析和構(gòu)件的查找首先要對(duì)業(yè)務(wù)需求進(jìn)行分析,然后提煉出需要的構(gòu)件,最后對(duì)構(gòu)件進(jìn)行檢索;2)構(gòu)件的裁剪有些構(gòu)件不能直接使用,須對(duì)其進(jìn)行擴(kuò)張或者修改;3)構(gòu)件的生成裁剪后得到的構(gòu)件和新開發(fā)的構(gòu)件,都必須在構(gòu)造應(yīng)用工具上進(jìn)行測(cè)試,保證構(gòu)件功能及接口規(guī)范的

26、實(shí)現(xiàn),稱之為構(gòu)件的生成;4)構(gòu)件的組裝構(gòu)件的組裝是把構(gòu)件裝配成一個(gè)整體我們需要用開發(fā)工具制作一個(gè)應(yīng)用框架,這個(gè)框架是整個(gè)應(yīng)用系統(tǒng)的一個(gè)骨架,這個(gè)骨架在設(shè)計(jì)時(shí)可以通過(guò)領(lǐng)域分析方法設(shè)計(jì)成在某一領(lǐng)域可復(fù)用的構(gòu)架在MIS中底層的通用基本構(gòu)件包括基本界面以及常用菜單,這些構(gòu)件不需要修改直接就可以應(yīng)用到系統(tǒng)中;報(bào)表生成、打印、數(shù)據(jù)庫(kù)連接池、異常處理和訪問(wèn)統(tǒng)計(jì)這些領(lǐng)域共性構(gòu)件無(wú)需修改,幾乎每個(gè)系統(tǒng)都能用到;信息、部門和用戶的添加構(gòu)件、刪除構(gòu)件、修改構(gòu)件以及查詢構(gòu)件等領(lǐng)域共性構(gòu)件實(shí)現(xiàn)系統(tǒng)的主要功能,根據(jù)應(yīng)用的不同,需進(jìn)行修改和調(diào)試才能復(fù)用用戶權(quán)限分配對(duì)不同的應(yīng)用系統(tǒng)差別較大,是應(yīng)用系統(tǒng)的特有構(gòu)成成分,是應(yīng)用專

27、用構(gòu)件,需結(jié)合應(yīng)用重新開發(fā)可見隨著構(gòu)件層次的升高,構(gòu)件的功能越來(lái)越強(qiáng),通用性也越來(lái)越差由于應(yīng)用系統(tǒng)的多樣性,有些功能無(wú)法用構(gòu)件實(shí)現(xiàn),可將其制成專用構(gòu)件,與復(fù)用構(gòu)件一起集成到應(yīng)用框架參考文獻(xiàn)1】楊芙清,梅宏,李克勤軟件復(fù)用與軟件構(gòu)件技術(shù)【J】電子學(xué)報(bào),1999,27(2):68752】李海東,楊社堂CS模式應(yīng)用開發(fā)中軟件復(fù)用的研究【J太原理工大學(xué)學(xué)報(bào),2006,37(S1):117118【3】張春枝,王弘基于CS與BWS混合模式的MIS系統(tǒng)設(shè)計(jì)J】計(jì)算機(jī)應(yīng)用研究,2001(10):123125【4黎婭基于構(gòu)件的軟件復(fù)用技術(shù)應(yīng)用研究D】重慶:重慶大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,2008【5Pead Brereton,David BudgenComponent-Based SystemsA Classification of

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論