《淺析怎樣利用軟件構件來實現(xiàn)軟件復用》——計算機軟件論文庫_第1頁
《淺析怎樣利用軟件構件來實現(xiàn)軟件復用》——計算機軟件論文庫_第2頁
《淺析怎樣利用軟件構件來實現(xiàn)軟件復用》——計算機軟件論文庫_第3頁
《淺析怎樣利用軟件構件來實現(xiàn)軟件復用》——計算機軟件論文庫_第4頁
《淺析怎樣利用軟件構件來實現(xiàn)軟件復用》——計算機軟件論文庫_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、淺析怎樣利用軟件構件來實現(xiàn)軟件復用計算機軟件論文庫    淺析怎樣利用軟件構件來實現(xiàn)軟件復用計算機軟件論文庫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.摘要:構件技術已經(jīng)成為軟件技術的重要組成部分之一,其研究對軟件技術的多

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論