




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件復用及軟構件哈爾濱工業(yè)大學計算機學院唐好選Email:tanghx@
主要內容軟件復用技術軟構件與構件模型基于構件的軟件開發(fā)典型的構件模型軟件復用技術軟件復用技術軟件復用的需求軟件復用的根本原因軟件復用的基本概念實現復用的關鍵因素復用的研究與實踐活動軟件復用的形式軟件復用對軟件質量的影響復用的案例在軟件的發(fā)展歷程中,大多數軟件均針對某個具體應用開發(fā),大量軟件開發(fā)都從頭開始,經過需求分析、設計、實現、測試,最后交付使用,因此出現了大量同類軟件(如財務軟件、MIS軟件等)的重復開發(fā)出現的問題浪費了有限的資源軟件質量整體較低軟件復用的需求工業(yè)界大多數新產品生產離不開已有的部件-通過組裝完成在軟件生產領域,也希望有一些軟件工廠或車間專門生產軟構件(Component),在軟件生產中模擬工業(yè)產品設計及生產經驗,大量復用已有構件,從而實現降低成本和提高生產率目標軟件復用的需求軟件復雜性持續(xù)增長功能需求:
計算機解決方案成為各領域技術創(chuàng)新核心非功能需求:出錯率、并發(fā)用戶數、事務吞吐量等要求技術需求:分布式計算機網絡軟件需求量的增大使目標執(zhí)行平臺具有多樣性組織需求:需要分布式開發(fā)團隊和遠程辦公第三方產品和軟件包的使用中經常遇到定義問題、說明問題、開發(fā)維護費用問題計算機技術變化的速度增加了具有較長生命周期項目的風險(早期技術過時了)十年前開發(fā)的關鍵系統(tǒng)仍在運行軟件開發(fā)過程面臨的挑戰(zhàn)示例:一個應用程序的一組目標部署技術單一產品的功能需求單一產品的部署需求單一產品的架構要求早期應用系統(tǒng)結構和支持工具的功能典型的工具功能生成數據庫模式數據庫優(yōu)化用戶界面設計數據分布和復制
服務器應用程序如數據庫
局域網客戶端當前應用系統(tǒng)結構和支持工具的功能
局域網Web服務器和應用程序代理Internet/Intranet客戶端
服務器應用程序如數據庫典型的工具功能:提供服務器遠程訪問生成瀏覽器界面服務器到Web頁面的轉換未來應用系統(tǒng)的結構和支持工具的功能
局域網
Web服務器和應用程序代理Internet/Intranet客戶端
服務器應用程序如數據庫
可復用構件服務典型的工具功能:分類可復用構件智能構件搜索瀏覽/查詢構件現有構件的更新遠程構件集成(1)簡化大規(guī)模分布式軟件構架設計和管理構架層確定解決方案的基本“形狀”(體系結構風格)機制層考慮分布式系統(tǒng)的實現、部署和運行時的管理等服務層考慮構架成員之間的接口及交互未來應用系統(tǒng)開發(fā)關鍵問題的解決方案(2)為系統(tǒng)的可復用部分建模構件相關技術進一步發(fā)展出現了面向對象語言特定領域庫和框架開始出現供應商的支持Web基礎設施正在成熟學術界對構件接口、構件集成及檢測、構件修復等方法有了更深理解軟件復用的根本原因(1)通過對應用系統(tǒng)組成成分的復用可避免重復勞動(1)通用基本構件:特定于計算機系統(tǒng)的構成成分,如基本數據結構、用戶界面元素等,可以存在于各種應用系統(tǒng)中(2)領域共性構件:應用系統(tǒng)所屬領域的共性構成成分,存在于該領域的各個應用系統(tǒng)中(3)應用專用構件:是每個應用系統(tǒng)特有構成成分重復勞動主要集中在前兩類構成成分的重復開發(fā)軟件復用可以避免重復勞動
軟件復用的根本原因(2)軟件復用是指通過已有軟件的各種有關知識來建立新的軟件,這些知識包括:領域知識、開發(fā)經驗、設計經驗、體系結構、需求、設計、編碼、測試和文檔等嚴格意義上的軟件復用是指:重復使用“為了復用目的而設計的軟件”的過程
復用的基本概念軟件復用行為主要發(fā)生在三個維度時間維:使用以前的軟件版本作為新版本的基礎,加入新功能,適應新需求,即軟件維護
平臺維:以某平臺上的軟件為基礎,修改和運行平臺相關的部分,使其運行于新平臺,即軟件移植應用維:將某軟件(或其中構件)用于其他應用系統(tǒng)中,新系統(tǒng)具有不同功能和用途,即真正的軟件復用復用的基本概念依據復用對象,可將軟件復用分為產品復用:指復用已有的軟件構件,通過構件集成(組裝)得到新系統(tǒng)過程復用:指復用已有的軟件開發(fā)過程,使用可復用的應用生成器來自動或半自動地生成所需系統(tǒng)依據對可復用信息進行復用的方式,可將軟件復用分為黑盒復用:指對已有構件不需作任何修改,直接進行復用白盒復用:已有構件并不能完全符合用戶需求,需要根據用戶需求進行適應性修改后才可使用復用的基本概念軟件復用的三個基本問題必須有可以復用的對象復用對象必須是有用的復用者要知道如何使用被復用的對象軟件復用包括兩個相關的過程可復用軟件(構件)的開發(fā)(DevelopmentforReuse)基于可復用軟件(構件)的應用系統(tǒng)構造(集成和組裝)(DevelopmentwithReuse)如何實現復用實現復用的關鍵因素(技術和非技術因素)包括:軟件構件技術(SoftwareComponentTechnology)領域工程(DomainEngineering)軟件體系結構(SoftwareArchitecture)軟件再工程(SoftwareReengineering)開放系統(tǒng)(OpenSystem)軟件過程(SoftwareProcess)CASE技術其它非技術因素實現復用的關鍵因素實現復用的關鍵因素構件獲?。河心康牡臉嫾a和從已有系統(tǒng)中挖掘提取構件構件模型:研究構件的本質特征及構件間的關系構件描述語言:以構件模型為基礎,解決構件的精確描述、理解及組裝問題構件分類與檢索:研究構件分類策略、組織模式及檢索策略,建立構件庫系統(tǒng),支持構件的有效管理構件組裝:在構件模型基礎上研究構件組裝機制,包括源代碼級的組裝和基于構件對象互操作性的運行級組裝構件標準化:構件模型的標準化和構件庫系統(tǒng)的標準化復用技術因素-構件技術對系統(tǒng)整體結構設計的刻劃,包括全局組織結構、構件間的通訊、數據訪問協(xié)議、元素之間的功能分配和物理分布等在基于復用的軟件開發(fā)中,為復用而開發(fā)的軟件體系結構可以作為一種大粒度的、抽象級別較高的軟構件進行復用軟件體系結構(構架)研究包括:軟件體系結構(構架)原理和風格軟件體系結構(構架)的描述和規(guī)約特定領域軟件體系結構(構架)構件向軟件體系結構(構架)的集成機制等復用技術因素-軟件體系結構(構架)技術領域工程是為一組相似或相近系統(tǒng)建立基本能力和必備基礎的過程,它覆蓋了建立可復用軟構件的所有活動復用技術因素-領域工程技術領域分析:目標是獲得領域模型(DomainModel)領域設計:目標是獲得領域構架(Domain-SpecificSoftwareArchitecture,縮寫為DSSA)領域實現:主要行為是定義將需求翻譯到由可復用構件創(chuàng)建的系統(tǒng)的機制。這種機制可能是一組與領域模型和DSSA相聯系的可復用構件,也可能是應用系統(tǒng)的生成器復用技術因素-領域工程技術復用技術因素-軟件再工程技術軟件復用中的一些問題現有軟件系統(tǒng)如何適應當前技術的發(fā)展及需求的變化,采用可復用的軟件構架并提煉出可復用的軟件構件?現存大量的遺產軟件系統(tǒng)由于技術發(fā)展,正逐漸退出使用,如何對這些系統(tǒng)進行挖掘、整理,得到有用的軟件構件?已有軟件構件隨著時間流逝會逐漸變得不可使用,如何對其進行維護,以延長其生命期,充分利用這些可復用構件?軟件再工程(SoftwareReengineering)是解決這些問題的主要技術手段復用技術因素-軟件再工程技術軟件再工程是一個工程過程,它將逆向工程、重構和正向工程組合起來,將現存系統(tǒng)重新構造為新的形式再工程的基礎是系統(tǒng)理解,包括對運行系統(tǒng)、源代碼、設計、分析、文檔等的全面理解開放系統(tǒng)技術的基本原則是在系統(tǒng)的開發(fā)中使用接口標準,同時使用符合接口標準的實現,為系統(tǒng)間的互操作提供保證分布對象技術使得符合接口標準的構件可以方便地以“即插即用”的方式組裝到系統(tǒng)中,實現黑盒復用。這樣,在符合接口標準的前提下,構件就可以獨立地進行開發(fā),從而形成獨立的構件制造業(yè)復用技術因素-開放系統(tǒng)技術復用的研究與實踐活動領域工程產品線系統(tǒng)構件及構件庫的標準化構件組裝技術:CORBA,COM,EJB,WebService基于復用的軟件開發(fā)過程復用成熟度模型(RMM)復用的研究與實踐活動-構件庫框架復用的研究與實踐活動-復用軟件開發(fā)過程①初始級:不協(xié)調的復用努力,復用是個人行為②監(jiān)控級:管理上知道復用,但不作為重點,復用是小組的行為③協(xié)調級:鼓勵復用,但沒有投資。復用的范圍包括整個部門,有配置管理和構件文檔的數據庫,復用的對象包括子系統(tǒng)、模式和框架④計劃級:存在組織上的復用支持。在項目級別支持復用,有復用庫,復用的對象包括應用生成器⑤固有級:規(guī)范化的復用支持。復用成為整個企業(yè)范圍的行為,有一組領域相關的復用庫,復用的對象包括DSSA復用的研究與實踐活動-復用成熟度模型(1)代碼和設計拷貝(2)源代碼復用:復用存放在庫中的源代碼構件(3)設計和軟件體系結構(softwarearchitecture)復用(4)應用程序生成器(applicationgenerator)復用:復用整個軟件系統(tǒng)的設計,包括軟件體系結構、體系結構中的主要子系統(tǒng)、特定的數據結構和算法等(5)領域特定的軟件體系結構(DSSA)復用軟件復用的粒度根據復用活動所跨越的領域垂直式(縱向)復用水平式(橫向)復用根據實現復用的途徑組裝式(compositional)復用生成式(generative)復用根據復用方式黑盒復用白盒復用軟件復用的形式獲取并生產可復用構件或對可復用構件再工程的活動領域分析:收集樣本,抽取領域的應用體系結構建立領域特定的可裁剪和擴充的基準體系結構模型標識候選構件泛化和可變性分析,提高通用性;使可變部分局部化重建構件構件測試,提高可靠性構件包裝,以便分類儲存和檢索構件入庫:存入構件庫生產者復用(producerreuser)創(chuàng)建新軟件時使用可復用構件的活動建立應用系統(tǒng)的體系結構模型尋找候選構件評價和選擇合適的構件構件的修改和特化開發(fā)未被復用的部分構件組裝集成測試評價被復用構件,并推薦可能的新構件,擴充和完善構件庫消費者復用(Consumerreuser)隨著復用次數不斷增加,可復用構件可看成幾乎無錯有關研究報告被復用代碼的錯誤率為0.9個錯誤/千行代碼新開發(fā)代碼錯誤率為:4.1個錯誤/千行代碼軟件復用對提高軟件質量和可靠性確實是有效的大約30%-50%的復用可使生產率提高25%-40%軟件復用對軟件質量的影響軟件復用對軟件成本的影響可復用的軟件制品4年回報可復用的軟件制品4年回報項目計劃×2源代碼×6成本估計×3用戶和技術文檔×1.5體系結構×1.5用戶界面×1需求模型規(guī)約×3數據×3.5設計×5測試案例×3.5復用方法的案例復用方法案例軟構件及構件模型軟件體系結構中的構件軟件體系結構是指軟件總體結構框架,由結構元集、結構形以及結構理三部分組成結構元集為一組構成該體系結構的結構元(即構件)[分為處理元(對信息元實施變換)、信息元(含有可用信息)和連接元(連接其它構件)]結構形包括特性(用以約束結構元的選?。┡c聯系(約束不同結構元之間的交互與組織)結構理刻畫體系結構的選取及各個組成部分的關系C2體系結構中的構件網上選課系統(tǒng),包含3個構件Student構件:管理學生基本信息Course構件:管理課程信息Order構件:處理學生對課程的選修操作Student構件Course構件Order構件1.選修課程2.獲取學生信息3.發(fā)送學生信息4.獲取課程信息5.發(fā)送課程信息6.發(fā)送結果構件模型構件模型是關于構件本質特征的抽象描述3C構件模型(1989)由構件三方面的描述組成:概念(Concept):關于構件“做什么”的描述,包括接口規(guī)約和語義描述內容(Content):概念的具體實現周境(Context):構件與外圍環(huán)境在概念級和內容級的關系REBOOT(REuseBasedonObject-OrientedTechnology)模型:基于呈面(facet)的模型。呈面可以描述構件執(zhí)行的功能、所操作的數據、構件應用的周境(上下文)或任何其它特征構件是“語義完整,語法正確,有可復用價值的、獨立的、可交付的、對一系列軟件操作的包裝,這種包裝可用來構造應用程序或更大的構件”關于構件的理解構件提供了對一個或多個對象實現的包裝,擔當一個部署單元的作用基于構件的軟件開發(fā)基于構件的軟件開發(fā)基于構件的軟件開發(fā)(CBSD:ComponentBasedSoftwareDevelopment)指在軟件系統(tǒng)開發(fā)中使用己有軟構件的方法和技術CBSD的組成領域工程(DomainEngineering)軟件工程
(SoftwareEngineering)領域分析軟件結構開發(fā)可復用構件開發(fā)領域模型結構模型可復用構件庫分析結構設計構件選用構件調整構件組合構件工程測試構件更新應用軟件領域工程構件開發(fā)
基于構件的軟件開發(fā)模型基于構件的軟件開發(fā)過程模型計劃風險分析用戶通信產品開發(fā)與發(fā)布用戶評估將新構件存入庫中候選構件在構件庫中查找構件進行下一次迭代構造構件是否存在構件?是否提取構件UIRequirmentBusinessEventBusinessProcessBusinessEntityNon-FunctionalRequirmentRequirmentSpaceSoftwareDesignSpaceUIComponent1UIComponent2ApplicationInterfaceLayerPC1PC2BusinessProcessLayerEC1EC2BusinessEntityLayerComponentContainerLayerPlatformSoftwareLayerBusinessRule企業(yè)信息系統(tǒng)業(yè)務構件的設計業(yè)務構件設計過程1.識別過程構件聚類分析計算關聯值2.識別實體構件選擇核心實體聚類分析計算關聯值3.設計過程構件界面4.設計實體構件界面過程構件描述UML類圖實體構件描述UML類圖業(yè)務用例模型UML用例圖UML活動圖業(yè)務實體模型UML類圖聚類分析識別過程構件識別實體構件設計業(yè)務構件接口識別業(yè)務構件將所有需要分類的n個樣本點記為X={Xl}(l=1,...,n).此時,集合X中的每個樣本點自成一類確定任意兩個樣本點之間的關聯值(即相似程度)的計算方法,將樣本點Xi
與Xj
之間的關聯值記為Rij計算n個樣本點兩兩之間關聯值,得樣本點間的關聯值矩陣D選定一個合理的最小關聯值Rmin,將其作為將兩個樣本點放入一個聚集的判定依據依據關聯值矩陣D每個單元的關聯值Rij,執(zhí)行聚類過程如果Rij〉=Rmin,則將樣本點Xi
和樣本點Xj
放入一個聚集如果Xi
和Xj
屬于一個聚集,且Xi
和Xk
屬于一個聚集,那么將Xi,Xj,Xk
放入一個聚集聚類分析過程構件是對業(yè)務過程和業(yè)務規(guī)則的封裝,采用UML用例圖和活動圖描述的業(yè)務用例是一種較為通用的描述業(yè)務過程的表示元素業(yè)務用例之間的關系包括包含(include)關系:Rij=1擴展(extend)關系:Rij=2泛化(generalization)關系:Rij=3其它關系:Rij=0識別過程構件實體構件是對業(yè)務實體及相關業(yè)務規(guī)則的封裝,使用UML類圖中的類來描述,識別實體構件所需的X樣本點集合以UML類圖中的業(yè)務實體(類)為基礎識別的步驟為計算靜態(tài)關聯值,選擇權重(泛化關系為5,組合關聯為4,聚集關聯為3,有向關聯為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度師資培訓師帶徒合作協(xié)議書
- 二零二五年度寵物貓寄養(yǎng)與寵物攝影及后期制作服務協(xié)議
- 二零二五年度交通事故車輛維修費用自行協(xié)議書
- 二零二五年度房屋繼承糾紛調解與遺產繼承合同
- 2025年度新能源項目開發(fā)解除委托代理合同
- 二零二五年度企業(yè)財務會計勞動合同
- 二零二五年度法律服務臨時律師及助理人員雇傭協(xié)議
- 2025年度環(huán)境監(jiān)測與治理外聘專家咨詢協(xié)議
- 二零二五年度養(yǎng)殖場養(yǎng)殖場品牌推廣用工合同
- 2025年度門店轉讓合同:健身房經營權的轉移協(xié)議
- 2025年醫(yī)保知識考試題庫及答案-醫(yī)保定點醫(yī)療機構管理流程詳解試題
- 竣工結算審計服務投標方案(2024修訂版)(技術方案)
- 物流無人機垂直起降場選址與建設規(guī)范
- 走向復興-合唱簡譜(共2頁)
- 材料成形設備簡介(共159頁).ppt
- 動靜脈內瘺的護理ppt課件
- 英語四線三格 A4 藍紅線
- Counting Stars 歌詞
- 鋼結構工程監(jiān)理規(guī)劃(完整版)
- ISO 9692-1-2003 中文
- 陜西綠源天燃氣有限公司子洲LNG工廠聯動試車方案
評論
0/150
提交評論