基于構件的軟件復用技術研究與應用實踐_第1頁
基于構件的軟件復用技術研究與應用實踐_第2頁
基于構件的軟件復用技術研究與應用實踐_第3頁
基于構件的軟件復用技術研究與應用實踐_第4頁
基于構件的軟件復用技術研究與應用實踐_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

歐陽陽理創編 歐陽陽理創編 2021.03.04歐陽陽理創編 歐陽陽理創編 2021.03.04基于構件的軟件復用技術研究與應用實踐時間:2021.03.05創作:歐陽理基于構件的軟件復用技術研究谷今杰莫繼紅((湖南大學軟件學院,長沙410082)通常情況下.應用軟件系統的開發過程包含以下幾個階段:需求分析、設計、編碼、測試、維護等。當每個應用系統的開發都是從頭開始時,在系統開發過程中就必然存在大量的重復勞動,如:用戶需求獲取的重復、需求分析、編碼、測試的重復和文檔等。探討應用系統的本質,發現其中通常包含:①通用基本構件:是特定于計算機系統的構成成分,如基本的數據結構、用戶界面元素等,它們可以存在于各種應用系統中;②領域共性構件:是應用系統所屬領域的共性構成成分,它們存在于該領域的各個應用系統中,③應用專用構件:是每個應用系統的特有構成成分。應用系統開發中重復勞動主要在于前兩類構成成分的重復開發。軟件復用是在軟件開發中避免重復勞動的解決方案。其出發點是應用系統的開發不再采用一切“從零開始”的模式,而是以已有的工作為基礎,充分利用過去應用系統開發中積累的知識和經驗,如:需求分析結果、設計方案、源代碼、測試計劃及測試案例等.從而將開發的重點集中于應用的特有構成成分。通過軟件復用,在應用系統開發中可以充分利用已有的開發成果.消除了包括分析、設計、編碼、測試等在內的許多重復勞動,從而提高了軟件開發的效率:同時,通過復用高質量的已有開發成果時,避免了重新開發可能引入的錯誤,從而提高軟件的質量。軟件復用指重復使用“為了復用目的而設計的軟件”的過程。相應地,可復用軟件是指為了復用目的而設計的軟件。與軟件復用的概念相關,重復使用軟件的行為還可能是重復使用“并非為了復用目的而設計的軟件”的過程,或在一個應用系統中的不同版本間重復使用代碼的過程,這兩類行為都不屬于嚴格意義上的軟件復用。真正的復用是為了支持軟件,使用“為復用而開發的軟件(構件)”來更快、更好地開發新的應用系統。復用技術在整體上對軟件產業的影響卻并不盡如意。這是由于技術方面和非技術方面的種種因素造成的,其中技術上的不成熟是一個主要原因。近十幾年來,面向對象技術出現并逐步成為主流技術,為軟件復用提供了基本的技術支持。軟件復用研究重新成為熱點。被視為解決軟件危機。提高軟件生產效率和質量的現實可行途徑。(復用分類)軟件復用可以從多個角度進行考察。依據復用的對象,可以將軟件復用分為產品復用和過程復用。產品復用指復用已有的軟件構件.通過構件集成(組裝)得到新系統。過程復用指復用已有的軟件開發過程.使用可復用的應用生成器來自動或半自動地生成所需系統。過程復用依賴于軟件自動化技術的發展,目前只適應于一些特殊的應用領域。產品復用是目前現實的、主流的途徑。依據對可復用信息進行復用的方式。可以將軟件復用區分為黑盒(Black—box)復用和白盒(亞卜證一box)復用。黑盒復用指對已有構件不需作任何修改,直接進行復用。這是理想的復用方式。白盒復用指已有構件并不能完全符合用戶的需求。需要根據用戶需求進行適應性修改后才使用。而在大多數應用的組裝過程中,構件適應性修改是必需的。軟件復用按抽象程度的高低,可以劃分為如下的復用級別:(1)代碼的復用,包括目標代碼和源代碼的復用。當前大部分編程語言的運行支持系統都提供了連接(Link)、綁定^^跡)等功能來支持這種復用;(2)設計的復用,設計結果比源程序的抽象級別更高,因此它的復用受到實現環境的影響較少,從而使可復用構件被復用的機會更多,并且所需的修改更少;(3)分析的復用,可復用的分析成分是針對問題域的某些事物(問題)的抽象程度更高的解法。軟件復用有三個基本問題.一是必須有可一是必須有可以復用的對象。二是所復用的對象必須是有用的。三是復用者需要知道如何去使用被復用的對象。軟件復用包括兩個相關的過程:可復用軟件(構件)的開發(Development,for區03?)和基本可復用軟件(構件)的應用系統構造(集成和組裝)(DevelopmentwithReuse)。解決好這幾個方面的問題才能實現真正成功的軟件復用。2構件技術2.1構件技術模型構件復用是軟件復用的核心問題,因此有關構件的研究得到日益重視并且形成了軟件工程學科的一個分支。在產業界正在逐漸形成一種產業模式,即構件生產商負責生產構件,構件銷售商負責構件的銷售,構件集成商負責構件集成。目前已經商品化的構件有微軟的COM/DCOM、5口口公司的Java8?2口和對象管理組織(OMG)的CORBA。構件是一種不透明的功能實現.要通過構件模型進行構造,要能夠與第三方進行合成,這樣就存在構件模型標準化的問題。構件模型的標準化要能同時滿足構件生產者和構件消費者需求,學術界普遍接受的是“3C”(Concept,Content,Context)模型[2],即component=(Concept,Content,Context),在這個模型中:Concept:概念,描述軟件完成什么功能。描述構件的接口和語義,概念和內容9。成。出)能夠進行通信;Content:內容,描述如何實現這個構件,一般情況下,構件的內容信息對臨時用戶是隱藏的。只有需要對構件作修改的用戶才是可知的;Context:上下文、組件在其適用領域內的配置,通過對概念、操作和實現特征的詳細說明。上下文能夠使軟件尋找到滿足應用需求的組件。2.2構件的開發構件的開發技術有多種,其中比較有代表性的是CBSD技術。CBSD是CMU/SEI提出的構件設計參考模式,送種設計模式的原則是:組件具的擴充獨立性:組件模型必須給出一些標準以保證獨立開發的組件能夠配置到公共的環境中,而不會出現不可預知的問題;開發時間短,這樣會減少整個開發和維護費用;提高可預知性。基于構件的系統來源于基于構件的設計策略,構件技術包括支持這種設計策略的產品的概念,這種設計策略與組件描述的設計模式和交互模式的構造類型非常相近,組件(即構件)反映的設計模式如圖1。圖1中,①構件實現是能夠在物理或者邏輯設備中執行的軟件實現。一個構件可以有一個或者多個接口②。構件滿足一定的規范,這里稱為契約,這些契約的作用是保證獨立開發的構件符合給定的規則,以便以可預知的方式進行交互并配置到標準的建造環境和運行環境④中。基于構件的系統是建立在少數不同的構件類型上。每一個構件的類型在⑤中扮演的一個特定的角色,由接口②對其進行描述。構件模型⑥是組件類型、接口和組件間相互作用的模式說明書集合。構件構架⑦提供多種服務⑧來支持和加強構件模型。3815構件當前的軟件已不再是一個簡單的系統.規模越來越大,通常是一復雜的“系統中的系統”。大型軟件尤其如此,從頭開始做每一件事情來建造系統幾乎是不可能的。于是出現了COTS(CommercialOffTheShelf)技術。COTS構件是從市場上采購得到的軟件組件,它由第三方開發。系統開發者不能訪問源代碼,相同的COTS構件可能有很多用戶最后才能得到健壯的系統。C0碼構件有以下的特征:COTS軟件不能被修改,這是COTS軟件的固有特性,系統集成者購買組件后,不需要對構件作修改:有時為了把所有的構件進行了太多的修改就不再被認為是COTS組件了;系統集成者對COTS構件沒有升級和維護控制權,軟件升級和維護是COTS組件開發者的職責。依據COTS組件在系統中所起的作用不同。COTS分為兩類:一類是一個COTS系統中,不是單一的COTS構件支配整個系統,而是由一組綁定在一起構成的;另一類是在COTS解決方案中。使用一個主COTS構件作為主解決方案。其他的傳統的構件作為輔助的軟件或者插件加入到系統中。使用COTS構件突出的優點是能降低軟件開發的成本,購買現有的軟件比自己開發所需的成本低,軟件的健壯性要高,因為市場上提供的COTS軟件使用的是成熟的技術,使用這樣的構件往往比自己開發的構件的可靠性要高。但是COTS構件的缺點是以“黑盒”提供給用戶,沒有源代碼,維護困難,版本易于變化。不同COTS之間存在潛在的沖突。軟件構件提供的功能過少或者過多。4基于八8。出的軟件復用技術人且。出也被稱為軟件八8。出或智能Agent,許多研究人員依據不同的研究內容和目標對術語“八8。出”賦予了不同含義。Woodridge/Jennings對“八8。出”的不同定義進行了總結,認為“八8。出”按其用法可分為兩種,也就是八8。成的兩種定義[3]:弱定義和強定義。人8。出的弱定義是指八8。出具有的自主性、社會性、反應性、能動性、時間連續性以及面向目標的特性。Agent強定義指八8。出除了具有弱定義中的特性以外,通常還具有:可移動性、理性、適應性、協作性。面向對象技術用于對被動實體的抽象較好。但是,它無法實現對活動實體的抽象;而八8。出技術能夠較好地實現對活動實體的抽象。基于八8。出的軟件復用是軟件工程的一個新的研究領域,面向Agent編程AOP(Agent一OrientedProgramming)的概念是Shoham在1993年提出的。因此,軟件技術的發展經歷00(ObjectOriented)<^后。并正在Agent技術方向發展。人工智能專家Guilfoyle在1995年就斷言:10年后大多數新興信息技術的發展將接受:Agent理論與技術手段是解決2l世紀系統建模和網絡化協同的重要手段【4】。基于構件的復用必須解決的需求有:用戶能對所需要的構件進行搜索;需要有對已有復用該構件的用戶版本進行升級機制;對應用該組構件生產商和用戶提供一種能夠用相同的技術語言交流的工具;構件生產者和構件復用者可以靈活地加入系統和從系統中撤銷;1出01口?1上基于構件復用的工具一定是復用者和生產者的環境的集成的部分。要滿足以上需求。基于組件復用的軟件開發過程實際上成為被多人8。出系統理解和操作的過程,這里稱為“面向八8。出的軟件復用”。其基本思想是:在可復用的通用多人8。出機構中,對Agent結構中的每一個元素都進行定義,這些元素包括八8。出需要的知識、計劃、行為和人8。出之間的交互等,每一個具體人8。成都是在基本Agent結構的基礎上進行創建。1出?1口01環境下基于Agem的軟件復用的一般結構如圖2所示。依據上述結構,構建基于構件的軟件復用的多Agent系^結構時,必須要考慮的因素有:選用哪幾種類型的Agent,多人80成人分工與協作,Agent知識庫的建立等。構建的方法和步聚包括:識別Agent,對任務進行提煉,定義本體(0成。1。8丫),定義行為計劃,表示行為和定義交互作用,構造原型。使用」@丫2的區1乂能夠很好地實現通訊模塊的功能,這種結構中需要對每一個實例化的Agent定義必需的知識。這些知識概括為:計劃、行為、與其他Agent的交互等。5結論不同的復用技術,得到復用構件或軟件的粒度大小不一樣,其設計方法和模式也不一樣。比較常用和成熟的是構件復用。對于大型系統需要更大粒度的軟件復用一COTS,但其缺點是不能訪問源代碼,在1出。[口。1環境下,本人提出了基于八8。出的軟件復用和方法由八8。出在網絡環境下自主地進行構件的尋找和匹配,實現軟件的復用。軟件復用是解決軟件危機的有效途徑,促進了軟件向產業化和健康化的方向發展。參考文獻1楊美清.軟件復用及其相關技術.計算機世界.1990—03—15:(5)2TveitA.Asurveryofagent-orientedsoftwareengineering.http://www.eleomag.corn/around/2003.5齊艷平,面八8。出與面向對象,計算機科學SyearaKDeskerK,PannuA.eta1.Distributedintelligentagents.http://www.cs.eemu.Edu/softanents/.1996SommervileLSoftwareengineering(4thed).Mass:Addison-Wesley,Reading,1992GiorginiP,KolpM,MylopoulosJ.Multi-agentandsoftwareagentandsoftwarearchitecture:acomparativecasestudy.http://www.cs.Toronto.end,2003;4NwosuIC.Workshoponcomponetbasedsoftwareengineeringprocesses.http://www.11WOU.net/papem,2002.5JenningsNR.Aroadmapofagentaresearshanddevelopment.http://citeseer.ni.nec.eom/Jennings98roamp.htral,2003;10基于構件的軟件復用技術應用研究武偉,張明新(1.西北師范大學數學與信息科學學院,甘肅蘭州730070;2.山西大同大學數學與計算機科學學院,山西大同037009)2軟件復用的核心技術構件(Component)是指應用系統中可以明確辨識的構成成分,而可復用構件(ReusableComponent)是指具有相對獨立的功能和可復用價值的構件,軟件構件技術(5。仕亞2[。ComponentTechnology)是支持軟件復用的核心技術,是近幾年來迅速發展并受到高度重視的一個學科分支.其主要研究內容如下:2.1建立構件庫簡單來說,構件庫是一個對軟件構件統一進行形式化包裝、分類描述、存儲管理、檢索瀏覽的場所.軟件構件庫是大范圍內、系統化實施軟件復用的必備基礎設施.要復用軟件構件有兩個前提條件,一是所需的構件已經存在,二是復用者能方便地找到所需的構件.由于軟件構件蘊涵了大量的信息,對其準確、簡潔地描述極其困難,如果沒有一個統一的場所對其進行統一的描述包裝,大規模的軟件復用是不可能實現的,所以建立大規模的公共構件庫是必須的.建立自己的構件庫是實現復用的基礎,可獲取的構件有公共構件和商業構件,前者質量無法保障,必須對構件進行測試;后者不能修改源碼,只能是黑盒使用.此外,可以自己開發一些簡單的構件.這樣通過不同途徑不斷的積累自己的軟構件庫,開發的復用率會逐漸提高.2.2構件分類對于一個應用系統通常包插1類成分:1)通用基本構件:是特定于計算機系統的構成成分,如基本數據結構、用戶界面元素等,它們可以存在于各種應用系中;2)領域共性構件:是應用系統所屬領域的共性構成成分,它們存在于該領域的各個應用系統中;3)應用專用構件:是應用系統的特有構成成分.應用系統開發中的重復勞動主要在于前兩類構成成分重復開發.其中通用基本構件層為底層,整個集成環境和運行環境都使用的構件,通用性好,粒度最小,可廣泛復用,屬于黑盒復用;領域共性構件完成系統主要功能,但通用性不如前者,大部分使用前須進行修改和測試,復用方式屬于白盒復用.2.3構件管理構件庫隨著規模的擴大和應用時間的增長,構件的管理難度也越來越大,作者設計一管理工具,在此管理工具中對入庫構件需登記以下信息:構件名稱、構件序號、制作日期、修改日期、功能分類、功能描述、使用環境、構件名稱、版本、保存位置和復用次數.管理工具提供了添加、刪除、修改、檢索、統計等功能,實現了構件的系統管理,通過該工具對構件進行管理基本解決了構件保存、版本和篩選的問題,提高了軟件復用的效率.2.4構件組裝構件的組裝指將構件庫中或能直接使用的構件,或經過適應性修改后的構件以及為當前項目新開發的構件進行整合,最終構成新的目標軟件的過程.基于構件的開發通過構件組裝得到最終應用系統,構件組裝必須以某個框架或架構為藍圖,實際可以看作是用構件實例將軟件構架具體化的過程.構件組裝技術以構件模型、構件一構架描述盒開放系統技術為基礎,成功的組裝必須以開放構件模型和規范的構件描述(包括對構件連接和交互協議的嚴格定義)為基礎,構件實例必須符合系統中其他部分的要求.分布式軟件總線、事件登記和回調、構架描述語言、腳本語言和代碼生成技術都為架構組裝指出了希望之路;DCO,1@丫@8?@口等運行級的分布式構件模型的出現和0區3與1出。[口。1的引入,是構件之間的獨立性和互操作性變得更強,這些技術為構件組裝,尤其是運行級的構件組裝提供了有力的支持.2.5構件標準化構件模型的標準化和構件庫系統的標準化.3基于構件的軟件開發基本思想基于構件軟件開發方法的思路是借鑒傳統工業生產模式,首先是分析消費者需求,設計整體結構框架,根據需要到構件庫中選擇能完成相應功能的構件,之后組裝應用系統.如果所需構件不存在,就去購買、定制或自行開發新構件.構件生產組和系統開發組問嚴格按照生產者一消費者關系進行任務分工:經驗工廠負責生產、提供構件,項目組不再編程,而是通過從經驗工廠中請求所需的構件集成組裝而得到最終所需的系統.經驗工廠的活動分為同步活動和異步活動.同步活動指配合項目組的活動,接收構件查找請求或定制請求,為項目組服務.異步活動指有目的的構件生產或對同步活動中的構件進行再工程以提高構件的可復用性.4軟件復用技術的應用作者【本文】把軟件復用技術應用在管理信息系統中,簡介如下:4.1系統分析管理信息系統(乂6)包括以下模塊:1)信息管理模塊.實現各類信息的添加、刪除、修改、審核等功能;2)信息查詢模塊.實現對各類數據信息的查詢功能;3)信息輸出模塊.實現數據的顯示,報表生成和打印功能;4)用戶管理模塊.實現對各類用戶信息的輸入、修改、刪除和用戶權限分配功能以及用戶相關信息統計功能;5)部門管理模塊.實現各個部門管理的分配、修改,新部門的添加以及老部門的更新功能;6)訪問統計模塊.實現系統訪問次數的統計,包括日訪問量、周訪問量、月訪問量和年訪問量,對來訪的用地址進行統計,并提供查詢功能;7)異常處理模塊,異常處理模塊繼承了」@丫@自身的異常處理類實現了對自定義異常的處理.4.2軟件復用技術在系統中的應用MIS主要是利用已有構件組合集成生成軟件產品,它的開發過程與傳統方法不同,大體分為以下幾個階段:1)需求分析和構件的查找.首先要對業務需求進行分析,然后提煉出需要的構件,最后對構件進行檢索;2)構件的裁剪.有些構件不能直接使用,須對其進行擴張或者修改;3)構件的生成.裁剪后得到的構件和新開發的構件,都必須在構造應用工具上進行測試,保證構件功能及接口規范的實現,稱之為構件的生成;4)構件的組裝.構件的組裝是把構件裝配成一個整體.我們需要用開發工具制作一個應用框架,這個框架是整個應用系統的一個骨架,這個骨架在設計時可以通過領域分析方法設計成在某一領域可復用的構架.在乂^中底層的通用基本構件包括基本界面以及常用菜單,這些構件不需要修改直接就可以應用到系統中;報表生成、打印、數據庫連接池、異常處理和訪問統計這些領域共性構件無需修改,幾乎每個系統都能用到;信息、部門和用戶的添加構件、刪除構件、修改構件以及查詢構件等領域共性構件實現系統的主要功能,根據應用的不同,需進行修改和調試才能復用.用戶權限分配對不同的應用系統差別較大,是應用系統的特有構成成分,是應用專用構件,需結合應用重新開發.可見隨著構件層次的升高,構件的功能越來越強,通用性也越來越差.由于應用系統的多樣性,有些功能無法用構件實現,可將其制成專用構件,與復用構件一起集成到應用框架.參考文獻『1】楊芙清,梅宏,李克勤.軟件復用與軟件構件技術口】,電子學報,1999,27(2):68—75,[2]李海東,楊社堂,C/S模式應用開發中軟件復用的研究口],太原理工大學學報,2006,37(S1):117—118,【3】張春枝,王弘,基于C/S與B/W/S混合模式的乂6系統設計[1】,計算機應用研究,2001(10):123—125,[4]黎婭,基于構件的軟件復用技術應用研究[0],重慶:重慶大學計算機科學與技術學院,2008,【5]PeadBrereton,DavidBudgen,Component-BasedSystems,

溫馨提示

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

評論

0/150

提交評論