




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、淺析怎樣利用軟件構件來實現軟件復用計算機軟件論文庫 淺析怎樣利用軟件構件來實現軟件復用計算機軟件論文庫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.摘要:構件技術已經成為軟件技術的重要組成部分之一,其研究對軟件技術的多
3、個方面的發(fā)展起到了積極的推動作用。但是,構件技術本身的研究卻面臨著若干問題。分析構件技術研究的現狀可以得到,盡管對構件技術中基本概念的認知正逐漸趨于一致,但認識的差異依然存在。 關鍵詞:軟件構件;構件模型;認知 計算機軟件1充滿了其創(chuàng)造者的個性化特征。但是,軟件系統(tǒng)的大型化與復雜化,要求軟件生產必須標準化、規(guī)?;凸?jié)約化,必須從個人和小團體的手工作坊式的生產模式向社會化的專業(yè)分工協作生產模式轉化,實現軟件生產的工業(yè)化。但是,目前軟件生產的工業(yè)化程度還比較低,還不能對好的程序進行持續(xù)不斷的復用。為此,業(yè)界對軟件復用的技術進行了幾十年的研究,并逐漸形成了利用軟件構件來實現軟
4、件復用的認識。 1軟件構件的認知及其過程軟件構件(Component,也常被理解為“組件”)的概念共生于軟件復用。早在1968年,在北大西洋公約組織(NATO)會議上就提出了軟件復用的概念,后來還為此制定了一整套軟件復用的指導性標準,其中包含了利用標準構件實現軟件復用的基本思路。也就是在這次會議上,McIlroy提出了軟件構件、構件工廠等概念2。生產標準軟件零部件,從而組裝成軟件的設想一產生就受到了廣泛關注,但不同歷史時期對它的認識卻不盡相同。在20世紀70和80年代,軟件構件主要指可復用的程序代碼片段,一般被稱為代碼件。這一時期軟件生產考慮的主要問題是如何充分利用已有的源程序代碼
5、、子程序庫和類庫來提高軟件開發(fā)的效率。此時的代碼件主要有子程序、程序包、類、模板等形態(tài)。到20世紀90年代,軟件構件應當包括分析件、設計件、代碼件、測試件等多種類型這一觀念被普遍認同。由于軟件復用的多樣性,又將其分為產品復用和過程復用3。隨之產生了許多新的概念,如設計模式、框架以及軟件體系結構等。但是,對軟件構件基本屬性的深入探討卻主要是圍繞代碼件展開,若不特別注明,所論及的軟件構件(或簡稱構件)通常是代碼件。1995年,Will Tracz提出,構件應具有以下屬性4:有用性(Usefulness),構件必須提供有用的功能;可用性(Usability),構件必須易于理解和使用;質量(Quali
6、ty),構件及其變形必須能正確工作;適應性(Adaptability),構件應該易于通過參數化等方式在不同語境中進行配置;可移植性(Portability),構件應能在不同硬件運行平臺和軟件環(huán)境中進行工作。近年來,隨著分布式對象、Internet、Java、Client/Server等技術以及基于構件的軟件開發(fā)技術的發(fā)展,對構件的認識又產生了新的變化,出現了若干新的軟件構件的定義,其中比較有代表性的有:1)軟件構件是可單獨生產、獲取、部署的二進制單元,它們之間可以互相作用構成一個功能系統(tǒng)(Functioningsystem)5。2)軟件構件是一個不透明(opaque)的功能實現;能被第三方組裝
7、;符合一個構件模型6。3)構件是一個帶有契約化接口和顯式上下文依賴的組裝單元,它能被獨立發(fā)布并且可以被第三方組裝7。4)構件代表一個自包含的實體,能夠向其環(huán)境輸出功能并可通過定義明確的開放接口從環(huán)境輸入功能8。5)構件由一個動態(tài)變化的對象集合組成,這些對象既可以在構件的內部也可以是其接口的一部分。構件之間可以直接交互,也可以通過獨立的對象進行膠合9。6)構件是一個通過接口向外界提供服務的軟件包10。上述定義的共同要素是:軟件構件是單獨開發(fā)并具有特定功能的軟件單位,用于與其它構件及支撐環(huán)境組裝成應用系統(tǒng)。這一共同要素反映了構件的三個基本特征:封裝特征構件是預制的知識服務,需要封裝;復用特征構件的
8、價值在于實現軟件復用,需要規(guī)范;組裝特征構件不是完整的應用程序,需要組裝。 2基于構件的軟件開發(fā)基于構件的軟件開發(fā)(Component Based Development,CBD)是指利用已開發(fā)完成的商業(yè)構件(Commercial Off-The-Shelf,COTS)(或可復用的構件)按應用需求組裝形成軟件應用系統(tǒng)的軟件開發(fā)方法11。根據CBD的特點,CBD研究的主要內容12包括:構件獲取有目的的構件生產和從已有系統(tǒng)中挖掘提取構件;構件模型研究構件的本質特征及構件間的關系;構件描述語言以構件模型為基礎,解決構件的精確描述、理解及組裝問題;構件分類及檢索研究構件分類策略、組織模式及
9、檢索方法,建立構件庫系統(tǒng),支持構件的有效管理;構件組裝在構件模型的基礎上研究構件組裝機制,包括源代碼級的組裝和基于構件對象互操作性的運行級組裝;標準化構件模型的標準化和構件庫系統(tǒng)的標準化等。CBD的基礎是模塊化、結構化程序設計以及面向對象程序設計,并強調系統(tǒng)的分塊(分成相對獨立的子功能),力求通過定義良好的接口對系統(tǒng)的各個組成部分進行組裝。因此,應用系統(tǒng)開發(fā)過程由構件選擇、評估和組裝構成。CBD方法充分體現了Fred Brooks所提出的“用購買代替建造”(Buy,don t built)的思想13?;跇嫾能浖_發(fā)有時也稱為基于構件的軟件工程(Component Based Softwar
10、e Engineering,CBSE)。CBD發(fā)展的動力是軟件復用。軟件復用的概念提出伊始就與構件的生產與組裝緊密地聯系在一起??梢哉J為,CBD發(fā)展的基礎仍然是二層、三層和多層客戶機/服務器計算模式,但CBD改變了軟件開發(fā)的過程,使用戶能夠用購買的構件快速組裝成應用程序,從而形成一種具有鮮明技術特色的軟件開發(fā)方法。構件的即插即用是CBD的技術優(yōu)勢得以體現的基 本要求。即插即用的實現,能夠使基于構件的系統(tǒng)不依賴于固定的構件生產者,同時能夠實現軟件系統(tǒng)根據應用需求的變化進行動態(tài)配置,這一點十分重要。與其它
11、軟件復用方式相比,基于構件的軟件復用更為可行和實用。CBD開發(fā)方法的基本特點就是用構件組裝應用系統(tǒng),故其開發(fā)過程就是構件的制造、組織、選取及組裝的過程。在上述開發(fā)過程中,COM/DCOM、CORBA、JavaBean/EJB等模型已經在不同的環(huán)節(jié)有了實現;在設計方法與工具方面,許多研究機構與軟件企業(yè)也開展了十分積極的研發(fā),并開發(fā)出了一些CBD工具。盡管CBD的研究得到業(yè)界的廣泛重視,并已取得一定成果。但是,其實用化程度還不高。構件組裝問題仍然是其核心技術問題之一。 3構件模型軟件構件模型除定義構件的基本屬性外,還要規(guī)定構件接口的結構以及構件與應用框架、構件與構件之間的交互機制。構件
12、模型通常還提供創(chuàng)建和實現構件的指導原則。一個被構件生產者和使用者共同接受的構件模型就是構件的工業(yè)標準。構件模型是實現構件生產與組裝的技術基礎。經過多年的努力,其研究取得了一定進展。描述構件的代表性模型主要有Unicon、Wright、ACME、Darwin和C21以及青鳥2等。Unicon模型是卡內基·梅隆大學(CMU)的Shaw等人提出的。在Unicon構件模型中,“構件(component)”和“連接子(connector)”是其主要的構成成分。構件表達了系統(tǒng)中一組計算和狀態(tài)的抽象,連接子則定義了構件之間的交互種類,通常用作構件交互的媒介。構件和連接子均有規(guī)約部分和實現部分。Un
13、icon提供了相應的組裝支持工具,但擴展Unicon,特別是擴展組裝工具很困難。C2模型是一種層次的、基于消息的軟件體系結構模式。它源于解決GUI軟件開發(fā)中軟件構件問題,并被擴充用于其它的應用領域。在C2中,構件之間通過發(fā)送消息進行通訊,消息包括自上而下的通知消息和自下而上的請求消息,消息的傳遞由連接構件負責。Wright模型的特點是對體系結構(Architecture)模式中的構件和連接子的抽象行為進行形式化的描述。它將顯式的、獨立于實現的連接構件類型用作交互模式,并用基于CSP(通信順序進程)的表示法來表示構件的抽象行為,它支持對規(guī)約的一致性和完整性進行靜態(tài)的檢查。Darwin模型中構件包
14、括接口、綁定和配置等描述成分。Darwin通過兩種構造(惰性初始化和顯式的動態(tài)構造)支持動態(tài)的重新配置,配置的申明實際上變成了在運行時執(zhí)行的一個程序。ACME模型在其它模型關注如何提供更豐富的表達和開發(fā)工具支持建模時,致力于通過總結和組合這些模型的優(yōu)點和工具,提供一個公共的骨架。ACME的描述可以被解釋和分析,以及映射到其它的模型描述。Unicon及C2等模型還進一步涉及了構件在源代碼級的組裝技術。Unicon提供了UNIX環(huán)境下基于體系結構的組裝,但擴展困難。C2在消息總線基礎上較易實現系統(tǒng)組裝,但固定的體系結構風格使其不適應軟件風格多樣化的需求。北大青鳥構件模型從三個不同的、相互正交的視角
15、來看待構件,每個具體的構件都是形態(tài)、層次和表示構成的三維空間中的一個點。構件形態(tài)(Form)被分為類(Class)、類樹(Class Tree)、框架(Framework)、設計模式(Design Pattern)、體系結構(Architecture)五種;構件層次被分為分析件(指系統(tǒng)需求規(guī)約和功能規(guī)約)、設計件(指系統(tǒng)體系結構和設計方案)、編碼件(由具體程序設計語言編制的源代碼構件)、測試件(測試計劃和測試案例)四個層次;而構件的表示則與層次有關,不同層次的構件具有不同的表示媒介和手段,如圖形、復合文檔、正文、偽碼、編程語言、目標碼等。根據上述概念,青鳥構件模型從九個方面來描述構件,即概念、
16、操作規(guī)約、接口、類型、實現體、構件復合、構件性質、構件注釋和構件語境。青鳥構件模型是一個具有面向對象(OO)風格的模型。此外,以CORBA、COM/DCOM/COM+和JavaBeans/EJB為代表的基于分布式對象技術的構件實現模型正在向實用化快速發(fā)展,它們對構件的基本構成及其體系結構的演化產生著十分重要的影響。 4構件技術研究的主要特征從國內外關于軟件構件技術研究的最新進展分析,當前構件技術的研究呈現如下主要特征:構件技術研究存在兩種主要的技術路線。一是從構件的基本概念出發(fā),力圖從軟件基本理論與體系結構上實現軟件技術的創(chuàng)新,從根本上解決軟件構件技術問題,并取得了許多研究性成果;
17、但整體上還停留在概念闡述與體系建模的探索性階段,暫時還難以實用。隨著軟件應用技術與計算環(huán)境的演變,特別是分布式對象技術、智能Agent技術和網格計算技術等新研究領域的興起與推進,構件技術的研究也受到一定的影響。二是以分布式對象技術為基礎,充分利用已規(guī)范化和產品化的技術與平臺,在面向對象技術的基礎上,對對象進行擴充,將構件技術與面向對象技術融合,以期使構件技術在市場推動下不斷成熟與發(fā)展。這一路線的研究與開發(fā)主要表現為市場主流廠商在自己產品中加入“構件元素”,形成具有某些構件特征的產品與企業(yè)技術標準或規(guī)范。為了推進這些產品的不斷改進,并使新技術應用不至于帶來新的封閉與市場壟斷,需要建立相應的國際化
18、技術標準與規(guī)范。OMG的CORBA 3.0及其CCM構件模型是最新發(fā)布的一套通用規(guī)范,但至今宣布支持這一規(guī)范的廠商還不多。組裝是構件技術研究的核心。構件從生產、流通到應用的各個環(huán)節(jié)中,如何將構件組裝成應用系統(tǒng),是每個環(huán)節(jié)都需要考慮的核心問題。目前,構件組裝技術主要分為“黑”、“白”、“灰”三個層次。由于構件組裝實現的特性,特別是領域應用的實際需要,“灰盒子”組裝技術是研究與開發(fā)的重點。但是,如何提高構件在組裝方面的靈活性,雖然有不少有益的探討,但仍缺少系統(tǒng)且具有領域應用背景的柔性組裝機制研究。構件技術的研究正在與其它軟件技術研究相融合。隨著Internet技術、中間件技術、Web Service等技術研究的興起,業(yè)界對軟件復用的認識更加趨于多元化。但在這些新興技術研究中,卻充滿了構件技術的概念,并將利用構件技術提高軟件復用水平的基本思想貫穿始終。這一系列的研究從另一個層面推進了構件技術的研究,同時對構件技術研究提出了更加迫切而明確的需求。另一方面,軟件體系結構的研究也大量涉及了構
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分配生考試數學試卷
- 高二上冊期末數學試卷
- 2025年04月山東工商學院校醫(yī)院臨床醫(yī)師(省屬高校事業(yè)編制)招聘筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 2025至2030吹風機行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 廣東初中期末數學試卷
- 中藥材種植技術培訓與中藥材市場分析研究考核試卷
- 乳粉生產質量管理中的質量信息共享與溝通平臺搭建考核試卷
- 體育賽事觀眾互動的線上線下融合模式考核試卷
- 辦公自動化系統(tǒng)調度系統(tǒng)的實時性優(yōu)化技術考核試卷
- 高中理科必修三數學試卷
- 2024年江蘇省徐州市保安員證考試題庫及答案()
- 2025年江西省中考數學試卷真題(含標準答案)
- 2025年物聯網技術在智能養(yǎng)老中的老人健康監(jiān)測與生活服務保障報告
- 天臺保安考試題及答案
- 2025年高考全國二卷英語高考真題含解析
- 2024年民族出版社招聘事業(yè)編制專業(yè)技術人員真題
- 2025年食品安全管理員考試試題及答案
- 2025-2030骨科植入器材產業(yè)市場深度分析及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 陜西省西工大附中第二次2025屆數學八下期末考試試題含解析
- 2025年中央八項規(guī)定精神學習教育應知應會考試題庫(含答案)
- 建立有效的風險管理體系試題及答案
評論
0/150
提交評論