第14章 基于構件的軟件開發_第1頁
第14章 基于構件的軟件開發_第2頁
第14章 基于構件的軟件開發_第3頁
第14章 基于構件的軟件開發_第4頁
第14章 基于構件的軟件開發_第5頁
已閱讀5頁,還剩52頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件工程第14章基于構件的軟件開發2/57基于構件的軟件開發目標長期以來的軟件開發狀況多數軟件都是針對某個具體的應用系統從頭進行開發的導致:出現了大量的同類軟件重復開發,造成大量人力、財力的浪費,而且軟件的質量也不高對比:汽車工業的生產模式在已有的部件基礎上通過組裝進行生產:有專門的部件生產工廠,汽車設計者在設計中選擇市場上已有的合適的部件避免了大量的重復勞動,提高了產品質量和生產效率,促進分工合作我們的目標:將制造業中的組裝式生產模式引入到軟件開發中3/57內容摘要基于構件的軟件開發概述建造可復用構件應用系統工程構件的管理小結4/57內容摘要基于構件的軟件開發概述建造可復用構件應用系統工程構件的管理小結5/57基于構件的軟件開發基于構件的軟件開發Component-BasedSoftwareDevelopment簡稱CBSD是指使用可復用構件來開發應用軟件基于構件的軟件工程Component-BasedSoftwareEngineering簡稱CBSE6/57構件(Component)的典型定義Pressman書中的定義:構件是某系統中有價值的、幾乎獨立的并可替換的一個部分,它在良好定義的體系結構語境內滿足某清晰的功能Brown的定義:構件是一個獨立發布的功能部分,可以通過其接口訪問它的服務7/57構件(Component)的典型定義“計算機科學技術百科全書”的定義:軟件構件是軟件系統中具有相對獨立功能,可以明確標識,接口由規約指定,與語境有明顯依賴關系,可獨立部署,且多由第三方提供的可組裝軟件實體;軟件構件須承載有用的功能,并遵循某種構件模型;可復用構件是指具有可復用價值的構件8/57商用成品構件Commercialoff-the-shelf簡稱COTS指由第三方開發的滿足一定構件標準的,可組裝的軟件構件9/57構件的要素(1)規格說明:建立在接口概念之上,作為服務提供方與客戶方之間的契約(2)一個或多個實現:一個構件在符合規格說明的前提下,可以有一個或多個實現,例如,不同編程語言或不同算法的實現。10/57構件的要素(3)受約束的構件標準:由于不同的構件其實現的程序語言可能不同,運行環境也可能不同,因此,構件必須符合某種標準,才能支持異構構件間的互操作。(4)包裝方法:構件可以按照不同的方式分組(稱為包)來提供一套可替換的服務。11/57構件的要素(5)部署方法:一個成品構件安裝在運行環境中,通過創建構件的可執行實例,并允許與他們進行交互來實現部署。構件描述模型構件模型:關于構件本質特征的抽象描述。3C模型REBOOT模型12/5713/573C構件模型關于構件的一個指導性模型由構件的三個不同方面的描述組成概念(concept):關于“構件做什么”的抽象描述,可以通過概念去理解構件的功能。概念包括接口規約和語義描述兩部分,語義描述和每個操作相關聯(至少表示為前后置謂詞形式)內容(content):概念的具體實現,描述構件如何完成概念所刻畫的功能周境(context):描述構件和外圍環境在概念級和內容級的關系,刻畫構件的應用環境,為構件的選用和適應性修改提供指導14/57REBOOT構件模型REBOOT(ReuseBasedonObject_OrientedTechnology):基于面向對象技術的復用一種基于刻面(facet)的模型刻面:對領域進行分析,所得到的一組基本的描述特征刻面可以描述構件執行的功能、所操作的數據、構件應用的周境或任何其它特征通常的刻面描述限制在不超過7或8個刻面一個構件通常包括以下刻面:抽象(abstraction):它是構件概念的抽象性描述操作(operation):它是構件所提供的操作的描述操作對象(operand):它描述操作的對象依賴(dependency):它描述構件與外界的依賴關系15/57常用的構件標準CORBA(公共對象請求代理體系結構)CommonObjectRequestBrokerArchitectureOMG發布的構件標準核心是ORB(ObjectRequestBroker),定義了異構環境下對象透明地發送請求和接收響應的基本機制COM+微軟開發的一個構件對象模型,提供了在運行于Windows操作系統之上的單個應用中使用不同廠商生產的對象的規約EJB:一種基于Java的構件標準提供了讓客戶端使用遠程的分布式對象的框架EJB規約規定了EJB構件如何與EJB容器進行行交互16/57基于構件的軟件開發過程17/57領域工程步驟-1領域分析:首先要進行領域分析,收集領域中有代表性的應用樣本,分析應用中的公共部分或相似部分,抽取該領域的應用體系結構建立領域特定的基準體系結構模型:在領域分析的基礎上,構造該領域的基準體系結構,這個基準體系結構應是可以裁剪和擴充的,并可供該領域的應用復用18/57領域工程步驟-2標識候選構件:在領域分析和領域基準體系結構模型的基礎上標識該領域的候選構件泛化(generalization)和可變性(variability)分析:提高其通用性,同時尋找候選構件在不同應用中的變化點(variationpoint),通過設置參數、繼承或其它手段,使可變部分局部化19/57領域工程步驟-3重建構件:在泛化和可變性分析的基礎上,重建構件,使它成為可復用構件構件的測試:對重建的可復用的構件要嚴格測試,以提高其可靠性20/57領域工程步驟-4構件的包裝:經測試的構件應根據構件庫的要求,對它進行包裝,以便構件庫對它分類儲存和檢索構件入庫:包裝后的構件即可存入構件庫21/57應用系統工程的步驟-1建立應用系統的體系結構模型:可以使用構件生產者提供的領域特定的基準體系結構經裁剪和/或擴充而獲得尋找候選構件:根據應用系統的體系結構模型,從構件庫或其它可利用的構件源中尋找候選構件22/57應用系統工程的步驟-2評價和選擇合適的構件:評價候選構件以判斷是否適合于待開發的軟件構件的修改(modify)和特化(specialize):在復用時對構件進行特化以滿足特定應用的需要23/57應用系統工程的步驟-3開發未被復用的部分:對新系統中未復用的部分進行開發構件的組裝:將特化和修改后的可復用構件和新開發的部分組裝成一個新的軟件系統24/57應用系統工程的步驟-4集成測試:對組裝后的軟件系統進行集成測試評價被復用的構件,并推薦可能的新構件25/57CBSD對質量、生產率和成本的影響對質量的影響:隨著長期的測試和使用,構件能夠保證很高的質量,因此可以使系統開發的質量得到保證26/57CBSD對質量、生產率和成本的影響對生產率的影響:一般來說,大約30%~50%的復用可使生產率提高25%~40%27/57CBSD對質量、生產率和成本的影響對成本的影響與復用相關的成本應由多個采用復用技術的項目來分擔通常要經過2~3個采用復用的生產周期(大約3年左右)復用才能帶來顯著的效益28/57內容摘要基于構件的軟件開發概述建造可復用構件應用系統工程構件的管理小結29/57建造可復用構件建造構件的目的是為了以后復用構件,即為復用而建造構件在建造構件時仍應遵循抽象、逐步求精、信息隱蔽、功能獨立、結構化程序設計等思想和原則由于面向對象方法具有封裝性、繼承等特點,能有力地支持復用,所以應盡可能考慮采用面向對象方法30/57對可復用構件的要求構件的設計應具有較高的通用程度構件應易于調整構件應易于組裝構件必須具有可檢索性構件必須經過充分的測試31/57創建領域構件的設計框架除應遵循已有的設計概念和原則外,還必須考慮應用領域的特征,例如:標準數據:應該研究應用領域,并標識出標準的全局數據結構(如文件結構或完整的數據庫)。于是所有設計的構件都可以用這些標準數據結構來刻畫標準接口協議:應該建立三個層次的接口協議:構件內(intramodular)接口、構件外接口以及人機接口程序模板:程序的結構模型可以作為新程序的體系結構設計的模板32/57可變性分析構件應具有較強的通用性和可變性為了滿足不同的復用需求,需要在構件復用時可能發生變化的一個或多個位置上標識變化點(variationpoint),同時為變化點附加一個或多個變體(variant)例如Account構件的帳號編碼規則以及透支規則在不同的國家可能不一樣·VP1·VP2CVP1descriptioncontext33/57

構件系統中的門面和變體34/57可變性機制繼承:在變化點上創建指定抽象類型或抽象類的子類型或子類。擴展和擴展點:可以在用況和對象構件中的變化點(或擴展點)上附加變體(或擴展)參數化:用于模板、框架和宏的類型和類適用于變體較小時(經常是一個數值、短語或表達式)35/57內容摘要基于構件的軟件開發概述建造可復用構件應用系統工程構件的管理小結36/57應用系統工程任務:通過組裝可復用構件得到應用系統CBSD中構件是組成應用系統的基本單元注重體系結構和構件接口的分析和設計,忽略構件內部實現的設計37/57關注接口的設計接口是構件行為的描述機制,并提供了對其服務的訪問供應接口(Providedinterface):描述構件所提供的服務,可以被其它構件訪問請求接口(requivedinterface):請求接口描述構件為完成其功能(服務)需請求其它構件為其提供的服務一個接口可以有多種實現,并且對使用者隱蔽接口描述是構件使用者能依賴的所有信息,因此構件接口描述的表達能力和完整性是CBSD方法主要關注的問題之一38/57基于構件的體系結構基于構件的應用系統體系結構描述了組成應用系統的構件,構件之間的組織結構、交互、約束和關系對系統的組成、結構以及系統如何工作的較為宏觀的描述如果在領域工程中已開發了領域基準體系結構(referencearchitecture),則可以通過對基準體系結構的剪裁和/或擴充獲得應用系統的體系結構39/57基于構件的體系結構層次邏輯體系結構以接口形式對每組服務進行描述,并描述那些包怎樣交互來滿足通常的用戶使用場景展示了系統設計的藍圖,可用于驗證系統是否提供了適當的功能,并能在系統功能需求變化時方便地改變系統的設計物理體系結構描述系統的物理設計,包括硬件及其拓撲結構、網絡和通信協議、基礎設施(如運行平臺、中間件、數據庫管理系統等),以及軟件系統的部署展示了系統的實現構架,有助于理解系統的許多非功能屬性,如性能、吞吐量、服務的可用性等40/57基于構件的應用系統開發方法Rationel統一過程Rational’sUnifiedProcess,簡稱RUP一個關于軟件開發的廣泛的過程框架,覆蓋了整個軟件生命周期使用UML進行分析和設計建模,鼓勵使用CBSD方法TheSelectPerspectiveMethod支持通用的構件設計方法,并以SelectComponentManager為目標通用構件設計準則使用UML作為構件設計符號SterlingSoftware的Enterprise-CBD方法鼓勵使用UML的擴展形式把構件的規格說明和實現分離允許制作技術中立的規格說明,然后再使用不同的實現技術來實現規格說明共同點:關注構件庫中的構件、接口的設計和基于構件構架的應用程序組裝41/57構件鑒定(qualification)目的:確保獲得的構件可以完成所需的功能并能被集成在系統中與系統的其它構件正確交互主要依據是構件的接口描述和相關的規格說明,但這些信息往往還不足以確保構件能成功地集成到系統中對于外部提供的成品構件(COTS)可通過運行構件測試版進行鑒定42/57構件鑒定需考慮的因素應用編程接口(API)該構件所需的開發和集成工具運行時需求,包括使用的資源(如內存或存儲器)、時間或速度以及網絡協議服務需求,包括操作系統接口和來自其他構件的支持安全特征,包括訪問控制和身份驗證協議嵌入式設計假定,包括特定的數值或非數值算法的使用異常處理43/57構件的特化和組裝構件特化根據應用系統的具體情況對其進行特化,對變化點配置特定的變體,必要時要自行開發變體如果所選的構件不能完全滿足應用系統的功能需求,還需對構件作適當的修改如果所選的構件未按構件標準開發(如遺產系統中抽取的構件)時,還需按某種構件標準對其進行包裝構件組裝將經過鑒定和特化后的構件組裝成應用系統提倡使用構件組裝工具來組裝應用系統(能檢查接口匹配中的錯誤,實現組裝的自動化或半自動化)44/57內容摘要基于構件的軟件開發概述建造可復用構件應用系統工程構件的管理小結45/57構件的管理構件的分類描述對構件庫中的構件進行合理的分類和組織,幫助軟件開發人員方便地找到所需要的構件大多數的研究都建議使用圖書館科學索引方法進行構件分類構件庫管理系統:主要用于構件的儲存、檢索、瀏覽和管理46/57常用的構件分類模式-1枚舉分類(EnumeratedClassification)將構件組織成分類層次結構,構件庫中的構件按某些性質分成若干大類,每個大類又分成若干較小的類,經過若干次分解,形成構件分類的層次結構,實際的構件位于層次結構的最低層,其它層次則表示構件的類或子類枚舉分類模式的分層結構易于理解和檢索,但是,在建立層次結構之前,必須進行領域分析,尋找合適的供分類的性質。屬性—值分類(Attribute_ValueClassification)為所有構件定義一組屬性,每個構件都具有一組屬性值,開發人員通過指定一組屬性值對構件庫檢索與刻面分類方法非常類似,不同點在于:屬性—值分類法對可使用的屬性數量沒有限制;屬性沒有優先級;不使用同義詞47/57常用的構件分類模式-2刻面分類(FacetedClassification)根據一組刻面對構件分類,每個刻面從不同的側面對構件庫中的構件進行分類,并根據重要性設置刻面的優先級每個刻面由一組術語(term)構成,稱之為術語空間(termspace),這些術語通常是描述性的關鍵詞檢索:用戶通過指定一組刻面的術語值尋找匹配的構件使用同義詞詞典(thesaurus)解決用戶指定的術語值與庫中構件所對應的術語值之間的不一致問題評價:具有較好的靈活性,易于加入新的刻面值,比枚舉分類模式易于擴展和修改48/57構件庫管理系統的主要功能構件的分類存儲(即添加構件):根據構件庫的分類模型將入庫的構件儲存在構件庫中構件檢索:從構件庫中檢索出滿足用戶要求或接近用戶要求的構件.構件庫瀏覽:瀏覽庫中的全部或部分構件刪除構件:將不再使用的構件從構件庫中刪去構件使用情況評價:根據用戶使用和檢索構件的反饋意見對構件作出評價,為進一步的改進提供依據49/57構件的描述和檢索構件庫管理系統的兩個關鍵技術直接影響到構件庫檢索的查準率(precision)、查全率(recall)和效率(efficient)常用的構件檢索方法規約匹配:基于有序的謂詞邏輯的匹配,通過謂詞演算公式進行精確匹配,通過邏輯連接符和邏輯量詞進行部分精確匹配特征(signature)匹配:通過接口的定義進行匹配,適用于函數之類的構件術語輪廓匹配:基于構件編目描述語言的匹配,將每一個構件的編目描述作為該構件的一個特征矢量,通過測算矢量的距離進行匹配行為采樣:基于構件測試的匹配,根據測試結果相同的概率進行匹配基于構件技術的系統開發過程模型50/57基于構件技術的系統開發過程模型(1)問題分析階段問題域分析與建模:通過對問題域的抽象,區分出共性問題和變性問題,分析的結果是將問題域進行形式化表示,即建立問題域模

溫馨提示

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

評論

0/150

提交評論