




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程第14章基于構(gòu)件的軟件開發(fā)2/57基于構(gòu)件的軟件開發(fā)目標(biāo)長期以來的軟件開發(fā)狀況多數(shù)軟件都是針對某個具體的應(yīng)用系統(tǒng)從頭進(jìn)行開發(fā)的導(dǎo)致:出現(xiàn)了大量的同類軟件重復(fù)開發(fā),造成大量人力、財力的浪費,而且軟件的質(zhì)量也不高對比:汽車工業(yè)的生產(chǎn)模式在已有的部件基礎(chǔ)上通過組裝進(jìn)行生產(chǎn):有專門的部件生產(chǎn)工廠,汽車設(shè)計者在設(shè)計中選擇市場上已有的合適的部件避免了大量的重復(fù)勞動,提高了產(chǎn)品質(zhì)量和生產(chǎn)效率,促進(jìn)分工合作我們的目標(biāo):將制造業(yè)中的組裝式生產(chǎn)模式引入到軟件開發(fā)中3/57內(nèi)容摘要基于構(gòu)件的軟件開發(fā)概述建造可復(fù)用構(gòu)件應(yīng)用系統(tǒng)工程構(gòu)件的管理小結(jié)4/57內(nèi)容摘要基于構(gòu)件的軟件開發(fā)概述建造可復(fù)用構(gòu)件應(yīng)用系統(tǒng)工程構(gòu)件的管理小結(jié)5/57基于構(gòu)件的軟件開發(fā)基于構(gòu)件的軟件開發(fā)Component-BasedSoftwareDevelopment簡稱CBSD是指使用可復(fù)用構(gòu)件來開發(fā)應(yīng)用軟件基于構(gòu)件的軟件工程Component-BasedSoftwareEngineering簡稱CBSE6/57構(gòu)件(Component)的典型定義Pressman書中的定義:構(gòu)件是某系統(tǒng)中有價值的、幾乎獨立的并可替換的一個部分,它在良好定義的體系結(jié)構(gòu)語境內(nèi)滿足某清晰的功能Brown的定義:構(gòu)件是一個獨立發(fā)布的功能部分,可以通過其接口訪問它的服務(wù)7/57構(gòu)件(Component)的典型定義“計算機科學(xué)技術(shù)百科全書”的定義:軟件構(gòu)件是軟件系統(tǒng)中具有相對獨立功能,可以明確標(biāo)識,接口由規(guī)約指定,與語境有明顯依賴關(guān)系,可獨立部署,且多由第三方提供的可組裝軟件實體;軟件構(gòu)件須承載有用的功能,并遵循某種構(gòu)件模型;可復(fù)用構(gòu)件是指具有可復(fù)用價值的構(gòu)件8/57商用成品構(gòu)件Commercialoff-the-shelf簡稱COTS指由第三方開發(fā)的滿足一定構(gòu)件標(biāo)準(zhǔn)的,可組裝的軟件構(gòu)件9/57構(gòu)件的要素(1)規(guī)格說明:建立在接口概念之上,作為服務(wù)提供方與客戶方之間的契約(2)一個或多個實現(xiàn):一個構(gòu)件在符合規(guī)格說明的前提下,可以有一個或多個實現(xiàn),例如,不同編程語言或不同算法的實現(xiàn)。10/57構(gòu)件的要素(3)受約束的構(gòu)件標(biāo)準(zhǔn):由于不同的構(gòu)件其實現(xiàn)的程序語言可能不同,運行環(huán)境也可能不同,因此,構(gòu)件必須符合某種標(biāo)準(zhǔn),才能支持異構(gòu)構(gòu)件間的互操作。(4)包裝方法:構(gòu)件可以按照不同的方式分組(稱為包)來提供一套可替換的服務(wù)。11/57構(gòu)件的要素(5)部署方法:一個成品構(gòu)件安裝在運行環(huán)境中,通過創(chuàng)建構(gòu)件的可執(zhí)行實例,并允許與他們進(jìn)行交互來實現(xiàn)部署。構(gòu)件描述模型構(gòu)件模型:關(guān)于構(gòu)件本質(zhì)特征的抽象描述。3C模型REBOOT模型12/5713/573C構(gòu)件模型關(guān)于構(gòu)件的一個指導(dǎo)性模型由構(gòu)件的三個不同方面的描述組成概念(concept):關(guān)于“構(gòu)件做什么”的抽象描述,可以通過概念去理解構(gòu)件的功能。概念包括接口規(guī)約和語義描述兩部分,語義描述和每個操作相關(guān)聯(lián)(至少表示為前后置謂詞形式)內(nèi)容(content):概念的具體實現(xiàn),描述構(gòu)件如何完成概念所刻畫的功能周境(context):描述構(gòu)件和外圍環(huán)境在概念級和內(nèi)容級的關(guān)系,刻畫構(gòu)件的應(yīng)用環(huán)境,為構(gòu)件的選用和適應(yīng)性修改提供指導(dǎo)14/57REBOOT構(gòu)件模型REBOOT(ReuseBasedonObject_OrientedTechnology):基于面向?qū)ο蠹夹g(shù)的復(fù)用一種基于刻面(facet)的模型刻面:對領(lǐng)域進(jìn)行分析,所得到的一組基本的描述特征刻面可以描述構(gòu)件執(zhí)行的功能、所操作的數(shù)據(jù)、構(gòu)件應(yīng)用的周境或任何其它特征通常的刻面描述限制在不超過7或8個刻面一個構(gòu)件通常包括以下刻面:抽象(abstraction):它是構(gòu)件概念的抽象性描述操作(operation):它是構(gòu)件所提供的操作的描述操作對象(operand):它描述操作的對象依賴(dependency):它描述構(gòu)件與外界的依賴關(guān)系15/57常用的構(gòu)件標(biāo)準(zhǔn)CORBA(公共對象請求代理體系結(jié)構(gòu))CommonObjectRequestBrokerArchitectureOMG發(fā)布的構(gòu)件標(biāo)準(zhǔn)核心是ORB(ObjectRequestBroker),定義了異構(gòu)環(huán)境下對象透明地發(fā)送請求和接收響應(yīng)的基本機制COM+微軟開發(fā)的一個構(gòu)件對象模型,提供了在運行于Windows操作系統(tǒng)之上的單個應(yīng)用中使用不同廠商生產(chǎn)的對象的規(guī)約EJB:一種基于Java的構(gòu)件標(biāo)準(zhǔn)提供了讓客戶端使用遠(yuǎn)程的分布式對象的框架EJB規(guī)約規(guī)定了EJB構(gòu)件如何與EJB容器進(jìn)行行交互16/57基于構(gòu)件的軟件開發(fā)過程17/57領(lǐng)域工程步驟-1領(lǐng)域分析:首先要進(jìn)行領(lǐng)域分析,收集領(lǐng)域中有代表性的應(yīng)用樣本,分析應(yīng)用中的公共部分或相似部分,抽取該領(lǐng)域的應(yīng)用體系結(jié)構(gòu)建立領(lǐng)域特定的基準(zhǔn)體系結(jié)構(gòu)模型:在領(lǐng)域分析的基礎(chǔ)上,構(gòu)造該領(lǐng)域的基準(zhǔn)體系結(jié)構(gòu),這個基準(zhǔn)體系結(jié)構(gòu)應(yīng)是可以裁剪和擴充的,并可供該領(lǐng)域的應(yīng)用復(fù)用18/57領(lǐng)域工程步驟-2標(biāo)識候選構(gòu)件:在領(lǐng)域分析和領(lǐng)域基準(zhǔn)體系結(jié)構(gòu)模型的基礎(chǔ)上標(biāo)識該領(lǐng)域的候選構(gòu)件泛化(generalization)和可變性(variability)分析:提高其通用性,同時尋找候選構(gòu)件在不同應(yīng)用中的變化點(variationpoint),通過設(shè)置參數(shù)、繼承或其它手段,使可變部分局部化19/57領(lǐng)域工程步驟-3重建構(gòu)件:在泛化和可變性分析的基礎(chǔ)上,重建構(gòu)件,使它成為可復(fù)用構(gòu)件構(gòu)件的測試:對重建的可復(fù)用的構(gòu)件要嚴(yán)格測試,以提高其可靠性20/57領(lǐng)域工程步驟-4構(gòu)件的包裝:經(jīng)測試的構(gòu)件應(yīng)根據(jù)構(gòu)件庫的要求,對它進(jìn)行包裝,以便構(gòu)件庫對它分類儲存和檢索構(gòu)件入庫:包裝后的構(gòu)件即可存入構(gòu)件庫21/57應(yīng)用系統(tǒng)工程的步驟-1建立應(yīng)用系統(tǒng)的體系結(jié)構(gòu)模型:可以使用構(gòu)件生產(chǎn)者提供的領(lǐng)域特定的基準(zhǔn)體系結(jié)構(gòu)經(jīng)裁剪和/或擴充而獲得尋找候選構(gòu)件:根據(jù)應(yīng)用系統(tǒng)的體系結(jié)構(gòu)模型,從構(gòu)件庫或其它可利用的構(gòu)件源中尋找候選構(gòu)件22/57應(yīng)用系統(tǒng)工程的步驟-2評價和選擇合適的構(gòu)件:評價候選構(gòu)件以判斷是否適合于待開發(fā)的軟件構(gòu)件的修改(modify)和特化(specialize):在復(fù)用時對構(gòu)件進(jìn)行特化以滿足特定應(yīng)用的需要23/57應(yīng)用系統(tǒng)工程的步驟-3開發(fā)未被復(fù)用的部分:對新系統(tǒng)中未復(fù)用的部分進(jìn)行開發(fā)構(gòu)件的組裝:將特化和修改后的可復(fù)用構(gòu)件和新開發(fā)的部分組裝成一個新的軟件系統(tǒng)24/57應(yīng)用系統(tǒng)工程的步驟-4集成測試:對組裝后的軟件系統(tǒng)進(jìn)行集成測試評價被復(fù)用的構(gòu)件,并推薦可能的新構(gòu)件25/57CBSD對質(zhì)量、生產(chǎn)率和成本的影響對質(zhì)量的影響:隨著長期的測試和使用,構(gòu)件能夠保證很高的質(zhì)量,因此可以使系統(tǒng)開發(fā)的質(zhì)量得到保證26/57CBSD對質(zhì)量、生產(chǎn)率和成本的影響對生產(chǎn)率的影響:一般來說,大約30%~50%的復(fù)用可使生產(chǎn)率提高25%~40%27/57CBSD對質(zhì)量、生產(chǎn)率和成本的影響對成本的影響與復(fù)用相關(guān)的成本應(yīng)由多個采用復(fù)用技術(shù)的項目來分擔(dān)通常要經(jīng)過2~3個采用復(fù)用的生產(chǎn)周期(大約3年左右)復(fù)用才能帶來顯著的效益28/57內(nèi)容摘要基于構(gòu)件的軟件開發(fā)概述建造可復(fù)用構(gòu)件應(yīng)用系統(tǒng)工程構(gòu)件的管理小結(jié)29/57建造可復(fù)用構(gòu)件建造構(gòu)件的目的是為了以后復(fù)用構(gòu)件,即為復(fù)用而建造構(gòu)件在建造構(gòu)件時仍應(yīng)遵循抽象、逐步求精、信息隱蔽、功能獨立、結(jié)構(gòu)化程序設(shè)計等思想和原則由于面向?qū)ο蠓椒ň哂蟹庋b性、繼承等特點,能有力地支持復(fù)用,所以應(yīng)盡可能考慮采用面向?qū)ο蠓椒?0/57對可復(fù)用構(gòu)件的要求構(gòu)件的設(shè)計應(yīng)具有較高的通用程度構(gòu)件應(yīng)易于調(diào)整構(gòu)件應(yīng)易于組裝構(gòu)件必須具有可檢索性構(gòu)件必須經(jīng)過充分的測試31/57創(chuàng)建領(lǐng)域構(gòu)件的設(shè)計框架除應(yīng)遵循已有的設(shè)計概念和原則外,還必須考慮應(yīng)用領(lǐng)域的特征,例如:標(biāo)準(zhǔn)數(shù)據(jù):應(yīng)該研究應(yīng)用領(lǐng)域,并標(biāo)識出標(biāo)準(zhǔn)的全局?jǐn)?shù)據(jù)結(jié)構(gòu)(如文件結(jié)構(gòu)或完整的數(shù)據(jù)庫)。于是所有設(shè)計的構(gòu)件都可以用這些標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)來刻畫標(biāo)準(zhǔn)接口協(xié)議:應(yīng)該建立三個層次的接口協(xié)議:構(gòu)件內(nèi)(intramodular)接口、構(gòu)件外接口以及人機接口程序模板:程序的結(jié)構(gòu)模型可以作為新程序的體系結(jié)構(gòu)設(shè)計的模板32/57可變性分析構(gòu)件應(yīng)具有較強的通用性和可變性為了滿足不同的復(fù)用需求,需要在構(gòu)件復(fù)用時可能發(fā)生變化的一個或多個位置上標(biāo)識變化點(variationpoint),同時為變化點附加一個或多個變體(variant)例如Account構(gòu)件的帳號編碼規(guī)則以及透支規(guī)則在不同的國家可能不一樣·VP1·VP2CVP1descriptioncontext33/57
構(gòu)件系統(tǒng)中的門面和變體34/57可變性機制繼承:在變化點上創(chuàng)建指定抽象類型或抽象類的子類型或子類。擴展和擴展點:可以在用況和對象構(gòu)件中的變化點(或擴展點)上附加變體(或擴展)參數(shù)化:用于模板、框架和宏的類型和類適用于變體較小時(經(jīng)常是一個數(shù)值、短語或表達(dá)式)35/57內(nèi)容摘要基于構(gòu)件的軟件開發(fā)概述建造可復(fù)用構(gòu)件應(yīng)用系統(tǒng)工程構(gòu)件的管理小結(jié)36/57應(yīng)用系統(tǒng)工程任務(wù):通過組裝可復(fù)用構(gòu)件得到應(yīng)用系統(tǒng)CBSD中構(gòu)件是組成應(yīng)用系統(tǒng)的基本單元注重體系結(jié)構(gòu)和構(gòu)件接口的分析和設(shè)計,忽略構(gòu)件內(nèi)部實現(xiàn)的設(shè)計37/57關(guān)注接口的設(shè)計接
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 裸露陽臺防水施工方案
- 酒店弱電施工方案
- 洋樓施工方案
- 煤礦改造可行性研究報告
- 鋼結(jié)構(gòu)彩瓦屋面施工方案
- 河南物料倉滑模施工方案
- 兩江新區(qū)別墅地板施工方案
- 河道渣料清理清運施工方案
- 2025年新型高效飼料及添加劑項目合作計劃書
- 坊安街道小學(xué)體育檢測方案
- 《色彩構(gòu)成——色彩基礎(chǔ)知識》PPT課件
- 煤礦供電系統(tǒng)及供電安全講座方案課件
- 綠色建筑及材料分析及案列
- 鍍層的結(jié)合力
- 霍尼韋爾DDC編程軟件(CARE)簡介
- 實用中西醫(yī)結(jié)合診斷治療學(xué)
- 論《說文解字》中的水文化
- 幕墻工程技術(shù)標(biāo)范本
- 德龍自卸車合格證掃描件(原圖)
- [國家公務(wù)員考試密押題庫]申論模擬925
- 初級電工教學(xué)大綱與教學(xué)計劃
評論
0/150
提交評論