版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、構(gòu)件化軟件Component Software2022/7/18Institute of Computer SoftwareNanjing University1RoadmapOO基本原理Abstract Data TypeDesign by Contract敏捷軟件開發(fā)方法OO設(shè)計原則OO設(shè)計模式應(yīng)用框架技術(shù)AOP構(gòu)件技術(shù)2022/7/18Institute of Computer SoftwareNanjing University2摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2022/7/18Institute of Computer SoftwareNanjing University3摘要引言構(gòu)件
2、構(gòu)件技術(shù)構(gòu)件的組合2022/7/18Institute of Computer SoftwareNanjing University4引言2022/7/18Institute of Computer SoftwareNanjing University5Software should be componentized built from prefabricated components Douglas McIlroys address at the NATO conference on software engineering in Garmisch, Germany, 1968 title
3、d Mass Produced Software Components. 引言軟件問題的核心質(zhì)量不高 生產(chǎn)率低 常常是一對矛盾能不能向其它成熟產(chǎn)業(yè)學(xué)習(xí)?復(fù)用分工市場競爭但軟件有其自身特點2022/7/18Institute of Computer SoftwareNanjing University6引言2022/7/18Institute of Computer SoftwareNanjing University7復(fù)用 不完全一致的使用場景分工 難以完全解除的部件耦合市場競爭 不能沿用物質(zhì)產(chǎn)品的盈利模式引言基于構(gòu)件的軟件開發(fā)一直未曾完全實現(xiàn)的老想法重用“工業(yè)化”影響因素不僅限于技術(shù)層面20
4、22/7/18Institute of Computer SoftwareNanjing University8回顧:軟件領(lǐng)域的發(fā)展程序設(shè)計方法的發(fā)展軟件需求的變化軟件環(huán)境的變化軟件開發(fā)模式的變化2022/7/18Institute of Computer SoftwareNanjing University9程序設(shè)計方法的發(fā)展功能分解法 計算任務(wù)結(jié)構(gòu)化程序設(shè)計 以數(shù)據(jù)為中心面向?qū)ο蟪绦蛟O(shè)計 以對象為中心構(gòu)件(組件)程序設(shè)計 以構(gòu)件為中心2022/7/18Institute of Computer SoftwareNanjing University10綜合使用軟件需求的變化計算2022/7/
5、18Institute of Computer SoftwareNanjing University11實用管理(MIS)分布式系統(tǒng)軟件環(huán)境的變化單任務(wù)2022/7/18Institute of Computer SoftwareNanjing University12多任務(wù)文字界面圖形界面單線程多線程平臺相關(guān)跨平臺單機(本地)網(wǎng)絡(luò)(分布式)單一語言多種語言軟件開發(fā)模式機器碼2022/7/18Institute of Computer SoftwareNanjing University13高級語言和腳本代碼OS + Compiler + EditorOS + Compilers + IDEs
6、+ Libraries + Wizards+ Components + other infrastructures+ 經(jīng)驗發(fā)展變化的結(jié)果軟件學(xué)科的形成不變因素:計算機的基本運作模式探求新的計算模型量子計算 ?生物信息學(xué)?2022/7/18Institute of Computer SoftwareNanjing University14回顧軟件學(xué)科多年來的變化2022/7/18Institute of Computer SoftwareNanjing University15軟件的產(chǎn)生過程:原始代碼編譯 Link 終代碼、腳本混合軟件的分發(fā)過程:文檔、說明書、自動安裝工具、培訓(xùn)、升級軟件工程:
7、需求分析設(shè)計 code test 使用對象技術(shù)和構(gòu)件技術(shù)的不斷普及,與大環(huán)境發(fā)展相結(jié)合對象技術(shù)2022/7/18Institute of Computer SoftwareNanjing University16用一種新的思路來看待問題多年的發(fā)展證明了OO符合軟件的規(guī)律對象技術(shù)的發(fā)展需要開發(fā)工具和開發(fā)語言的支持三大特性:封裝性、繼承性、多態(tài)性兩種思想Object-BasedObject-Oriented構(gòu)件技術(shù)2022/7/18Institute of Computer SoftwareNanjing University17構(gòu)件技術(shù)適合于現(xiàn)代的軟件環(huán)境軟件更新快、規(guī)模大、強調(diào)協(xié)作等構(gòu)件的概念
8、、軟件IC構(gòu)件的可獨立發(fā)布性要求“接口與實現(xiàn)分離”構(gòu)件infrastructure,構(gòu)件體系COM、CORBA(和Java)、.NET中間件(middleware)市場摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2022/7/18Institute of Computer SoftwareNanjing University18構(gòu)件參考文獻Clemens Szyperski, Dominik Gruntz, Stephan Murer. Component Software: Beyond Object-Oriented Programming, Second Edition.2022/7/18Instit
9、ute of Computer SoftwareNanjing University19構(gòu)件的特性獨立部署單元 必須能跟它所在的環(huán)境及其它構(gòu)件完全分離,因此必須封裝自己的全部內(nèi)部特征 (原子性)作為第三方的組裝單元 必須封裝它的實現(xiàn),并且只通過良好定義的接口與外部環(huán)境進行交互 (足夠好的內(nèi)聚性)沒有(外部的)可見狀態(tài) 構(gòu)件不能與自己的拷貝有所區(qū)別,但某些特殊屬性可以沒有此種限制2022/7/18Institute of Computer SoftwareNanjing University20比較構(gòu)件 vs. 對象構(gòu)件的行為可以通過對象來實現(xiàn)但是構(gòu)件并非一定要包含類元素,它甚至可以不包含類難以
10、判斷一個構(gòu)件內(nèi)部是否是“完全面向?qū)ο蟆钡臉?gòu)件 vs. 模塊模塊化是構(gòu)件技術(shù)產(chǎn)生的前提但對于構(gòu)件,傳統(tǒng)的模塊化概念和標(biāo)準(zhǔn)是遠(yuǎn)遠(yuǎn)不夠的2022/7/18Institute of Computer SoftwareNanjing University21一個實例單元,具有唯一的標(biāo)志;可能具有外部可見狀態(tài);封裝狀態(tài)和行為包多個類構(gòu)件分類:白盒,灰盒,黑盒白盒:提供構(gòu)件的同時也提供實現(xiàn)構(gòu)件的全部代碼,應(yīng)用構(gòu)件時需要對源代碼進行某些修改,然后才能把它集成到系統(tǒng)中實現(xiàn)一定的目的灰盒:只提供有關(guān)界面部分的源代碼,對構(gòu)件的內(nèi)核不清楚,只能在接口界面上做一些用戶化的工作黑盒:完全不提供代碼,只提供構(gòu)件的二進制可執(zhí)
11、行形式2022/7/18Institute of Computer SoftwareNanjing University22COTSCommercial Off The Shelf現(xiàn)成買來的,即強調(diào)構(gòu)件的預(yù)制性不提供源碼,強調(diào)構(gòu)件的封裝性和透明性強調(diào)可互換性不是為某一個客戶定制的,而是某一領(lǐng)域中通用的2022/7/18Institute of Computer SoftwareNanjing University23軟件構(gòu)件定義Clemens Szyperski,1996:A software component is a unit of composition with contractua
12、lly specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties. 2022/7/18Institute of Computer SoftwareNanjing University24軟件構(gòu)件定義軟件構(gòu)件是一種組裝單元,它具有規(guī)范的接口契約和顯式的語境依賴,軟件構(gòu)件可以被獨立地部署并由第三方任意地組裝技術(shù)因素:獨立性、合約接口,組裝市場
13、因素:第三方,部署2022/7/18Institute of Computer SoftwareNanjing University25軟件構(gòu)件接口:用戶與構(gòu)件發(fā)生交互的連接渠道,第三方只能通過構(gòu)件接口的規(guī)格說明理解和復(fù)用構(gòu)件接口規(guī)格說明是一種契約,它足夠精確地描述構(gòu)件實現(xiàn)的功能,同時不把構(gòu)件限定于唯一的實現(xiàn)方法e.g. IDL, WSDL2022/7/18Institute of Computer SoftwareNanjing University26軟件構(gòu)件顯式語境依賴構(gòu)件的需求:為了使構(gòu)件正常工作,必須說明其對部署環(huán)境的具體要求。這些要求被稱為語境依賴,指的是構(gòu)件組裝和部署的語境。包括
14、了定義組裝規(guī)則的構(gòu)件模型和定義構(gòu)件部署、安裝和激活規(guī)則的構(gòu)件平臺。Required Interfaces2022/7/18Institute of Computer SoftwareNanjing University27構(gòu)件的規(guī)模“最大化重用”策略:只實現(xiàn)核心功能,然后重用其他所有的一切。缺點:語境依賴的爆炸性增長2022/7/18Institute of Computer SoftwareNanjing University28最大化重用降低了可用性健壯性簡潔性0100%重用率增加語境依賴會使構(gòu)件因重用而簡潔,但卻降低其可用性增加自給性可以減少語境依賴,增加可用性,并且使構(gòu)件更加健壯,但卻
15、使構(gòu)件規(guī)模過大構(gòu)件基礎(chǔ)設(shè)施構(gòu)件基礎(chǔ)設(shè)施(infrastructure)是異構(gòu)構(gòu)件互操作的標(biāo)準(zhǔn)和通信平臺構(gòu)件框架(framework)是構(gòu)件實例即插即用的支撐結(jié)構(gòu),通過一定的環(huán)境條件和交互規(guī)則,構(gòu)件框架允許一組構(gòu)件形成一個孤島,獨立地與外部構(gòu)件或其它框架交互和協(xié)作,構(gòu)件框架及其內(nèi)含的構(gòu)件也可以視為一個構(gòu)件。OMG CORBA, Microsoft COM/DCOM (或.NET),SUN JavaBean/EJB2022/7/18Institute of Computer SoftwareNanjing University29軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)(Software Architecture
16、)是對系統(tǒng)宏觀結(jié)構(gòu)的描述,是由一組構(gòu)件(components),連接件(connectors)以及配置(configuration)組成。在較高級別上抽象出不同系統(tǒng)的共性有助于軟件工程師在設(shè)計早期正確選擇軟件構(gòu)架便于對軟件系統(tǒng)的性質(zhì)進行描述和分析構(gòu)架本身是可復(fù)用的資產(chǎn),軟件構(gòu)架設(shè)計的復(fù)用會促進軟件代碼復(fù)用,軟件構(gòu)架為構(gòu)件的組裝提供了框架和語境2022/7/18Institute of Computer SoftwareNanjing University30摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2022/7/18Institute of Computer SoftwareNanjing Univers
17、ity31構(gòu)件技術(shù)MS:COM (Component Object Model), COM+, .NetOMG:CORBA (Common Object Request Broker Architecture), CCM, OMA, MDASUN:JavaBean, EJB (Enterprise JavaBean)2022/7/18Institute of Computer SoftwareNanjing University32COMCOM是MS平臺上所有構(gòu)件的基石93年發(fā)布,脫胎于MS的OLE (Object Linking and Embedding)規(guī)范+實現(xiàn)96年,DCOM2022
18、/7/18Institute of Computer SoftwareNanjing University33COM:構(gòu)件對象模型2022/7/18Institute of Computer SoftwareNanjing University34建立在二進制層次上的標(biāo)準(zhǔn)許多概念與C+的特征相似,如vtable程序與程序之間的通信建立在此基礎(chǔ)上COM規(guī)范平臺無關(guān)定義了大量的標(biāo)準(zhǔn)接口用于各種用途COM實現(xiàn)平臺相關(guān)Windows實現(xiàn)了規(guī)范要求以及許多輔助功能COM特性2022/7/18Institute of Computer SoftwareNanjing University35語言無關(guān)規(guī)范和
19、實現(xiàn)都是語言無關(guān)的進程透明 位置透明inproc server、out-of-proc server可重用性多線程特性可擴展性COM:接口2022/7/18Institute of Computer SoftwareNanjing University36COM接口IID:128位的全局唯一標(biāo)識符接口定義語言COM IDL對應(yīng)于C+中由純虛函數(shù)組成的類基接口:IUnknownCOM接口特性:接口不變性繼承性多態(tài)性運行時刻的多態(tài)性COM:對象2022/7/18Institute of Computer SoftwareNanjing University37COM對象CLSID實現(xiàn)多個接口COM
20、對象特性:身份確定封裝可重用COM:構(gòu)件2022/7/18Institute of Computer SoftwareNanjing University38COM對象的載體包含多個COM對象進程內(nèi)構(gòu)件DLLExport Entrys進程外構(gòu)件IPC:RPC/LPCCOM:進程內(nèi)構(gòu)件2022/7/18Institute of Computer SoftwareNanjing University39Inproc serverExport EntrysCOM:進程外構(gòu)件2022/7/18Institute of Computer SoftwareNanjing University40Out-o
21、f-proc serverCOM:遠(yuǎn)程構(gòu)件2022/7/18Institute of Computer SoftwareNanjing University41remote serverCOM:構(gòu)件信息發(fā)布2022/7/18Institute of Computer SoftwareNanjing University42注冊表發(fā)布構(gòu)件的信息、對象的信息、接口的信息等注冊工具和配置工具Regsvr32.exe.reg自注冊 -RegServerDCOMCNFG.EXEMTS Explorer、活動目錄COM:創(chuàng)建COM對象2022/7/18Institute of Computer Softw
22、areNanjing University43對象的創(chuàng)建過程COM:COM對象管理2022/7/18Institute of Computer SoftwareNanjing University44客戶使用規(guī)則,控制對象生命周期COM實現(xiàn)優(yōu)化各種輔助手段構(gòu)件類別 component category類別標(biāo)識符CATIDMTS和COM+COM:COM體系2022/7/18Institute of Computer SoftwareNanjing University45基本的功能擴展功能連接點結(jié)構(gòu)化存儲名字服務(wù)自動化其他COM+COM:COM+2022/7/18Institute of Com
23、puter SoftwareNanjing University46建立在COM的基礎(chǔ)上,COM的自然延伸Services事件服務(wù)隊列服務(wù)事務(wù)服務(wù)負(fù)載平衡其他COM:應(yīng)用2022/7/18Institute of Computer SoftwareNanjing University47OLEActiveX control腳本功能擴展OLE DBADSI (Active Directory Service Interfaces)ASP其他COM:分布式應(yīng)用2022/7/18Institute of Computer SoftwareNanjing University48COM/COM+為基于
24、Windows的分布式應(yīng)用提供了基礎(chǔ)設(shè)施TransactionSecurityOLE DBWeb集成Active Directory管理功能CORBA2022/7/18Institute of Computer SoftwareNanjing University49OMG,800多家廠商聯(lián)合制定的標(biāo)準(zhǔn)91年 1.0,主要是C語言映射95年 2.0,加入IIOP最新版本3.0CORBA規(guī)范制訂了互操作規(guī)范,上層標(biāo)準(zhǔn)協(xié)議一系列映射到多種語言的規(guī)范各種服務(wù)相關(guān)的規(guī)范CORBA實現(xiàn):ORBCORBA體系結(jié)構(gòu)2022/7/18Institute of Computer SoftwareNanjing
25、University50CORBA:跨平臺、跨語言2022/7/18Institute of Computer SoftwareNanjing University51典型的語言:C+語言、Java語言、Smalltalk多種平臺關(guān)鍵:IOR(Interoperable Object reference)ORB實現(xiàn)部分ORB實現(xiàn)商業(yè)ORBOrbix,IONA公司Visibroker,Inprise公司,4.0版完全支持2.3規(guī)范Netscape communicator瀏覽器嵌入Visibroker自由ORBORBit,遵循CORBA 2.2規(guī)范,支持C語言,性能較高mico,GNU,Open
26、SourceTAO,美國華盛頓大學(xué)分布式對象計算研究小組omniORB,AT&T劍橋?qū)嶒炇覈a(chǎn)ORB國防科大的嵌入式CORBA(eBus)東南大學(xué)的ORBUS2022/7/18Institute of Computer SoftwareNanjing University52CORBA:客戶2022/7/18Institute of Computer SoftwareNanjing University53客戶通過stub或者CORBA庫與對象或者ORB進行通信CORBA:對象2022/7/18Institute of Computer SoftwareNanjing University54
27、對象與OA進行通信CORBA:C+映射開發(fā)過程2022/7/18Institute of Computer SoftwareNanjing University55編寫IDLIDLC+利用生成的stub類編寫客戶利用生成的impl類編寫服務(wù)器對象以字符串形式傳遞ORCORBA:核心2022/7/18Institute of Computer SoftwareNanjing University56CORBA IDL支持多繼承支持結(jié)構(gòu)化數(shù)據(jù)類型字符串形式的ORPOA (Portable Object Adapter)CORBA對象的環(huán)境context策略設(shè)置CORBA:核心(續(xù))2022/7/1
28、8Institute of Computer SoftwareNanjing University57GIOP(General Inter-ORB Protocol)互操作協(xié)議框架IIOP(Internet Inter-ORB Protocol)IORCORBA對象的標(biāo)識實現(xiàn)倉庫、接口倉庫未標(biāo)準(zhǔn)化CORBA:服務(wù)2022/7/18Institute of Computer SoftwareNanjing University58命名服務(wù)層次命名綁定Trading Service功能更強、使用更靈活的對象查詢服務(wù)事件服務(wù)事件發(fā)送方和接受方之間的decoupleCCM: Corba Compone
29、nt Model2022/7/18Institute of Computer SoftwareNanjing University59EJBJ2EEEJB 在 J2EE 中的位置2022/7/18Institute of Computer SoftwareNanjing University60EJB2022/7/18Institute of Computer SoftwareNanjing University61EJBSession BeansEntity BeansMessage-driven beans2022/7/18Institute of Computer SoftwareNan
30、jing University62摘要引言構(gòu)件構(gòu)件對象模型構(gòu)件的組合2022/7/18Institute of Computer SoftwareNanjing University63構(gòu)件的組合Components are for compositionConnection-oriented composition 面向連接Contextual composition 上下文語境Data-driven composition 數(shù)據(jù)驅(qū)動Federation and peer-to-peer 聯(lián)盟和對等2022/7/18Institute of Computer SoftwareNanjing
31、University64Connection-oriented compositionWiring outgoing and incoming interfaces.對于一個接口來說 非對稱Caller - callee當(dāng)對于component來說 可以同時充當(dāng)caller和callee (組合時刻)類型檢查2022/7/18Institute of Computer SoftwareNanjing University65Component InterfacesBehavior constraints: 對于一個提供數(shù)據(jù)庫訪問接口的構(gòu)件login query add del logoutlo
32、gin (query | add | del)* logoutNon-functional requirementsVersions2022/7/18Institute of Computer SoftwareNanjing University66Component interfacesCall-backsCall-back procedureObject reference2022/7/18Institute of Computer SoftwareNanjing University67Contextual composition設(shè)想諸如Transaction、Security等非功能特
33、性如何在分布構(gòu)件組裝中得以實現(xiàn)?幾乎每個實際分布構(gòu)件系統(tǒng)都用到由開發(fā)者在功能代碼中實現(xiàn)?太復(fù)雜可否另加? (separation of concerns)!How to?自動化?2022/7/18Institute of Computer SoftwareNanjing University68Contextual composition:Domains and contexts2022/7/18Institute of Computer SoftwareNanjing University69c1c3uvwxc2Load-balancing domain(RsrcID=7)Transaction domain(TxID=42)跨越語境邊界的調(diào)用被攔截,然后根據(jù)語境屬性或者被預(yù)處理,或者被置后處理,或者被拒絕如果兩個構(gòu)件共享一組兼容的語境屬性集,則它們可以被看做是處在同一域中Contextual composition使用“Containers”EJB containersCCM containersCLR contexts and channels以前的container只支持預(yù)定義的context, 但新技術(shù).NE
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中心校安全制度
- 校園安全搜查線課件
- 2026年雄安未來產(chǎn)業(yè)技術(shù)研究院(事業(yè)單位)招聘44人備考題庫及答案詳解一套
- 2026年泰和縣教育體育局所屬事業(yè)單位競爭性選調(diào)工作人員的備考題庫及一套完整答案詳解
- 2026中國硅酸鈉熔模鑄造行業(yè)發(fā)展動態(tài)與供需趨勢預(yù)測報告
- 2025-2030中國特種潤滑油市場發(fā)展對策分析與競爭戰(zhàn)略規(guī)劃研究報告
- 2025-2030中國塑身衣市場營銷渠道與投資戰(zhàn)略可行性研究報告
- 2025至2030中國光伏儲能一體化產(chǎn)業(yè)市場供需及投資風(fēng)險評估報告
- 2025-2030中國陶瓷茶具產(chǎn)業(yè)營銷趨勢與投資價值研究分析研究報告
- 工信廳安全職責(zé)培訓(xùn)課件
- 離婚協(xié)議標(biāo)準(zhǔn)版(有兩小孩)
- 浙江省臺州市路橋區(qū)2023-2024學(xué)年七年級上學(xué)期1月期末考試語文試題(含答案)
- 假體隆胸后查房課件
- 2023年互聯(lián)網(wǎng)新興設(shè)計人才白皮書
- DB52-T 785-2023 長順綠殼蛋雞
- c語言知識點思維導(dǎo)圖
- 關(guān)于地方儲備糧輪換業(yè)務(wù)會計核算處理辦法的探討
- GB/T 29319-2012光伏發(fā)電系統(tǒng)接入配電網(wǎng)技術(shù)規(guī)定
- GB/T 1773-2008片狀銀粉
- GB/T 12007.4-1989環(huán)氧樹脂粘度測定方法
- (完整版)北京全套安全資料表格
評論
0/150
提交評論