《淺析怎樣利用軟件構(gòu)件來(lái)實(shí)現(xiàn)軟件復(fù)用》——計(jì)算機(jī)軟件論文庫(kù)_第1頁(yè)
《淺析怎樣利用軟件構(gòu)件來(lái)實(shí)現(xiàn)軟件復(fù)用》——計(jì)算機(jī)軟件論文庫(kù)_第2頁(yè)
《淺析怎樣利用軟件構(gòu)件來(lái)實(shí)現(xiàn)軟件復(fù)用》——計(jì)算機(jī)軟件論文庫(kù)_第3頁(yè)
《淺析怎樣利用軟件構(gòu)件來(lái)實(shí)現(xiàn)軟件復(fù)用》——計(jì)算機(jī)軟件論文庫(kù)_第4頁(yè)
《淺析怎樣利用軟件構(gòu)件來(lái)實(shí)現(xiàn)軟件復(fù)用》——計(jì)算機(jī)軟件論文庫(kù)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、淺析怎樣利用軟件構(gòu)件來(lái)實(shí)現(xiàn)軟件復(fù)用計(jì)算機(jī)軟件論文庫(kù)    淺析怎樣利用軟件構(gòu)件來(lái)實(shí)現(xiàn)軟件復(fù)用計(jì)算機(jī)軟件論文庫(kù)Pick to: component technology has become one of the important parts of the software technology, the research on software technology of multiple aspects of development has played a positive role in promoting. However, component

2、 technology the study itself is faced with some problems. Analysis of component technology research status can be obtained, in spite of the component technology in the basic concepts of cognition are consistent, but the understanding of the differences still exist.摘要:構(gòu)件技術(shù)已經(jīng)成為軟件技術(shù)的重要組成部分之一,其研究對(duì)軟件技術(shù)的多

3、個(gè)方面的發(fā)展起到了積極的推動(dòng)作用。但是,構(gòu)件技術(shù)本身的研究卻面臨著若干問(wèn)題。分析構(gòu)件技術(shù)研究的現(xiàn)狀可以得到,盡管對(duì)構(gòu)件技術(shù)中基本概念的認(rèn)知正逐漸趨于一致,但認(rèn)識(shí)的差異依然存在。  關(guān)鍵詞:軟件構(gòu)件;構(gòu)件模型;認(rèn)知  計(jì)算機(jī)軟件1充滿了其創(chuàng)造者的個(gè)性化特征。但是,軟件系統(tǒng)的大型化與復(fù)雜化,要求軟件生產(chǎn)必須標(biāo)準(zhǔn)化、規(guī)模化和節(jié)約化,必須從個(gè)人和小團(tuán)體的手工作坊式的生產(chǎn)模式向社會(huì)化的專業(yè)分工協(xié)作生產(chǎn)模式轉(zhuǎn)化,實(shí)現(xiàn)軟件生產(chǎn)的工業(yè)化。但是,目前軟件生產(chǎn)的工業(yè)化程度還比較低,還不能對(duì)好的程序進(jìn)行持續(xù)不斷的復(fù)用。為此,業(yè)界對(duì)軟件復(fù)用的技術(shù)進(jìn)行了幾十年的研究,并逐漸形成了利用軟件構(gòu)件來(lái)實(shí)現(xiàn)軟

4、件復(fù)用的認(rèn)識(shí)。  1軟件構(gòu)件的認(rèn)知及其過(guò)程軟件構(gòu)件(Component,也常被理解為“組件”)的概念共生于軟件復(fù)用。早在1968年,在北大西洋公約組織(NATO)會(huì)議上就提出了軟件復(fù)用的概念,后來(lái)還為此制定了一整套軟件復(fù)用的指導(dǎo)性標(biāo)準(zhǔn),其中包含了利用標(biāo)準(zhǔn)構(gòu)件實(shí)現(xiàn)軟件復(fù)用的基本思路。也就是在這次會(huì)議上,McIlroy提出了軟件構(gòu)件、構(gòu)件工廠等概念2。生產(chǎn)標(biāo)準(zhǔn)軟件零部件,從而組裝成軟件的設(shè)想一產(chǎn)生就受到了廣泛關(guān)注,但不同歷史時(shí)期對(duì)它的認(rèn)識(shí)卻不盡相同。在20世紀(jì)70和80年代,軟件構(gòu)件主要指可復(fù)用的程序代碼片段,一般被稱為代碼件。這一時(shí)期軟件生產(chǎn)考慮的主要問(wèn)題是如何充分利用已有的源程序代碼

5、、子程序庫(kù)和類庫(kù)來(lái)提高軟件開(kāi)發(fā)的效率。此時(shí)的代碼件主要有子程序、程序包、類、模板等形態(tài)。到20世紀(jì)90年代,軟件構(gòu)件應(yīng)當(dāng)包括分析件、設(shè)計(jì)件、代碼件、測(cè)試件等多種類型這一觀念被普遍認(rèn)同。由于軟件復(fù)用的多樣性,又將其分為產(chǎn)品復(fù)用和過(guò)程復(fù)用3。隨之產(chǎn)生了許多新的概念,如設(shè)計(jì)模式、框架以及軟件體系結(jié)構(gòu)等。但是,對(duì)軟件構(gòu)件基本屬性的深入探討卻主要是圍繞代碼件展開(kāi),若不特別注明,所論及的軟件構(gòu)件(或簡(jiǎn)稱構(gòu)件)通常是代碼件。1995年,Will Tracz提出,構(gòu)件應(yīng)具有以下屬性4:有用性(Usefulness),構(gòu)件必須提供有用的功能;可用性(Usability),構(gòu)件必須易于理解和使用;質(zhì)量(Quali

6、ty),構(gòu)件及其變形必須能正確工作;適應(yīng)性(Adaptability),構(gòu)件應(yīng)該易于通過(guò)參數(shù)化等方式在不同語(yǔ)境中進(jìn)行配置;可移植性(Portability),構(gòu)件應(yīng)能在不同硬件運(yùn)行平臺(tái)和軟件環(huán)境中進(jìn)行工作。近年來(lái),隨著分布式對(duì)象、Internet、Java、Client/Server等技術(shù)以及基于構(gòu)件的軟件開(kāi)發(fā)技術(shù)的發(fā)展,對(duì)構(gòu)件的認(rèn)識(shí)又產(chǎn)生了新的變化,出現(xiàn)了若干新的軟件構(gòu)件的定義,其中比較有代表性的有:1)軟件構(gòu)件是可單獨(dú)生產(chǎn)、獲取、部署的二進(jìn)制單元,它們之間可以互相作用構(gòu)成一個(gè)功能系統(tǒng)(Functioningsystem)5。2)軟件構(gòu)件是一個(gè)不透明(opaque)的功能實(shí)現(xiàn);能被第三方組裝

7、;符合一個(gè)構(gòu)件模型6。3)構(gòu)件是一個(gè)帶有契約化接口和顯式上下文依賴的組裝單元,它能被獨(dú)立發(fā)布并且可以被第三方組裝7。4)構(gòu)件代表一個(gè)自包含的實(shí)體,能夠向其環(huán)境輸出功能并可通過(guò)定義明確的開(kāi)放接口從環(huán)境輸入功能8。5)構(gòu)件由一個(gè)動(dòng)態(tài)變化的對(duì)象集合組成,這些對(duì)象既可以在構(gòu)件的內(nèi)部也可以是其接口的一部分。構(gòu)件之間可以直接交互,也可以通過(guò)獨(dú)立的對(duì)象進(jìn)行膠合9。6)構(gòu)件是一個(gè)通過(guò)接口向外界提供服務(wù)的軟件包10。上述定義的共同要素是:軟件構(gòu)件是單獨(dú)開(kāi)發(fā)并具有特定功能的軟件單位,用于與其它構(gòu)件及支撐環(huán)境組裝成應(yīng)用系統(tǒng)。這一共同要素反映了構(gòu)件的三個(gè)基本特征:封裝特征構(gòu)件是預(yù)制的知識(shí)服務(wù),需要封裝;復(fù)用特征構(gòu)件的

8、價(jià)值在于實(shí)現(xiàn)軟件復(fù)用,需要規(guī)范;組裝特征構(gòu)件不是完整的應(yīng)用程序,需要組裝。  2基于構(gòu)件的軟件開(kāi)發(fā)基于構(gòu)件的軟件開(kāi)發(fā)(Component Based Development,CBD)是指利用已開(kāi)發(fā)完成的商業(yè)構(gòu)件(Commercial Off-The-Shelf,COTS)(或可復(fù)用的構(gòu)件)按應(yīng)用需求組裝形成軟件應(yīng)用系統(tǒng)的軟件開(kāi)發(fā)方法11。根據(jù)CBD的特點(diǎn),CBD研究的主要內(nèi)容12包括:構(gòu)件獲取有目的的構(gòu)件生產(chǎn)和從已有系統(tǒng)中挖掘提取構(gòu)件;構(gòu)件模型研究構(gòu)件的本質(zhì)特征及構(gòu)件間的關(guān)系;構(gòu)件描述語(yǔ)言以構(gòu)件模型為基礎(chǔ),解決構(gòu)件的精確描述、理解及組裝問(wèn)題;構(gòu)件分類及檢索研究構(gòu)件分類策略、組織模式及

9、檢索方法,建立構(gòu)件庫(kù)系統(tǒng),支持構(gòu)件的有效管理;構(gòu)件組裝在構(gòu)件模型的基礎(chǔ)上研究構(gòu)件組裝機(jī)制,包括源代碼級(jí)的組裝和基于構(gòu)件對(duì)象互操作性的運(yùn)行級(jí)組裝;標(biāo)準(zhǔn)化構(gòu)件模型的標(biāo)準(zhǔn)化和構(gòu)件庫(kù)系統(tǒng)的標(biāo)準(zhǔn)化等。CBD的基礎(chǔ)是模塊化、結(jié)構(gòu)化程序設(shè)計(jì)以及面向?qū)ο蟪绦蛟O(shè)計(jì),并強(qiáng)調(diào)系統(tǒng)的分塊(分成相對(duì)獨(dú)立的子功能),力求通過(guò)定義良好的接口對(duì)系統(tǒng)的各個(gè)組成部分進(jìn)行組裝。因此,應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程由構(gòu)件選擇、評(píng)估和組裝構(gòu)成。CBD方法充分體現(xiàn)了Fred Brooks所提出的“用購(gòu)買代替建造”(Buy,don t built)的思想13。基于構(gòu)件的軟件開(kāi)發(fā)有時(shí)也稱為基于構(gòu)件的軟件工程(Component Based Softwar

10、e Engineering,CBSE)。CBD發(fā)展的動(dòng)力是軟件復(fù)用。軟件復(fù)用的概念提出伊始就與構(gòu)件的生產(chǎn)與組裝緊密地聯(lián)系在一起??梢哉J(rèn)為,CBD發(fā)展的基礎(chǔ)仍然是二層、三層和多層客戶機(jī)/服務(wù)器計(jì)算模式,但CBD改變了軟件開(kāi)發(fā)的過(guò)程,使用戶能夠用購(gòu)買的構(gòu)件快速組裝成應(yīng)用程序,從而形成一種具有鮮明技術(shù)特色的軟件開(kāi)發(fā)方法。構(gòu)件的即插即用是CBD的技術(shù)優(yōu)勢(shì)得以體現(xiàn)的基        本要求。即插即用的實(shí)現(xiàn),能夠使基于構(gòu)件的系統(tǒng)不依賴于固定的構(gòu)件生產(chǎn)者,同時(shí)能夠?qū)崿F(xiàn)軟件系統(tǒng)根據(jù)應(yīng)用需求的變化進(jìn)行動(dòng)態(tài)配置,這一點(diǎn)十分重要。與其它

11、軟件復(fù)用方式相比,基于構(gòu)件的軟件復(fù)用更為可行和實(shí)用。CBD開(kāi)發(fā)方法的基本特點(diǎn)就是用構(gòu)件組裝應(yīng)用系統(tǒng),故其開(kāi)發(fā)過(guò)程就是構(gòu)件的制造、組織、選取及組裝的過(guò)程。在上述開(kāi)發(fā)過(guò)程中,COM/DCOM、CORBA、JavaBean/EJB等模型已經(jīng)在不同的環(huán)節(jié)有了實(shí)現(xiàn);在設(shè)計(jì)方法與工具方面,許多研究機(jī)構(gòu)與軟件企業(yè)也開(kāi)展了十分積極的研發(fā),并開(kāi)發(fā)出了一些CBD工具。盡管CBD的研究得到業(yè)界的廣泛重視,并已取得一定成果。但是,其實(shí)用化程度還不高。構(gòu)件組裝問(wèn)題仍然是其核心技術(shù)問(wèn)題之一。  3構(gòu)件模型軟件構(gòu)件模型除定義構(gòu)件的基本屬性外,還要規(guī)定構(gòu)件接口的結(jié)構(gòu)以及構(gòu)件與應(yīng)用框架、構(gòu)件與構(gòu)件之間的交互機(jī)制。構(gòu)件

12、模型通常還提供創(chuàng)建和實(shí)現(xiàn)構(gòu)件的指導(dǎo)原則。一個(gè)被構(gòu)件生產(chǎn)者和使用者共同接受的構(gòu)件模型就是構(gòu)件的工業(yè)標(biāo)準(zhǔn)。構(gòu)件模型是實(shí)現(xiàn)構(gòu)件生產(chǎn)與組裝的技術(shù)基礎(chǔ)。經(jīng)過(guò)多年的努力,其研究取得了一定進(jìn)展。描述構(gòu)件的代表性模型主要有Unicon、Wright、ACME、Darwin和C21以及青鳥(niǎo)2等。Unicon模型是卡內(nèi)基·梅隆大學(xué)(CMU)的Shaw等人提出的。在Unicon構(gòu)件模型中,“構(gòu)件(component)”和“連接子(connector)”是其主要的構(gòu)成成分。構(gòu)件表達(dá)了系統(tǒng)中一組計(jì)算和狀態(tài)的抽象,連接子則定義了構(gòu)件之間的交互種類,通常用作構(gòu)件交互的媒介。構(gòu)件和連接子均有規(guī)約部分和實(shí)現(xiàn)部分。Un

13、icon提供了相應(yīng)的組裝支持工具,但擴(kuò)展Unicon,特別是擴(kuò)展組裝工具很困難。C2模型是一種層次的、基于消息的軟件體系結(jié)構(gòu)模式。它源于解決GUI軟件開(kāi)發(fā)中軟件構(gòu)件問(wèn)題,并被擴(kuò)充用于其它的應(yīng)用領(lǐng)域。在C2中,構(gòu)件之間通過(guò)發(fā)送消息進(jìn)行通訊,消息包括自上而下的通知消息和自下而上的請(qǐng)求消息,消息的傳遞由連接構(gòu)件負(fù)責(zé)。Wright模型的特點(diǎn)是對(duì)體系結(jié)構(gòu)(Architecture)模式中的構(gòu)件和連接子的抽象行為進(jìn)行形式化的描述。它將顯式的、獨(dú)立于實(shí)現(xiàn)的連接構(gòu)件類型用作交互模式,并用基于CSP(通信順序進(jìn)程)的表示法來(lái)表示構(gòu)件的抽象行為,它支持對(duì)規(guī)約的一致性和完整性進(jìn)行靜態(tài)的檢查。Darwin模型中構(gòu)件包

14、括接口、綁定和配置等描述成分。Darwin通過(guò)兩種構(gòu)造(惰性初始化和顯式的動(dòng)態(tài)構(gòu)造)支持動(dòng)態(tài)的重新配置,配置的申明實(shí)際上變成了在運(yùn)行時(shí)執(zhí)行的一個(gè)程序。ACME模型在其它模型關(guān)注如何提供更豐富的表達(dá)和開(kāi)發(fā)工具支持建模時(shí),致力于通過(guò)總結(jié)和組合這些模型的優(yōu)點(diǎn)和工具,提供一個(gè)公共的骨架。ACME的描述可以被解釋和分析,以及映射到其它的模型描述。Unicon及C2等模型還進(jìn)一步涉及了構(gòu)件在源代碼級(jí)的組裝技術(shù)。Unicon提供了UNIX環(huán)境下基于體系結(jié)構(gòu)的組裝,但擴(kuò)展困難。C2在消息總線基礎(chǔ)上較易實(shí)現(xiàn)系統(tǒng)組裝,但固定的體系結(jié)構(gòu)風(fēng)格使其不適應(yīng)軟件風(fēng)格多樣化的需求。北大青鳥(niǎo)構(gòu)件模型從三個(gè)不同的、相互正交的視角

15、來(lái)看待構(gòu)件,每個(gè)具體的構(gòu)件都是形態(tài)、層次和表示構(gòu)成的三維空間中的一個(gè)點(diǎn)。構(gòu)件形態(tài)(Form)被分為類(Class)、類樹(shù)(Class Tree)、框架(Framework)、設(shè)計(jì)模式(Design Pattern)、體系結(jié)構(gòu)(Architecture)五種;構(gòu)件層次被分為分析件(指系統(tǒng)需求規(guī)約和功能規(guī)約)、設(shè)計(jì)件(指系統(tǒng)體系結(jié)構(gòu)和設(shè)計(jì)方案)、編碼件(由具體程序設(shè)計(jì)語(yǔ)言編制的源代碼構(gòu)件)、測(cè)試件(測(cè)試計(jì)劃和測(cè)試案例)四個(gè)層次;而構(gòu)件的表示則與層次有關(guān),不同層次的構(gòu)件具有不同的表示媒介和手段,如圖形、復(fù)合文檔、正文、偽碼、編程語(yǔ)言、目標(biāo)碼等。根據(jù)上述概念,青鳥(niǎo)構(gòu)件模型從九個(gè)方面來(lái)描述構(gòu)件,即概念、

16、操作規(guī)約、接口、類型、實(shí)現(xiàn)體、構(gòu)件復(fù)合、構(gòu)件性質(zhì)、構(gòu)件注釋和構(gòu)件語(yǔ)境。青鳥(niǎo)構(gòu)件模型是一個(gè)具有面向?qū)ο?OO)風(fēng)格的模型。此外,以CORBA、COM/DCOM/COM+和JavaBeans/EJB為代表的基于分布式對(duì)象技術(shù)的構(gòu)件實(shí)現(xiàn)模型正在向?qū)嵱没焖侔l(fā)展,它們對(duì)構(gòu)件的基本構(gòu)成及其體系結(jié)構(gòu)的演化產(chǎn)生著十分重要的影響。  4構(gòu)件技術(shù)研究的主要特征從國(guó)內(nèi)外關(guān)于軟件構(gòu)件技術(shù)研究的最新進(jìn)展分析,當(dāng)前構(gòu)件技術(shù)的研究呈現(xiàn)如下主要特征:構(gòu)件技術(shù)研究存在兩種主要的技術(shù)路線。一是從構(gòu)件的基本概念出發(fā),力圖從軟件基本理論與體系結(jié)構(gòu)上實(shí)現(xiàn)軟件技術(shù)的創(chuàng)新,從根本上解決軟件構(gòu)件技術(shù)問(wèn)題,并取得了許多研究性成果;

17、但整體上還停留在概念闡述與體系建模的探索性階段,暫時(shí)還難以實(shí)用。隨著軟件應(yīng)用技術(shù)與計(jì)算環(huán)境的演變,特別是分布式對(duì)象技術(shù)、智能Agent技術(shù)和網(wǎng)格計(jì)算技術(shù)等新研究領(lǐng)域的興起與推進(jìn),構(gòu)件技術(shù)的研究也受到一定的影響。二是以分布式對(duì)象技術(shù)為基礎(chǔ),充分利用已規(guī)范化和產(chǎn)品化的技術(shù)與平臺(tái),在面向?qū)ο蠹夹g(shù)的基礎(chǔ)上,對(duì)對(duì)象進(jìn)行擴(kuò)充,將構(gòu)件技術(shù)與面向?qū)ο蠹夹g(shù)融合,以期使構(gòu)件技術(shù)在市場(chǎng)推動(dòng)下不斷成熟與發(fā)展。這一路線的研究與開(kāi)發(fā)主要表現(xiàn)為市場(chǎng)主流廠商在自己產(chǎn)品中加入“構(gòu)件元素”,形成具有某些構(gòu)件特征的產(chǎn)品與企業(yè)技術(shù)標(biāo)準(zhǔn)或規(guī)范。為了推進(jìn)這些產(chǎn)品的不斷改進(jìn),并使新技術(shù)應(yīng)用不至于帶來(lái)新的封閉與市場(chǎng)壟斷,需要建立相應(yīng)的國(guó)際化

18、技術(shù)標(biāo)準(zhǔn)與規(guī)范。OMG的CORBA 3.0及其CCM構(gòu)件模型是最新發(fā)布的一套通用規(guī)范,但至今宣布支持這一規(guī)范的廠商還不多。組裝是構(gòu)件技術(shù)研究的核心。構(gòu)件從生產(chǎn)、流通到應(yīng)用的各個(gè)環(huán)節(jié)中,如何將構(gòu)件組裝成應(yīng)用系統(tǒng),是每個(gè)環(huán)節(jié)都需要考慮的核心問(wèn)題。目前,構(gòu)件組裝技術(shù)主要分為“黑”、“白”、“灰”三個(gè)層次。由于構(gòu)件組裝實(shí)現(xiàn)的特性,特別是領(lǐng)域應(yīng)用的實(shí)際需要,“灰盒子”組裝技術(shù)是研究與開(kāi)發(fā)的重點(diǎn)。但是,如何提高構(gòu)件在組裝方面的靈活性,雖然有不少有益的探討,但仍缺少系統(tǒng)且具有領(lǐng)域應(yīng)用背景的柔性組裝機(jī)制研究。構(gòu)件技術(shù)的研究正在與其它軟件技術(shù)研究相融合。隨著Internet技術(shù)、中間件技術(shù)、Web Service等技術(shù)研究的興起,業(yè)界對(duì)軟件復(fù)用的認(rèn)識(shí)更加趨于多元化。但在這些新興技術(shù)研究中,卻充滿了構(gòu)件技術(shù)的概念,并將利用構(gòu)件技術(shù)提高軟件復(fù)用水平的基本思想貫穿始終。這一系列的研究從另一個(gè)層面推進(jìn)了構(gòu)件技術(shù)的研究,同時(shí)對(duì)構(gòu)件技術(shù)研究提出了更加迫切而明確的需求。另一方面,軟件體系結(jié)構(gòu)的研究也大量涉及了構(gòu)

溫馨提示

  • 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)論