第05講:軟件復(fù)用和構(gòu)件技術(shù)_第1頁
第05講:軟件復(fù)用和構(gòu)件技術(shù)_第2頁
第05講:軟件復(fù)用和構(gòu)件技術(shù)_第3頁
第05講:軟件復(fù)用和構(gòu)件技術(shù)_第4頁
第05講:軟件復(fù)用和構(gòu)件技術(shù)_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 軟件復(fù)用及軟構(gòu)件哈爾濱工業(yè)大學(xué)計(jì)算機(jī)學(xué)院唐好選Email: 主要內(nèi)容主要內(nèi)容p軟件復(fù)用技術(shù)p軟構(gòu)件與構(gòu)件模型p基于構(gòu)件的軟件開發(fā)p典型的構(gòu)件模型軟件復(fù)用技術(shù)軟件復(fù)用技術(shù)軟件復(fù)用技術(shù)p 軟件復(fù)用的需求p 軟件復(fù)用的根本原因p 軟件復(fù)用的基本概念p 實(shí)現(xiàn)復(fù)用的關(guān)鍵因素p 復(fù)用的研究與實(shí)踐活動p 軟件復(fù)用的形式p 軟件復(fù)用對軟件質(zhì)量的影響p 復(fù)用的案例u在軟件的發(fā)展歷程中,大多數(shù)軟件均針對某個具體應(yīng)用開發(fā),大量軟件開發(fā)都從頭開始,經(jīng)過需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試,最后交付使用,因此出現(xiàn)了大量同類軟件(如財(cái)務(wù)軟件、MIS軟件等)的重復(fù)開發(fā)u出現(xiàn)的問題u浪費(fèi)了有限的資源u軟件質(zhì)量整體較低軟件復(fù)用的需求軟

2、件復(fù)用的需求u工業(yè)界大多數(shù)新產(chǎn)品生產(chǎn)離不開已有的部件-通過組裝完成u在軟件生產(chǎn)領(lǐng)域,也希望有一些軟件工廠或車間專門生產(chǎn)軟構(gòu)件(Component),在軟件生產(chǎn)中模擬工業(yè)產(chǎn)品設(shè)計(jì)及生產(chǎn)經(jīng)驗(yàn),大量復(fù)用已有構(gòu)件,從而實(shí)現(xiàn)降低成本和提高生產(chǎn)率目標(biāo)軟件復(fù)用的需求軟件復(fù)用的需求u軟件復(fù)雜性持續(xù)增長功能需求: 計(jì)算機(jī)解決方案成為各領(lǐng)域技術(shù)創(chuàng)新核心非功能需求:出錯率、并發(fā)用戶數(shù)、事務(wù)吞吐量等要求技術(shù)需求:分布式計(jì)算機(jī)網(wǎng)絡(luò)軟件需求量的增大使目標(biāo)執(zhí)行平臺具有多樣性組織需求: 需要分布式開發(fā)團(tuán)隊(duì)和遠(yuǎn)程辦公第三方產(chǎn)品和軟件包的使用中經(jīng)常遇到定義問題、說明問題、開發(fā)維護(hù)費(fèi)用問題u計(jì)算機(jī)技術(shù)變化的速度增加了具有較長生命周

3、期項(xiàng)目的風(fēng)險(xiǎn)(早期技術(shù)過時(shí)了)u十年前開發(fā)的關(guān)鍵系統(tǒng)仍在運(yùn)行軟件開發(fā)過程面臨的挑戰(zhàn)軟件開發(fā)過程面臨的挑戰(zhàn)示例:一個應(yīng)用程序的一組目標(biāo)部署技術(shù)示例:一個應(yīng)用程序的一組目標(biāo)部署技術(shù)單一產(chǎn)品的功能需求單一產(chǎn)品的功能需求單一產(chǎn)品的部署需求單一產(chǎn)品的部署需求單一產(chǎn)品的架構(gòu)要求單一產(chǎn)品的架構(gòu)要求早期應(yīng)用系統(tǒng)結(jié)構(gòu)和支持工具的功能早期應(yīng)用系統(tǒng)結(jié)構(gòu)和支持工具的功能典型的工具功能 生成數(shù)據(jù)庫模式 數(shù)據(jù)庫優(yōu)化 用戶界面設(shè)計(jì) 數(shù)據(jù)分布和復(fù)制 服務(wù)器應(yīng)用程序服務(wù)器應(yīng)用程序如數(shù)據(jù)庫如數(shù)據(jù)庫 局域網(wǎng)局域網(wǎng)客戶端客戶端當(dāng)前應(yīng)用系統(tǒng)結(jié)構(gòu)和支持工具的功能當(dāng)前應(yīng)用系統(tǒng)結(jié)構(gòu)和支持工具的功能 局域網(wǎng)局域網(wǎng) Web服務(wù)器和應(yīng)用程序代理服

4、務(wù)器和應(yīng)用程序代理Internet/Intranet客戶端客戶端 服務(wù)器應(yīng)用程序如數(shù)據(jù)庫服務(wù)器應(yīng)用程序如數(shù)據(jù)庫典型的工具功能:提供服務(wù)器遠(yuǎn)程訪問生成瀏覽器界面服務(wù)器到Web頁面的轉(zhuǎn)換未來應(yīng)用系統(tǒng)的結(jié)構(gòu)和支持工具的功能未來應(yīng)用系統(tǒng)的結(jié)構(gòu)和支持工具的功能 局域網(wǎng)局域網(wǎng) Web服務(wù)器和應(yīng)用程序代理Internet/Intranet客戶端 服務(wù)器應(yīng)用程序如數(shù)據(jù)庫 可復(fù)用 構(gòu)件服務(wù)典型的工具功能: 分類可復(fù)用構(gòu)件 智能構(gòu)件搜索 瀏覽/查詢構(gòu)件 現(xiàn)有構(gòu)件的更新 遠(yuǎn)程構(gòu)件集成(1)簡化大規(guī)模分布式軟件構(gòu)架設(shè)計(jì)和管理u構(gòu)架層u確定解決方案的基本“形狀” (體系結(jié)構(gòu)風(fēng)格)u機(jī)制層u考慮分布式系統(tǒng)的實(shí)現(xiàn)、部署和運(yùn)

5、行時(shí)的管理等u服務(wù)層u考慮構(gòu)架成員之間的接口及交互未來應(yīng)用系統(tǒng)開發(fā)關(guān)鍵問題的解決方案未來應(yīng)用系統(tǒng)開發(fā)關(guān)鍵問題的解決方案(2)為系統(tǒng)的可復(fù)用部分建模u構(gòu)件相關(guān)技術(shù)進(jìn)一步發(fā)展u出現(xiàn)了面向?qū)ο笳Z言u特定領(lǐng)域庫和框架開始出現(xiàn)u供應(yīng)商的支持uWeb基礎(chǔ)設(shè)施正在成熟u學(xué)術(shù)界對構(gòu)件接口、構(gòu)件集成及檢測、構(gòu)件修復(fù)等方法有了更深理解 軟件復(fù)用的根本原因(軟件復(fù)用的根本原因(1) 通過對應(yīng)用系統(tǒng)組成成分的復(fù)用可避免重復(fù)勞動(1)通用基本構(gòu)件:特定于計(jì)算機(jī)系統(tǒng)的構(gòu)成成分,如基本數(shù)據(jù)結(jié)構(gòu)、用戶界面元素等,可以存在于各種應(yīng)用系統(tǒng)中 (2)領(lǐng)域共性構(gòu)件:應(yīng)用系統(tǒng)所屬領(lǐng)域的共性構(gòu)成成分,存在于該領(lǐng)域的各個應(yīng)用系統(tǒng)中 (3)

6、應(yīng)用專用構(gòu)件:是每個應(yīng)用系統(tǒng)特有構(gòu)成成分 重復(fù)勞動主要集中在前兩類構(gòu)成成分的重復(fù)開發(fā)軟件復(fù)用可以避免重復(fù)勞動 軟件復(fù)用的根本原因(軟件復(fù)用的根本原因(2)u軟件復(fù)用是指通過已有軟件的各種有關(guān)知識來建立新的軟件,這些知識包括:領(lǐng)域知識、開發(fā)經(jīng)驗(yàn)、設(shè)計(jì)經(jīng)驗(yàn)、體系結(jié)構(gòu)、需求、設(shè)計(jì)、編碼、測試和文檔等u嚴(yán)格意義上的軟件復(fù)用是指:重復(fù)使用“為了復(fù)用目的而設(shè)計(jì)的軟件”的過程 復(fù)用的基本概念復(fù)用的基本概念 軟件復(fù)用行為主要發(fā)生在三個維度時(shí)間維:使用以前的軟件版本作為新版本的基礎(chǔ),加入新功能,適應(yīng)新需求,即軟件維護(hù) 平臺維:以某平臺上的軟件為基礎(chǔ),修改和運(yùn)行平臺相關(guān)的部分,使其運(yùn)行于新平臺,即軟件移植 應(yīng)用維

7、:將某軟件(或其中構(gòu)件)用于其他應(yīng)用系統(tǒng)中,新系統(tǒng)具有不同功能和用途,即真正的軟件復(fù)用 復(fù)用的基本概念復(fù)用的基本概念 依據(jù)復(fù)用對象,可將軟件復(fù)用分為產(chǎn)品復(fù)用:指復(fù)用已有的軟件構(gòu)件,通過構(gòu)件集成(組裝)得到新系統(tǒng)過程復(fù)用:指復(fù)用已有的軟件開發(fā)過程,使用可復(fù)用的應(yīng)用生成器來自動或半自動地生成所需系統(tǒng) 依據(jù)對可復(fù)用信息進(jìn)行復(fù)用的方式,可將軟件復(fù)用分為黑盒復(fù)用:指對已有構(gòu)件不需作任何修改,直接進(jìn)行復(fù)用白盒復(fù)用:已有構(gòu)件并不能完全符合用戶需求,需要根據(jù)用戶需求進(jìn)行適應(yīng)性修改后才可使用復(fù)用的基本概念復(fù)用的基本概念 軟件復(fù)用的三個基本問題必須有可以復(fù)用的對象復(fù)用對象必須是有用的復(fù)用者要知道如何使用被復(fù)用的對

8、象 軟件復(fù)用包括兩個相關(guān)的過程可復(fù)用軟件(構(gòu)件)的開發(fā)(Development for Reuse)基于可復(fù)用軟件(構(gòu)件)的應(yīng)用系統(tǒng)構(gòu)造(集成和組裝)(Development with Reuse)如何實(shí)現(xiàn)復(fù)用如何實(shí)現(xiàn)復(fù)用 實(shí)現(xiàn)復(fù)用的關(guān)鍵因素(技術(shù)和非技術(shù)因素)包括:軟件構(gòu)件技術(shù)(Software Component Technology )領(lǐng)域工程(Domain Engineering )軟件體系結(jié)構(gòu)(Software Architecture )軟件再工程(Software Reengineering )開放系統(tǒng)(Open System )軟件過程(Software Process )CA

9、SE技術(shù)其它非技術(shù)因素實(shí)現(xiàn)復(fù)用的關(guān)鍵因素實(shí)現(xiàn)復(fù)用的關(guān)鍵因素實(shí)現(xiàn)復(fù)用的關(guān)鍵因素實(shí)現(xiàn)復(fù)用的關(guān)鍵因素CASE技術(shù)軟件過程非技術(shù)因素領(lǐng)域工程構(gòu)件、構(gòu)架獲取構(gòu)件標(biāo)準(zhǔn)化與描述軟件構(gòu)件技術(shù)構(gòu)件組裝構(gòu)件分類、存儲與檢索應(yīng)用系統(tǒng)領(lǐng)域軟件再工程軟件構(gòu)架技術(shù) 開放系統(tǒng)技術(shù)遺產(chǎn)軟件系統(tǒng)p 構(gòu)件獲取:有目的的構(gòu)件生產(chǎn)和從已有系統(tǒng)中挖掘提取構(gòu)件p 構(gòu)件模型:研究構(gòu)件的本質(zhì)特征及構(gòu)件間的關(guān)系p 構(gòu)件描述語言:以構(gòu)件模型為基礎(chǔ),解決構(gòu)件的精確描述、理解及組裝問題p 構(gòu)件分類與檢索:研究構(gòu)件分類策略、組織模式及檢索策略,建立構(gòu)件庫系統(tǒng),支持構(gòu)件的有效管理p 構(gòu)件組裝:在構(gòu)件模型基礎(chǔ)上研究構(gòu)件組裝機(jī)制,包括源代碼級的組裝和基于構(gòu)

10、件對象互操作性的運(yùn)行級組裝p 構(gòu)件標(biāo)準(zhǔn)化:構(gòu)件模型的標(biāo)準(zhǔn)化和構(gòu)件庫系統(tǒng)的標(biāo)準(zhǔn)化復(fù)用技術(shù)因素復(fù)用技術(shù)因素-構(gòu)件技術(shù)構(gòu)件技術(shù)p對系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)的刻劃,包括全局組織結(jié)構(gòu)、構(gòu)件間的通訊、數(shù)據(jù)訪問協(xié)議、元素之間的功能分配和物理分布等p在基于復(fù)用的軟件開發(fā)中,為復(fù)用而開發(fā)的軟件體系結(jié)構(gòu)可以作為一種大粒度的、抽象級別較高的軟構(gòu)件進(jìn)行復(fù)用p軟件體系結(jié)構(gòu)(構(gòu)架)研究包括:p軟件體系結(jié)構(gòu)(構(gòu)架)原理和風(fēng)格p軟件體系結(jié)構(gòu)(構(gòu)架)的描述和規(guī)約p特定領(lǐng)域軟件體系結(jié)構(gòu)(構(gòu)架)p構(gòu)件向軟件體系結(jié)構(gòu)(構(gòu)架)的集成機(jī)制等復(fù)用技術(shù)因素復(fù)用技術(shù)因素-軟件體系結(jié)構(gòu)(構(gòu)架)技術(shù)軟件體系結(jié)構(gòu)(構(gòu)架)技術(shù)p領(lǐng)域工程是為一組相似或相近系統(tǒng)

11、建立基本能力和必備基礎(chǔ)的過程,它覆蓋了建立可復(fù)用軟構(gòu)件的所有活動復(fù)用技術(shù)因素復(fù)用技術(shù)因素-領(lǐng)域工程技術(shù)領(lǐng)域工程技術(shù)p 領(lǐng)域分析:目標(biāo)是獲得領(lǐng)域模型(Domain Model)p 領(lǐng)域設(shè)計(jì):目標(biāo)是獲得領(lǐng)域構(gòu)架(Domain-Specific Software Architecture,縮寫為DSSA)p 領(lǐng)域?qū)崿F(xiàn):主要行為是定義將需求翻譯到由可復(fù)用構(gòu)件創(chuàng)建的系統(tǒng)的機(jī)制。這種機(jī)制可能是一組與領(lǐng)域模型和DSSA相聯(lián)系的可復(fù)用構(gòu)件,也可能是應(yīng)用系統(tǒng)的生成器領(lǐng)域應(yīng)用應(yīng)用應(yīng)用應(yīng)用領(lǐng)域工程DA1B1C1A2B2領(lǐng)域模型/構(gòu)架領(lǐng)域可復(fù)用構(gòu)件輸入輸出領(lǐng)域分析員最終用戶領(lǐng)域?qū)<覒?yīng)用系統(tǒng)開發(fā)需求分析員、軟件設(shè)計(jì)者.

12、復(fù)用技術(shù)因素復(fù)用技術(shù)因素-領(lǐng)域工程技術(shù)領(lǐng)域工程技術(shù)復(fù)用技術(shù)因素復(fù)用技術(shù)因素-軟件再工程技術(shù)軟件再工程技術(shù)u軟件復(fù)用中的一些問題u現(xiàn)有軟件系統(tǒng)如何適應(yīng)當(dāng)前技術(shù)的發(fā)展及需求的變化,采用可復(fù)用的軟件構(gòu)架并提煉出可復(fù)用的軟件構(gòu)件?u現(xiàn)存大量的遺產(chǎn)軟件系統(tǒng)由于技術(shù)發(fā)展,正逐漸退出使用,如何對這些系統(tǒng)進(jìn)行挖掘、整理,得到有用的軟件構(gòu)件?u已有軟件構(gòu)件隨著時(shí)間流逝會逐漸變得不可使用,如何對其進(jìn)行維護(hù),以延長其生命期,充分利用這些可復(fù)用構(gòu)件?u軟件再工程(Software Reengineering)是解決這些問題的主要技術(shù)手段需求重構(gòu)設(shè)計(jì)重構(gòu)實(shí)現(xiàn)正向工程逆向工程再工程向前向前規(guī)約恢復(fù)設(shè)計(jì)恢復(fù)再工程再工程重新

13、建立文檔、重構(gòu)復(fù)用技術(shù)因素復(fù)用技術(shù)因素-軟件再工程技術(shù)軟件再工程技術(shù)u軟件再工程是一個工程過程,它將逆向工程、重構(gòu)和正向工程組合起來,將現(xiàn)存系統(tǒng)重新構(gòu)造為新的形式 u再工程的基礎(chǔ)是系統(tǒng)理解,包括對運(yùn)行系統(tǒng)、源代碼、設(shè)計(jì)、分析、文檔等的全面理解p開放系統(tǒng)技術(shù)的基本原則是在系統(tǒng)的開發(fā)中使用接口標(biāo)準(zhǔn),同時(shí)使用符合接口標(biāo)準(zhǔn)的實(shí)現(xiàn),為系統(tǒng)間的互操作提供保證 p分布對象技術(shù)使得符合接口標(biāo)準(zhǔn)的構(gòu)件可以方便地以“即插即用”的方式組裝到系統(tǒng)中,實(shí)現(xiàn)黑盒復(fù)用。這樣,在符合接口標(biāo)準(zhǔn)的前提下,構(gòu)件就可以獨(dú)立地進(jìn)行開發(fā),從而形成獨(dú)立的構(gòu)件制造業(yè)復(fù)用技術(shù)因素復(fù)用技術(shù)因素-開放系統(tǒng)技術(shù)開放系統(tǒng)技術(shù)復(fù)用的研究與實(shí)踐活動復(fù)用的

14、研究與實(shí)踐活動p領(lǐng)域工程p產(chǎn)品線系統(tǒng)p構(gòu)件及構(gòu)件庫的標(biāo)準(zhǔn)化p構(gòu)件組裝技術(shù):CORBA, COM, EJB, WebServicep基于復(fù)用的軟件開發(fā)過程p復(fù)用成熟度模型(RMM)復(fù)用的研究與實(shí)踐活動復(fù)用的研究與實(shí)踐活動-構(gòu)件庫框架構(gòu)件庫框架構(gòu)件庫系統(tǒng)構(gòu)件庫系統(tǒng)構(gòu)件庫數(shù)據(jù)構(gòu)件庫數(shù)據(jù)構(gòu)件構(gòu)件庫工具A sset A sset catal ogcatal og構(gòu)件庫數(shù)據(jù)模型構(gòu)件庫數(shù)據(jù)模型框架服務(wù)框架服務(wù)構(gòu)件庫框架構(gòu)件庫框架元模型元模型構(gòu)件描述構(gòu)件描述構(gòu)件目錄構(gòu)件目錄復(fù)用的研究與實(shí)踐活動復(fù)用的研究與實(shí)踐活動-復(fù)用軟件開發(fā)過程復(fù)用軟件開發(fā)過程同步活動驗(yàn)證查找剪裁、生成存儲包裝計(jì)劃生產(chǎn)異步活動請求集成規(guī)約設(shè)

15、計(jì)發(fā)布測試項(xiàng)目組織經(jīng)驗(yàn)工廠構(gòu)件初始級:不協(xié)調(diào)的復(fù)用努力,復(fù)用是個人行為監(jiān)控級:管理上知道復(fù)用,但不作為重點(diǎn),復(fù)用是小組的行為協(xié)調(diào)級:鼓勵復(fù)用,但沒有投資。復(fù)用的范圍包括整個部門,有配置管理和構(gòu)件文檔的數(shù)據(jù)庫,復(fù)用的對象包括子系統(tǒng)、模式和框架計(jì)劃級:存在組織上的復(fù)用支持。在項(xiàng)目級別支持復(fù)用,有復(fù)用庫,復(fù)用的對象包括應(yīng)用生成器固有級:規(guī)范化的復(fù)用支持。復(fù)用成為整個企業(yè)范圍的行為,有一組領(lǐng)域相關(guān)的復(fù)用庫,復(fù)用的對象包括DSSA復(fù)用的研究與實(shí)踐活動復(fù)用的研究與實(shí)踐活動-復(fù)用成熟度模型復(fù)用成熟度模型(1)代碼和設(shè)計(jì)拷貝(2)源代碼復(fù)用:復(fù)用存放在庫中的源代碼構(gòu)件(3)設(shè)計(jì)和軟件體系結(jié)構(gòu)(software

16、 architecture)復(fù)用(4)應(yīng)用程序生成器(application generator)復(fù)用:復(fù)用整個軟件系統(tǒng)的設(shè)計(jì),包括軟件體系結(jié)構(gòu)、體系結(jié)構(gòu)中的主要子系統(tǒng)、特定的數(shù)據(jù)結(jié)構(gòu)和算法等(5)領(lǐng)域特定的軟件體系結(jié)構(gòu)(DSSA)復(fù)用軟件復(fù)用的粒度軟件復(fù)用的粒度u根據(jù)復(fù)用活動所跨越的領(lǐng)域u垂直式(縱向)復(fù)用u水平式(橫向)復(fù)用u根據(jù)實(shí)現(xiàn)復(fù)用的途徑u組裝式(compositional)復(fù)用u生成式(generative)復(fù)用u根據(jù)復(fù)用方式u黑盒復(fù)用u白盒復(fù)用軟件復(fù)用的形式軟件復(fù)用的形式u獲取并生產(chǎn)可復(fù)用構(gòu)件或?qū)蓮?fù)用構(gòu)件再工程的活動u領(lǐng)域分析:收集樣本,抽取領(lǐng)域的應(yīng)用體系結(jié)構(gòu)u建立領(lǐng)域特定的可

17、裁剪和擴(kuò)充的基準(zhǔn)體系結(jié)構(gòu)模型u標(biāo)識候選構(gòu)件u泛化和可變性分析,提高通用性;使可變部分局部化u重建構(gòu)件u構(gòu)件測試,提高可靠性u構(gòu)件包裝,以便分類儲存和檢索u構(gòu)件入庫:存入構(gòu)件庫生產(chǎn)者復(fù)用生產(chǎn)者復(fù)用(producer reuser)u創(chuàng)建新軟件時(shí)使用可復(fù)用構(gòu)件的活動u建立應(yīng)用系統(tǒng)的體系結(jié)構(gòu)模型u尋找候選構(gòu)件u評價(jià)和選擇合適的構(gòu)件u構(gòu)件的修改和特化u開發(fā)未被復(fù)用的部分u構(gòu)件組裝u集成測試u評價(jià)被復(fù)用構(gòu)件,并推薦可能的新構(gòu)件,擴(kuò)充和完善構(gòu)件庫消費(fèi)者復(fù)用消費(fèi)者復(fù)用(Consumer reuser)p 隨著復(fù)用次數(shù)不斷增加,可復(fù)用構(gòu)件可看成幾乎無錯p 有關(guān)研究報(bào)告p被復(fù)用代碼的錯誤率為0.9個錯誤/千行代

18、碼p新開發(fā)代碼錯誤率為: 4.1個錯誤/千行代碼p 軟件復(fù)用對提高軟件質(zhì)量和可靠性確實(shí)是有效的p大約30%-50%的復(fù)用可使生產(chǎn)率提高25%-40%軟件復(fù)用對軟件質(zhì)量的影響軟件復(fù)用對軟件質(zhì)量的影響軟件復(fù)用對軟件成本的影響軟件復(fù)用對軟件成本的影響可復(fù)用的可復(fù)用的軟件制品軟件制品4年回報(bào)年回報(bào)可復(fù)用的可復(fù)用的軟件制品軟件制品4年回報(bào)年回報(bào)項(xiàng)目計(jì)劃項(xiàng)目計(jì)劃2源代碼源代碼6成本估計(jì)成本估計(jì)3用戶和技術(shù)文檔用戶和技術(shù)文檔1.5體系結(jié)構(gòu)體系結(jié)構(gòu)1.5用戶界面用戶界面1需求模型規(guī)約需求模型規(guī)約3數(shù)據(jù)數(shù)據(jù)3.5設(shè)計(jì)設(shè)計(jì)5測試案例測試案例3.5復(fù)用方法的案例復(fù)用方法的案例已有非OO系統(tǒng)已有非OO系統(tǒng)應(yīng)用領(lǐng)域應(yīng)用

19、領(lǐng)域系統(tǒng)需求系統(tǒng)需求已有OO系統(tǒng)已有OO系統(tǒng)程序理解及構(gòu)件提取程序理解及構(gòu)件提取程序理解及構(gòu)件提取程序理解及構(gòu)件提取再工程非OO-OO再工程非OO-OO構(gòu)件封裝、規(guī)約及分類構(gòu)件封裝、規(guī)約及分類構(gòu)件庫管理構(gòu)件庫管理構(gòu)件庫構(gòu)架庫構(gòu)件再工程構(gòu)件再工程構(gòu)件適應(yīng)性修改構(gòu)件適應(yīng)性修改規(guī)約設(shè)計(jì)規(guī)約設(shè)計(jì)構(gòu)件生產(chǎn)系統(tǒng)組裝測試測試運(yùn)行運(yùn)行領(lǐng)域工程領(lǐng)域工程構(gòu)架描述構(gòu)架描述構(gòu)架庫管理構(gòu)架庫管理.實(shí)現(xiàn)新構(gòu)件規(guī)約設(shè)計(jì)復(fù)用代碼復(fù)用復(fù)用方法案例復(fù)用方法案例軟構(gòu)件及構(gòu)件模型軟件體系結(jié)構(gòu)中的構(gòu)件軟件體系結(jié)構(gòu)中的構(gòu)件u軟件體系結(jié)構(gòu)是指軟件總體結(jié)構(gòu)框架,由結(jié)構(gòu)元集、結(jié)構(gòu)形以及結(jié)構(gòu)理三部分組成u結(jié)構(gòu)元集為一組構(gòu)成該體系結(jié)構(gòu)的結(jié)構(gòu)元(即

20、構(gòu)件)分為處理元(對信息元實(shí)施變換)、信息元(含有可用信息)和連接元(連接其它構(gòu)件)u結(jié)構(gòu)形包括特性(用以約束結(jié)構(gòu)元的選?。┡c聯(lián)系(約束不同結(jié)構(gòu)元之間的交互與組織)u結(jié)構(gòu)理刻畫體系結(jié)構(gòu)的選取及各個組成部分的關(guān)系C2體系結(jié)構(gòu)中的構(gòu)件體系結(jié)構(gòu)中的構(gòu)件網(wǎng)上選課系統(tǒng),包含3個構(gòu)件Student 構(gòu)件:管理學(xué)生基本信息Course 構(gòu)件:管理課程信息Order 構(gòu)件:處理學(xué)生對課程的選修操作Student構(gòu)件構(gòu)件Course構(gòu)件構(gòu)件Order構(gòu)件構(gòu)件1.選修課程2.獲取學(xué)生信息3.發(fā)送學(xué)生信息4.獲取課程信息5.發(fā)送課程信息6.發(fā)送結(jié)果構(gòu)件模型構(gòu)件模型u構(gòu)件模型是關(guān)于構(gòu)件本質(zhì)特征的抽象描述u3C構(gòu)件模型

21、(1989)由構(gòu)件三方面的描述組成:u概念(Concept):關(guān)于構(gòu)件“做什么”的描述,包括接口規(guī)約和語義描述u內(nèi)容(Content):概念的具體實(shí)現(xiàn)u周境(Context):構(gòu)件與外圍環(huán)境在概念級和內(nèi)容級的關(guān)系uREBOOT(REuse Based on Object-Oriented Technology)模型:基于呈面(facet)的模型。呈面可以描述構(gòu)件執(zhí)行的功能、所操作的數(shù)據(jù)、構(gòu)件應(yīng)用的周境(上下文)或任何其它特征p 構(gòu)件是“語義完整,語法正確,有可復(fù)用價(jià)值的、獨(dú)立的、可交付的、對一系列軟件操作的包裝,這種包裝可用來構(gòu)造應(yīng)用程序或更大的構(gòu)件”關(guān)于構(gòu)件的理解關(guān)于構(gòu)件的理解p 構(gòu)件提供了

22、對一個或多個對象實(shí)現(xiàn)的包裝,擔(dān)當(dāng)一個部署單元的作用基于構(gòu)件的軟件開發(fā)基于構(gòu)件的軟件開發(fā)基于構(gòu)件的軟件開發(fā)p 基于構(gòu)件的軟件開發(fā)(CBSD:Component Based Software Development)指在軟件系統(tǒng)開發(fā)中使用己有軟構(gòu)件的方法和技術(shù)p CBSD的組成p領(lǐng)域工程(Domain Engineering)p軟件工程 (Software Engineering)領(lǐng)域分析領(lǐng)域分析 軟件結(jié)構(gòu)開發(fā)軟件結(jié)構(gòu)開發(fā)可復(fù)用構(gòu)件開發(fā)可復(fù)用構(gòu)件開發(fā)領(lǐng)域模型領(lǐng)域模型結(jié)構(gòu)模型結(jié)構(gòu)模型可復(fù)用可復(fù)用構(gòu)件庫構(gòu)件庫分析分析 結(jié)構(gòu)設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)構(gòu)件選用構(gòu)件選用構(gòu)件調(diào)整構(gòu)件調(diào)整構(gòu)件組合構(gòu)件組合構(gòu)件工程構(gòu)件工程測試

23、測試構(gòu)件更新構(gòu)件更新應(yīng)用軟件應(yīng)用軟件領(lǐng)域工程領(lǐng)域工程構(gòu)件開發(fā)構(gòu)件開發(fā) 基于構(gòu)件的軟件開發(fā)模型基于構(gòu)件的軟件開發(fā)模型基于構(gòu)件的軟件開發(fā)過程模型基于構(gòu)件的軟件開發(fā)過程模型計(jì)劃計(jì)劃風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析用戶通信用戶通信產(chǎn)品開發(fā)與發(fā)布產(chǎn)品開發(fā)與發(fā)布用戶評估用戶評估將新構(gòu)件將新構(gòu)件存入庫中存入庫中候選構(gòu)件候選構(gòu)件在構(gòu)件庫中在構(gòu)件庫中查找構(gòu)件查找構(gòu)件進(jìn)行下一次進(jìn)行下一次迭代迭代構(gòu)造構(gòu)件構(gòu)造構(gòu)件是否存在是否存在 構(gòu)件?構(gòu)件?是是否否提取構(gòu)件提取構(gòu)件UI RequirmentBusiness EventBusiness ProcessBusiness EntityNon-FunctionalRequirmentRe

24、quirment SpaceSoftware Design SpaceUI Component1UI Component2Application Interface LayerPC1PC2Business Process LayerEC1EC2Business Entity LayerComponent Container LayerPlatform Software LayerBusiness Rule企業(yè)信息系統(tǒng)業(yè)務(wù)構(gòu)件的設(shè)計(jì)企業(yè)信息系統(tǒng)業(yè)務(wù)構(gòu)件的設(shè)計(jì)業(yè)務(wù)構(gòu)件設(shè)計(jì)過程業(yè)務(wù)構(gòu)件設(shè)計(jì)過程1.識別過程構(gòu)件聚類分析計(jì)算關(guān)聯(lián)值2.識別實(shí)體構(gòu)件選擇核心實(shí)體聚類分析計(jì)算關(guān)聯(lián)值3.設(shè)計(jì)過程構(gòu)件界面4.設(shè)計(jì)

25、實(shí)體構(gòu)件界面過程構(gòu)件描述UML類圖實(shí)體構(gòu)件描述UML類圖業(yè)務(wù)用例模型UML用例圖UML活動圖業(yè)務(wù)實(shí)體模型UML類圖p 聚類分析p 識別過程構(gòu)件p 識別實(shí)體構(gòu)件p 設(shè)計(jì)業(yè)務(wù)構(gòu)件接口識別業(yè)務(wù)構(gòu)件識別業(yè)務(wù)構(gòu)件p 將所有需要分類的n 個樣本點(diǎn)記為X=Xl(l=1,.,n).此時(shí),集合X 中的每個樣本點(diǎn)自成一類p 確定任意兩個樣本點(diǎn)之間的關(guān)聯(lián)值(即相似程度)的計(jì)算方法,將樣本點(diǎn)Xi 與Xj 之間的關(guān)聯(lián)值記為Rijp 計(jì)算n 個樣本點(diǎn)兩兩之間關(guān)聯(lián)值,得樣本點(diǎn)間的關(guān)聯(lián)值矩陣Dp 選定一個合理的最小關(guān)聯(lián)值Rmin,將其作為將兩個樣本點(diǎn)放入一個聚集的判定依據(jù)p 依據(jù)關(guān)聯(lián)值矩陣D 每個單元的關(guān)聯(lián)值Rij,執(zhí)行聚類

26、過程p如果Rij=Rmin,則將樣本點(diǎn)Xi 和樣本點(diǎn)Xj 放入一個聚集p如果Xi 和Xj 屬于一個聚集,且Xi 和Xk 屬于一個聚集,那么將Xi,Xj,Xk 放入一個聚集聚類分析聚類分析p 過程構(gòu)件是對業(yè)務(wù)過程和業(yè)務(wù)規(guī)則的封裝,采用UML 用例圖和活動圖描述的業(yè)務(wù)用例是一種較為通用的描述業(yè)務(wù)過程的表示元素p 業(yè)務(wù)用例之間的關(guān)系包括p包含(include)關(guān)系:Rij=1p擴(kuò)展(extend)關(guān)系:Rij=2p泛化(generalization)關(guān)系:Rij=3p其它關(guān)系:Rij=0識別過程構(gòu)件識別過程構(gòu)件p 實(shí)體構(gòu)件是對業(yè)務(wù)實(shí)體及相關(guān)業(yè)務(wù)規(guī)則的封裝, 使用UML 類圖中的類來描述,識別實(shí)體構(gòu)件所需的X 樣本點(diǎn)集合以

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論