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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

9、SE技術其它非技術因素實現(xiàn)復用的關鍵因素實現(xiàn)復用的關鍵因素實現(xiàn)復用的關鍵因素實現(xiàn)復用的關鍵因素CASE技術軟件過程非技術因素領域工程構件、構架獲取構件標準化與描述軟件構件技術構件組裝構件分類、存儲與檢索應用系統(tǒng)領域軟件再工程軟件構架技術 開放系統(tǒng)技術遺產軟件系統(tǒng)p 構件獲?。河心康牡臉嫾a和從已有系統(tǒng)中挖掘提取構件p 構件模型:研究構件的本質特征及構件間的關系p 構件描述語言:以構件模型為基礎,解決構件的精確描述、理解及組裝問題p 構件分類與檢索:研究構件分類策略、組織模式及檢索策略,建立構件庫系統(tǒng),支持構件的有效管理p 構件組裝:在構件模型基礎上研究構件組裝機制,包括源代碼級的組裝和基于構

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

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

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

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

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

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

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

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

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

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

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

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

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

23、測試構件更新構件更新應用軟件應用軟件領域工程領域工程構件開發(fā)構件開發(fā) 基于構件的軟件開發(fā)模型基于構件的軟件開發(fā)模型基于構件的軟件開發(fā)過程模型基于構件的軟件開發(fā)過程模型計劃計劃風險分析風險分析用戶通信用戶通信產品開發(fā)與發(fā)布產品開發(fā)與發(fā)布用戶評估用戶評估將新構件將新構件存入庫中存入庫中候選構件候選構件在構件庫中在構件庫中查找構件查找構件進行下一次進行下一次迭代迭代構造構件構造構件是否存在是否存在 構件?構件?是是否否提取構件提取構件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è)務構件的設計企業(yè)信息系統(tǒng)業(yè)務構件的設計業(yè)務構件設計過程業(yè)務構件設計過程1.識別過程構件聚類分析計算關聯(lián)值2.識別實體構件選擇核心實體聚類分析計算關聯(lián)值3.設計過程構件界面4.設計

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

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

溫馨提示

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

評論

0/150

提交評論