下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、淺析怎樣利用軟件構(gòu)件來實現(xiàn)軟件復(fù)用計算機軟件論文庫 淺析怎樣利用軟件構(gòu)件來實現(xiàn)軟件復(fù)用計算機軟件論文庫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ù)的重要組成部分之一,其研究對軟件技術(shù)的多
3、個方面的發(fā)展起到了積極的推動作用。但是,構(gòu)件技術(shù)本身的研究卻面臨著若干問題。分析構(gòu)件技術(shù)研究的現(xiàn)狀可以得到,盡管對構(gòu)件技術(shù)中基本概念的認知正逐漸趨于一致,但認識的差異依然存在。 關(guān)鍵詞:軟件構(gòu)件;構(gòu)件模型;認知 計算機軟件1充滿了其創(chuàng)造者的個性化特征。但是,軟件系統(tǒng)的大型化與復(fù)雜化,要求軟件生產(chǎn)必須標(biāo)準(zhǔn)化、規(guī)?;凸?jié)約化,必須從個人和小團體的手工作坊式的生產(chǎn)模式向社會化的專業(yè)分工協(xié)作生產(chǎn)模式轉(zhuǎn)化,實現(xiàn)軟件生產(chǎn)的工業(yè)化。但是,目前軟件生產(chǎn)的工業(yè)化程度還比較低,還不能對好的程序進行持續(xù)不斷的復(fù)用。為此,業(yè)界對軟件復(fù)用的技術(shù)進行了幾十年的研究,并逐漸形成了利用軟件構(gòu)件來實現(xiàn)軟
4、件復(fù)用的認識。 1軟件構(gòu)件的認知及其過程軟件構(gòu)件(Component,也常被理解為“組件”)的概念共生于軟件復(fù)用。早在1968年,在北大西洋公約組織(NATO)會議上就提出了軟件復(fù)用的概念,后來還為此制定了一整套軟件復(fù)用的指導(dǎo)性標(biāo)準(zhǔn),其中包含了利用標(biāo)準(zhǔn)構(gòu)件實現(xiàn)軟件復(fù)用的基本思路。也就是在這次會議上,McIlroy提出了軟件構(gòu)件、構(gòu)件工廠等概念2。生產(chǎn)標(biāo)準(zhǔn)軟件零部件,從而組裝成軟件的設(shè)想一產(chǎn)生就受到了廣泛關(guān)注,但不同歷史時期對它的認識卻不盡相同。在20世紀(jì)70和80年代,軟件構(gòu)件主要指可復(fù)用的程序代碼片段,一般被稱為代碼件。這一時期軟件生產(chǎn)考慮的主要問題是如何充分利用已有的源程序代碼
5、、子程序庫和類庫來提高軟件開發(fā)的效率。此時的代碼件主要有子程序、程序包、類、模板等形態(tài)。到20世紀(jì)90年代,軟件構(gòu)件應(yīng)當(dāng)包括分析件、設(shè)計件、代碼件、測試件等多種類型這一觀念被普遍認同。由于軟件復(fù)用的多樣性,又將其分為產(chǎn)品復(fù)用和過程復(fù)用3。隨之產(chǎn)生了許多新的概念,如設(shè)計模式、框架以及軟件體系結(jié)構(gòu)等。但是,對軟件構(gòu)件基本屬性的深入探討卻主要是圍繞代碼件展開,若不特別注明,所論及的軟件構(gòu)件(或簡稱構(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)該易于通過參數(shù)化等方式在不同語境中進行配置;可移植性(Portability),構(gòu)件應(yīng)能在不同硬件運行平臺和軟件環(huán)境中進行工作。近年來,隨著分布式對象、Internet、Java、Client/Server等技術(shù)以及基于構(gòu)件的軟件開發(fā)技術(shù)的發(fā)展,對構(gòu)件的認識又產(chǎn)生了新的變化,出現(xiàn)了若干新的軟件構(gòu)件的定義,其中比較有代表性的有:1)軟件構(gòu)件是可單獨生產(chǎn)、獲取、部署的二進制單元,它們之間可以互相作用構(gòu)成一個功能系統(tǒng)(Functioningsystem)5。2)軟件構(gòu)件是一個不透明(opaque)的功能實現(xiàn);能被第三方組裝
7、;符合一個構(gòu)件模型6。3)構(gòu)件是一個帶有契約化接口和顯式上下文依賴的組裝單元,它能被獨立發(fā)布并且可以被第三方組裝7。4)構(gòu)件代表一個自包含的實體,能夠向其環(huán)境輸出功能并可通過定義明確的開放接口從環(huán)境輸入功能8。5)構(gòu)件由一個動態(tài)變化的對象集合組成,這些對象既可以在構(gòu)件的內(nèi)部也可以是其接口的一部分。構(gòu)件之間可以直接交互,也可以通過獨立的對象進行膠合9。6)構(gòu)件是一個通過接口向外界提供服務(wù)的軟件包10。上述定義的共同要素是:軟件構(gòu)件是單獨開發(fā)并具有特定功能的軟件單位,用于與其它構(gòu)件及支撐環(huán)境組裝成應(yīng)用系統(tǒng)。這一共同要素反映了構(gòu)件的三個基本特征:封裝特征構(gòu)件是預(yù)制的知識服務(wù),需要封裝;復(fù)用特征構(gòu)件的
8、價值在于實現(xiàn)軟件復(fù)用,需要規(guī)范;組裝特征構(gòu)件不是完整的應(yīng)用程序,需要組裝。 2基于構(gòu)件的軟件開發(fā)基于構(gòu)件的軟件開發(fā)(Component Based Development,CBD)是指利用已開發(fā)完成的商業(yè)構(gòu)件(Commercial Off-The-Shelf,COTS)(或可復(fù)用的構(gòu)件)按應(yīng)用需求組裝形成軟件應(yīng)用系統(tǒng)的軟件開發(fā)方法11。根據(jù)CBD的特點,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)件描述語言以構(gòu)件模型為基礎(chǔ),解決構(gòu)件的精確描述、理解及組裝問題;構(gòu)件分類及檢索研究構(gòu)件分類策略、組織模式及
9、檢索方法,建立構(gòu)件庫系統(tǒng),支持構(gòu)件的有效管理;構(gòu)件組裝在構(gòu)件模型的基礎(chǔ)上研究構(gòu)件組裝機制,包括源代碼級的組裝和基于構(gòu)件對象互操作性的運行級組裝;標(biāo)準(zhǔn)化構(gòu)件模型的標(biāo)準(zhǔn)化和構(gòu)件庫系統(tǒng)的標(biāo)準(zhǔn)化等。CBD的基礎(chǔ)是模塊化、結(jié)構(gòu)化程序設(shè)計以及面向?qū)ο蟪绦蛟O(shè)計,并強調(diào)系統(tǒng)的分塊(分成相對獨立的子功能),力求通過定義良好的接口對系統(tǒng)的各個組成部分進行組裝。因此,應(yīng)用系統(tǒng)開發(fā)過程由構(gòu)件選擇、評估和組裝構(gòu)成。CBD方法充分體現(xiàn)了Fred Brooks所提出的“用購買代替建造”(Buy,don t built)的思想13?;跇?gòu)件的軟件開發(fā)有時也稱為基于構(gòu)件的軟件工程(Component Based Softwar
10、e Engineering,CBSE)。CBD發(fā)展的動力是軟件復(fù)用。軟件復(fù)用的概念提出伊始就與構(gòu)件的生產(chǎn)與組裝緊密地聯(lián)系在一起??梢哉J為,CBD發(fā)展的基礎(chǔ)仍然是二層、三層和多層客戶機/服務(wù)器計算模式,但CBD改變了軟件開發(fā)的過程,使用戶能夠用購買的構(gòu)件快速組裝成應(yīng)用程序,從而形成一種具有鮮明技術(shù)特色的軟件開發(fā)方法。構(gòu)件的即插即用是CBD的技術(shù)優(yōu)勢得以體現(xiàn)的基 本要求。即插即用的實現(xiàn),能夠使基于構(gòu)件的系統(tǒng)不依賴于固定的構(gòu)件生產(chǎn)者,同時能夠?qū)崿F(xiàn)軟件系統(tǒng)根據(jù)應(yīng)用需求的變化進行動態(tài)配置,這一點十分重要。與其它
11、軟件復(fù)用方式相比,基于構(gòu)件的軟件復(fù)用更為可行和實用。CBD開發(fā)方法的基本特點就是用構(gòu)件組裝應(yīng)用系統(tǒng),故其開發(fā)過程就是構(gòu)件的制造、組織、選取及組裝的過程。在上述開發(fā)過程中,COM/DCOM、CORBA、JavaBean/EJB等模型已經(jīng)在不同的環(huán)節(jié)有了實現(xiàn);在設(shè)計方法與工具方面,許多研究機構(gòu)與軟件企業(yè)也開展了十分積極的研發(fā),并開發(fā)出了一些CBD工具。盡管CBD的研究得到業(yè)界的廣泛重視,并已取得一定成果。但是,其實用化程度還不高。構(gòu)件組裝問題仍然是其核心技術(shù)問題之一。 3構(gòu)件模型軟件構(gòu)件模型除定義構(gòu)件的基本屬性外,還要規(guī)定構(gòu)件接口的結(jié)構(gòu)以及構(gòu)件與應(yīng)用框架、構(gòu)件與構(gòu)件之間的交互機制。構(gòu)件
12、模型通常還提供創(chuàng)建和實現(xiàn)構(gòu)件的指導(dǎo)原則。一個被構(gòu)件生產(chǎn)者和使用者共同接受的構(gòu)件模型就是構(gòu)件的工業(yè)標(biāo)準(zhǔn)。構(gòu)件模型是實現(xiàn)構(gòu)件生產(chǎn)與組裝的技術(shù)基礎(chǔ)。經(jīng)過多年的努力,其研究取得了一定進展。描述構(gòu)件的代表性模型主要有Unicon、Wright、ACME、Darwin和C21以及青鳥2等。Unicon模型是卡內(nèi)基·梅隆大學(xué)(CMU)的Shaw等人提出的。在Unicon構(gòu)件模型中,“構(gòu)件(component)”和“連接子(connector)”是其主要的構(gòu)成成分。構(gòu)件表達了系統(tǒng)中一組計算和狀態(tài)的抽象,連接子則定義了構(gòu)件之間的交互種類,通常用作構(gòu)件交互的媒介。構(gòu)件和連接子均有規(guī)約部分和實現(xiàn)部分。Un
13、icon提供了相應(yīng)的組裝支持工具,但擴展Unicon,特別是擴展組裝工具很困難。C2模型是一種層次的、基于消息的軟件體系結(jié)構(gòu)模式。它源于解決GUI軟件開發(fā)中軟件構(gòu)件問題,并被擴充用于其它的應(yīng)用領(lǐng)域。在C2中,構(gòu)件之間通過發(fā)送消息進行通訊,消息包括自上而下的通知消息和自下而上的請求消息,消息的傳遞由連接構(gòu)件負責(zé)。Wright模型的特點是對體系結(jié)構(gòu)(Architecture)模式中的構(gòu)件和連接子的抽象行為進行形式化的描述。它將顯式的、獨立于實現(xiàn)的連接構(gòu)件類型用作交互模式,并用基于CSP(通信順序進程)的表示法來表示構(gòu)件的抽象行為,它支持對規(guī)約的一致性和完整性進行靜態(tài)的檢查。Darwin模型中構(gòu)件包
14、括接口、綁定和配置等描述成分。Darwin通過兩種構(gòu)造(惰性初始化和顯式的動態(tài)構(gòu)造)支持動態(tài)的重新配置,配置的申明實際上變成了在運行時執(zhí)行的一個程序。ACME模型在其它模型關(guān)注如何提供更豐富的表達和開發(fā)工具支持建模時,致力于通過總結(jié)和組合這些模型的優(yōu)點和工具,提供一個公共的骨架。ACME的描述可以被解釋和分析,以及映射到其它的模型描述。Unicon及C2等模型還進一步涉及了構(gòu)件在源代碼級的組裝技術(shù)。Unicon提供了UNIX環(huán)境下基于體系結(jié)構(gòu)的組裝,但擴展困難。C2在消息總線基礎(chǔ)上較易實現(xiàn)系統(tǒng)組裝,但固定的體系結(jié)構(gòu)風(fēng)格使其不適應(yīng)軟件風(fēng)格多樣化的需求。北大青鳥構(gòu)件模型從三個不同的、相互正交的視角
15、來看待構(gòu)件,每個具體的構(gòu)件都是形態(tài)、層次和表示構(gòu)成的三維空間中的一個點。構(gòu)件形態(tài)(Form)被分為類(Class)、類樹(Class Tree)、框架(Framework)、設(shè)計模式(Design Pattern)、體系結(jié)構(gòu)(Architecture)五種;構(gòu)件層次被分為分析件(指系統(tǒng)需求規(guī)約和功能規(guī)約)、設(shè)計件(指系統(tǒng)體系結(jié)構(gòu)和設(shè)計方案)、編碼件(由具體程序設(shè)計語言編制的源代碼構(gòu)件)、測試件(測試計劃和測試案例)四個層次;而構(gòu)件的表示則與層次有關(guān),不同層次的構(gòu)件具有不同的表示媒介和手段,如圖形、復(fù)合文檔、正文、偽碼、編程語言、目標(biāo)碼等。根據(jù)上述概念,青鳥構(gòu)件模型從九個方面來描述構(gòu)件,即概念、
16、操作規(guī)約、接口、類型、實現(xiàn)體、構(gòu)件復(fù)合、構(gòu)件性質(zhì)、構(gòu)件注釋和構(gòu)件語境。青鳥構(gòu)件模型是一個具有面向?qū)ο?OO)風(fēng)格的模型。此外,以CORBA、COM/DCOM/COM+和JavaBeans/EJB為代表的基于分布式對象技術(shù)的構(gòu)件實現(xiàn)模型正在向?qū)嵱没焖侔l(fā)展,它們對構(gòu)件的基本構(gòu)成及其體系結(jié)構(gòu)的演化產(chǎn)生著十分重要的影響。 4構(gòu)件技術(shù)研究的主要特征從國內(nèi)外關(guān)于軟件構(gòu)件技術(shù)研究的最新進展分析,當(dāng)前構(gòu)件技術(shù)的研究呈現(xiàn)如下主要特征:構(gòu)件技術(shù)研究存在兩種主要的技術(shù)路線。一是從構(gòu)件的基本概念出發(fā),力圖從軟件基本理論與體系結(jié)構(gòu)上實現(xiàn)軟件技術(shù)的創(chuàng)新,從根本上解決軟件構(gòu)件技術(shù)問題,并取得了許多研究性成果;
17、但整體上還停留在概念闡述與體系建模的探索性階段,暫時還難以實用。隨著軟件應(yīng)用技術(shù)與計算環(huán)境的演變,特別是分布式對象技術(shù)、智能Agent技術(shù)和網(wǎng)格計算技術(shù)等新研究領(lǐng)域的興起與推進,構(gòu)件技術(shù)的研究也受到一定的影響。二是以分布式對象技術(shù)為基礎(chǔ),充分利用已規(guī)范化和產(chǎn)品化的技術(shù)與平臺,在面向?qū)ο蠹夹g(shù)的基礎(chǔ)上,對對象進行擴充,將構(gòu)件技術(shù)與面向?qū)ο蠹夹g(shù)融合,以期使構(gòu)件技術(shù)在市場推動下不斷成熟與發(fā)展。這一路線的研究與開發(fā)主要表現(xiàn)為市場主流廠商在自己產(chǎn)品中加入“構(gòu)件元素”,形成具有某些構(gòu)件特征的產(chǎn)品與企業(yè)技術(shù)標(biāo)準(zhǔn)或規(guī)范。為了推進這些產(chǎn)品的不斷改進,并使新技術(shù)應(yīng)用不至于帶來新的封閉與市場壟斷,需要建立相應(yīng)的國際化
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)用的各個環(huán)節(jié)中,如何將構(gòu)件組裝成應(yīng)用系統(tǒng),是每個環(huán)節(jié)都需要考慮的核心問題。目前,構(gòu)件組裝技術(shù)主要分為“黑”、“白”、“灰”三個層次。由于構(gòu)件組裝實現(xiàn)的特性,特別是領(lǐng)域應(yīng)用的實際需要,“灰盒子”組裝技術(shù)是研究與開發(fā)的重點。但是,如何提高構(gòu)件在組裝方面的靈活性,雖然有不少有益的探討,但仍缺少系統(tǒng)且具有領(lǐng)域應(yīng)用背景的柔性組裝機制研究。構(gòu)件技術(shù)的研究正在與其它軟件技術(shù)研究相融合。隨著Internet技術(shù)、中間件技術(shù)、Web Service等技術(shù)研究的興起,業(yè)界對軟件復(fù)用的認識更加趨于多元化。但在這些新興技術(shù)研究中,卻充滿了構(gòu)件技術(shù)的概念,并將利用構(gòu)件技術(shù)提高軟件復(fù)用水平的基本思想貫穿始終。這一系列的研究從另一個層面推進了構(gòu)件技術(shù)的研究,同時對構(gòu)件技術(shù)研究提出了更加迫切而明確的需求。另一方面,軟件體系結(jié)構(gòu)的研究也大量涉及了構(gòu)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版?zhèn)€人旅游資助擔(dān)保服務(wù)協(xié)議范本3篇
- 二零二五版公司股權(quán)激勵與員工持股計劃修訂協(xié)議3篇
- 2025年度新能源汽車銷售居間服務(wù)合同書4篇
- 年度奧硝唑藥物競爭策略分析報告
- 2025授課服務(wù)合同范本
- 2025公司租賃合同書范本
- 2025年度虛擬現(xiàn)實游戲開發(fā)與運營合同范本4篇
- 星酒店投資技術(shù)公關(guān)運營合同
- 2025隧道開挖合同
- 供電設(shè)備租賃合同
- 2023年Web前端技術(shù)試題
- GB/T 20840.8-2007互感器第8部分:電子式電流互感器
- GB/T 14864-2013實心聚乙烯絕緣柔軟射頻電纜
- 品牌策劃與推廣-項目5-品牌推廣課件
- 信息學(xué)奧賽-計算機基礎(chǔ)知識(完整版)資料
- 發(fā)煙硫酸(CAS:8014-95-7)理化性質(zhì)及危險特性表
- 數(shù)字信號處理(課件)
- 公路自然災(zāi)害防治對策課件
- 火災(zāi)報警應(yīng)急處置程序流程圖
- 耳鳴中醫(yī)臨床路徑
- 安徽身份證號碼前6位
評論
0/150
提交評論