第二十章-新型軟件開發(fā)技術(shù)課件_第1頁
第二十章-新型軟件開發(fā)技術(shù)課件_第2頁
第二十章-新型軟件開發(fā)技術(shù)課件_第3頁
第二十章-新型軟件開發(fā)技術(shù)課件_第4頁
第二十章-新型軟件開發(fā)技術(shù)課件_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二十章新型軟件開發(fā)技術(shù)近年來,由于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),尤其是Internet的高速發(fā)展,軟件開發(fā)項(xiàng)目所基于的計(jì)算環(huán)境發(fā)生了深刻的變化,這些變化對軟件工程和軟件開發(fā)方法學(xué)提出了新的研究課題。本章將對當(dāng)前軟件工程領(lǐng)域和軟件產(chǎn)業(yè)界的熱點(diǎn)技術(shù)(包括Java,對象鏈接與嵌入技術(shù),分布計(jì)算技術(shù),Internet環(huán)境下的軟件開發(fā)技術(shù))進(jìn)行簡單介紹,以便讀者了解當(dāng)前軟件開發(fā)技術(shù)的熱點(diǎn)及其發(fā)展趨勢。2023/6/6120.1Internet與Java簡介作為一種全球性的信息交流與共享網(wǎng)絡(luò),Internet在近年獲得了高速發(fā)展,國內(nèi)的Internet用戶數(shù)量也在迅速增長。Internet不僅具有豐富的信息資源,也具有方便靈活的信息服務(wù)設(shè)施。由于應(yīng)用需求的牽引和各國政府對Internet的大力支持,Internet技術(shù)仍在不斷進(jìn)步,其應(yīng)用領(lǐng)域也在不斷拓寬。可以預(yù)計(jì),Internet將發(fā)展成為信息社會(huì)的主要支柱之一。第二十章新型軟件開發(fā)技術(shù)2023/6/6220.1.1Internet簡介Internet的出現(xiàn)可以追溯到本世紀(jì)60年代初。1968美國國防部下屬的高級(jí)研究計(jì)劃局建立Internet的前身ARPANET。由于ARPANET網(wǎng)絡(luò)項(xiàng)目名為“TheInternetworkingProject”,所以,由ARPANET發(fā)展起來的網(wǎng)絡(luò)被稱為“Internet”。從用戶角度看,Internet是一個(gè)龐大的全球性計(jì)算機(jī)網(wǎng)絡(luò),它連接了大量相互獨(dú)立的計(jì)算機(jī)并提供信息交流和共享的手段。從物理角度看,Internet是一個(gè)“網(wǎng)間網(wǎng)”,它以主干網(wǎng)連接一些規(guī)模較小的子網(wǎng),子網(wǎng)再由規(guī)模更小的網(wǎng)絡(luò)互連而成,依此類推,形成一種樹型結(jié)構(gòu)。20.1Internet與Java簡介2023/6/63Internet簡介Internet所基于的傳輸協(xié)議是TCP/IP(傳輸控制協(xié)議/互連網(wǎng)協(xié)議)。Internet提供的信息服務(wù)包括電子郵件(E-mail),文件傳輸(FTP),遠(yuǎn)程登錄(Telnet),網(wǎng)絡(luò)新聞(News)以及各種查詢服務(wù)(包括Gopher,WAIS和WWW)。20.1Internet與Java簡介2023/6/6420.1.2Java的發(fā)展歷史1991年,Sun公司成立Green小組,開始從事面向家用電器市場的軟件產(chǎn)品的研究與開發(fā)。研究小組最初曾希望擴(kuò)充C++作為編程語言,但后來發(fā)現(xiàn)C++在簡單性和安全性方面無法滿足家用電器集成控制軟件的要求,因而決定自行開發(fā)新語言,這種語言就是Java的前身,當(dāng)時(shí)名為Oak.1992年8月,Oak與GreenOS(一種操作系統(tǒng))、用戶接口模塊和硬件模塊被集成為StarSeven。Sun將Oak技術(shù)與WWW結(jié)合起來,并采用“InternetPlay”(允許用戶在Internet上免費(fèi)使用)策略占領(lǐng)市場份額。基于這種指導(dǎo)思想,JamesGosling和Naughton于95年1月分別完成了Oak的新版和第一個(gè)基于Oak的應(yīng)用程序WebRunner.Oak從此更名為Java。20.1Internet與Java簡介2023/6/6520.1.3Java的特征1.簡單性Java是“純”面向?qū)ο笳Z言,它擯棄了C++的過程式成分,從而使語法和語義都比較單純,容易學(xué)習(xí)和使用。Java對C++中容易引起軟件錯(cuò)誤的成份進(jìn)行了相當(dāng)成功的改造,例如去掉指針,取消多重繼承和操作符重載(OperatorOverloading),將內(nèi)存管理任務(wù)由程序員移向Java內(nèi)嵌的自動(dòng)內(nèi)存回收機(jī)制,等等,從而簡化語義,減少出錯(cuò)機(jī)會(huì),減輕程序員負(fù)擔(dān)。Java提供大量功能豐富的可重用類庫簡化了編程工作量。20.1Internet與Java簡介2023/6/66Java的特征2.面向?qū)ο笈cC++一樣,Java的對象有模塊化性質(zhì)和信息隱藏能力,滿足面向?qū)ο蟮姆庋b要求。Java對面向?qū)ο蟮睦^承性的支持方式也與C++類似。Java通過抽象類和接口(interface)支持面向?qū)ο蟮亩鄳B(tài)性要求:一個(gè)對外接口,多種內(nèi)部實(shí)現(xiàn)。20.1Internet與Java簡介2023/6/67Java的特征3.分布式特征。4.半編譯、半解釋特征。5.可移植性。6.安全性7.多線程20.1Internet與Java簡介2023/6/6820.1.4Java的語法機(jī)制由于Java的基本語法機(jī)制(例如數(shù)據(jù)類型、表達(dá)式、程序流控制、結(jié)構(gòu)化異常處理等)都脫胎于C++,所以,本小節(jié)只討論Java明顯區(qū)別于C++的語法機(jī)制,它們包括:類、接口、程序包(package)、自動(dòng)內(nèi)存回收以及多線程。20.1Internet與Java簡介2023/6/69Java的語法機(jī)制1.類。類是Java中最基本、最重要的語法設(shè)施。2.接口。接口是一種抽象類,其中只能出現(xiàn)靜態(tài)常量或抽象方法的定義。3.程序包。程序包是一些相關(guān)類或接口的集合。4.自動(dòng)內(nèi)存回收。5.多線程20.1Internet與Java簡介2023/6/61020.1.5Java的意義Java的出現(xiàn)和流行對于軟件產(chǎn)業(yè)乃至整個(gè)信息產(chǎn)業(yè)都有十分深遠(yuǎn)的影響:首先,Java與WWW的結(jié)合極大地豐富了WWW頁面的表現(xiàn)能力、交互能力和動(dòng)態(tài)能力,從而為Internet的進(jìn)一步發(fā)展和普及奠定了較好的軟件技術(shù)基礎(chǔ)。其次,Java以其獨(dú)具優(yōu)勢的小程序代碼技術(shù)很好地支持了網(wǎng)絡(luò)計(jì)算觀念,用戶可以通過WWW瀏覽器和Internet使用WWW服務(wù)器上的眾多軟件,不必在自己的機(jī)器上安裝種種龐大而且復(fù)雜的應(yīng)用軟件。最后,Java與WWW的結(jié)合可望改變傳統(tǒng)的軟件生產(chǎn)和銷售方式。20.1Internet與Java簡介2023/6/61120.2Java與Internet環(huán)境下的軟件開發(fā)在Internet環(huán)境下使用Java進(jìn)行軟件開發(fā)的主要任務(wù)之一是制作功能豐富并具有交互能力的WWW主頁(HomePage)。20.2.1基于Java的軟件開發(fā)過程20.2.2Java與多媒體主頁的制作20.2.3Java與交互式主頁的制作20.2.4Java與圖形界面20.2.5Java與網(wǎng)絡(luò)程序設(shè)計(jì)第二十章新型軟件開發(fā)技術(shù)2023/6/61220.3對象鏈接與嵌入(OLE)技術(shù)如果將不同應(yīng)用程序生成的數(shù)據(jù)構(gòu)成復(fù)合文件,可以采用兩種方法保持?jǐn)?shù)據(jù)與其應(yīng)用程序之間的關(guān)聯(lián):①數(shù)據(jù)仍位于初始創(chuàng)建處,復(fù)合文件中僅包含關(guān)聯(lián)信息;②數(shù)據(jù)的拷貝以及數(shù)據(jù)與應(yīng)用程序的關(guān)聯(lián)信息都進(jìn)入復(fù)合文件。這兩種關(guān)聯(lián)方法分別稱為“鏈接”與“嵌入”。第二十章新型軟件開發(fā)技術(shù)2023/6/61320.3.1OLE簡介OLE的初衷是通過一些規(guī)模較小、相互獨(dú)立的應(yīng)用軟件的協(xié)同工作來為用戶提供靈活的軟件解決方案。按照軟件工程的原理,規(guī)模較小的應(yīng)用軟件易于開發(fā),也易于維護(hù)。只要這些應(yīng)用軟件遵循OLE2.0所定義的統(tǒng)一框架,它們便可獨(dú)立開發(fā)與進(jìn)化,并在不同的應(yīng)用場合下重用。OLE的內(nèi)容相當(dāng)豐富,它包含構(gòu)件對象模型、結(jié)構(gòu)化存儲(chǔ)與復(fù)合文件、數(shù)據(jù)對象傳送、復(fù)合文檔、OLE自動(dòng)化、OLE控件等內(nèi)容。20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/61420.3.2構(gòu)件對象模型構(gòu)件對象模型(COM)是OLE其余部分的基礎(chǔ)。作為規(guī)范,COM定義了OLE的基本術(shù)語:對象、接口和構(gòu)件,同時(shí)也定義了用于對象創(chuàng)建和對象間彼此關(guān)聯(lián)的標(biāo)準(zhǔn)機(jī)制,這種機(jī)制獨(dú)立于對象的實(shí)現(xiàn)方法和編程語言,也獨(dú)立于使用對象的客戶。構(gòu)件對象模型的實(shí)現(xiàn)(也稱構(gòu)件對象庫)包含一些用于創(chuàng)建和管理對象的API函數(shù),同時(shí)也包含跨越進(jìn)程邊界的接口函數(shù)調(diào)用的調(diào)度功能。所有的OLE對象都是通過接口來訪問的。遵循COM規(guī)范的對象稱為構(gòu)件對象。20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/61520.3.3結(jié)構(gòu)化存儲(chǔ)與復(fù)合文件正象不同應(yīng)用程序希望共享存儲(chǔ)設(shè)備一樣,OLE的不同構(gòu)件也希望共享同一磁盤文件,這樣才便于構(gòu)件的集成。于是,OLE提出了結(jié)構(gòu)化存儲(chǔ)(StructuredStorage)規(guī)范,它可形象地比喻為“文件內(nèi)部的文件系統(tǒng)”。具體地說,它將單個(gè)文件視為存儲(chǔ)和流對象的結(jié)構(gòu)化集合,其中的存儲(chǔ)對象可類比為文件系統(tǒng)中的目錄,流對象可類比為文件。它們分別支持OLE的標(biāo)準(zhǔn)接口IStorage和IStream。存儲(chǔ)對象可以象目錄那樣嵌套。20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/616結(jié)構(gòu)化存儲(chǔ)20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/617復(fù)合文件復(fù)合文件是OLE系統(tǒng)中結(jié)構(gòu)化存儲(chǔ)規(guī)范的實(shí)現(xiàn)。復(fù)合文件允許用戶以事務(wù)(transaction)方式打開存儲(chǔ)對象。使用復(fù)合文件的另一好處是可以用OLE提供的標(biāo)準(zhǔn)接口瀏覽任何復(fù)合文件的結(jié)構(gòu)。20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/61820.3.4數(shù)據(jù)對象傳輸OLE的數(shù)據(jù)對象傳送機(jī)制用于處理構(gòu)件之間格式化數(shù)據(jù)的交換。OLE的數(shù)據(jù)傳送機(jī)制不僅允許數(shù)據(jù)源描述其數(shù)據(jù)格式(例如標(biāo)準(zhǔn)的Windows剪貼板格式CF_TEXT、CF_BITMAP、CF_等),也允許數(shù)據(jù)源說明數(shù)據(jù)的目標(biāo)顯示設(shè)備(屏幕、打印機(jī)等),還可說明傳輸媒介。數(shù)據(jù)對象傳送機(jī)制在OLE中被稱為“一致數(shù)據(jù)傳送”,這是因?yàn)樵摍C(jī)制可以同時(shí)支持不同的OLE傳送協(xié)議。Windows的剪貼板(Clipboard)主要用于在應(yīng)用程序內(nèi)部或應(yīng)用程序之間傳送數(shù)據(jù)。20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/61920.3.5復(fù)合文檔OLE復(fù)合文檔模型的主要目標(biāo)是將不同應(yīng)用程序生成的數(shù)據(jù)集成為單個(gè)文檔,并在用戶需要時(shí)啟動(dòng)相應(yīng)的應(yīng)用程序察看或編輯這些數(shù)據(jù)。在該模型中,被集成的數(shù)據(jù)表示為嵌入或鏈接數(shù)據(jù)對象,包含這些數(shù)據(jù)對象并為它們提供察看或編輯場所的應(yīng)用程序稱為包容器(Container),負(fù)責(zé)生成并編輯數(shù)據(jù)對象的應(yīng)用程序稱為服務(wù)器(Server)。因?yàn)椋琌LE是一般化的構(gòu)件協(xié)同框架,所以,復(fù)合文檔模型只規(guī)定了包容器、服務(wù)器、數(shù)據(jù)對象必須實(shí)現(xiàn)的一些標(biāo)準(zhǔn)接口。除些之外,它們互不相關(guān)。20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/62020.3.6OLE自動(dòng)化長期以來,用戶一直希望通過某種宏語言來控制多個(gè)應(yīng)用程序,讓它們協(xié)同完成某種工作流程。為了實(shí)現(xiàn)上述目標(biāo),OLE要求參與自動(dòng)化過程的應(yīng)用程序或構(gòu)件具有可編程的對外接口。為OLE自動(dòng)化提供宏編程環(huán)境的應(yīng)用程序或構(gòu)件稱為自動(dòng)化控制器(AutomationController)。20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/62120.3.7OLE控件在Microsoft操作系統(tǒng)平臺(tái)下,控件(Controls)是指能夠?qū)⒂脩艚缑媸录?鼠標(biāo)動(dòng)作、鍵盤動(dòng)作等)轉(zhuǎn)化為可編程的事件處理器的界面元素。OLE控件(OLEControls)不僅具備普通控件的特征,同時(shí)也是OLE自動(dòng)化對象、OLE服務(wù)器和具有定位激活能力的嵌入對象。OLE控件的事件處理器位于控件包容器(ControlContainers)中,這就是說,控件包容器可以接收到OLE控件轉(zhuǎn)發(fā)的用戶界面事件,進(jìn)而引發(fā)各種行為。20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/622OLE控件從控件包容器的角度來看,OLE控件包含以下內(nèi)容:①屬性。包容器可以通過控件提供的接口函數(shù)獲取或設(shè)置屬性值;②事件。控件將界面上發(fā)生的某些事件傳送給包容器并引發(fā)包容器中相應(yīng)的事件處理器;③方法。包容器通過OLE控件的外部可見方法獲取或設(shè)置屬性值。20.3對象鏈接與嵌入(OLE)技術(shù)2023/6/62320.4CORBA與分布計(jì)算技術(shù)80年代以來,由于個(gè)人計(jì)算機(jī)、工作站和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,越來越多的用戶已經(jīng)自覺或不自覺地置身于資源分布的網(wǎng)絡(luò)計(jì)算環(huán)境中。為了有效地共享網(wǎng)絡(luò)資源,通過高效的信息傳輸實(shí)現(xiàn)沒有平臺(tái)和地理隔閡的協(xié)同工作,分布計(jì)算技術(shù)應(yīng)運(yùn)而生,并在近年獲得了迅速發(fā)展。第二十章新型軟件開發(fā)技術(shù)2023/6/62420.4.1分布計(jì)算環(huán)境網(wǎng)絡(luò)計(jì)算環(huán)境包括計(jì)算平臺(tái)、網(wǎng)絡(luò)通信設(shè)施以及支持網(wǎng)絡(luò)計(jì)算的基本服務(wù)。用戶在進(jìn)行網(wǎng)絡(luò)計(jì)算時(shí)不必關(guān)心網(wǎng)絡(luò)傳輸過程。分布計(jì)算環(huán)境以網(wǎng)絡(luò)計(jì)算環(huán)境為基礎(chǔ),增加支持平臺(tái)無關(guān)和資源分布透明性的分布計(jì)算基礎(chǔ)結(jié)構(gòu)、支持分布計(jì)算的基本服務(wù)以及分布式應(yīng)用軟件,從而更好地支持分布式協(xié)同工作。20.4CORBA與分布計(jì)算技術(shù)2023/6/625分布計(jì)算環(huán)境從用戶角度看,分布計(jì)算環(huán)境是消除了計(jì)算平臺(tái)差異和地理隔閡的信息處理環(huán)境;從分布式應(yīng)用的開發(fā)人員角度看,分布式計(jì)算環(huán)境提供了統(tǒng)一的分布式軟件結(jié)構(gòu)框架和基本的分布式服務(wù)支持,從而簡化了分布式應(yīng)用的開發(fā),提高了可重用性、可移植性和分布式應(yīng)用之間的互操作性;對于采用分布式計(jì)算的組織機(jī)構(gòu)而言,分布計(jì)算環(huán)境較網(wǎng)絡(luò)計(jì)算環(huán)境具有更好的靈活性、可伸縮性,能更好地支持信息共享和協(xié)同工作。20.4CORBA與分布計(jì)算技術(shù)2023/6/62620.4.2分布式計(jì)算技術(shù)為了實(shí)現(xiàn)分布計(jì)算環(huán)境的目標(biāo),當(dāng)前廣泛采用的主要分布計(jì)算技術(shù)有:1.遠(yuǎn)程過程調(diào)用2.分布式文件系統(tǒng)3.分布式數(shù)據(jù)庫系統(tǒng)4.名字服務(wù)5.安全服務(wù)6.時(shí)間服務(wù)7.多線程機(jī)制8.互操作技術(shù)20.4CORBA與分布計(jì)算技術(shù)2023/6/62720.4.3CORBA概述分布計(jì)算環(huán)境下的互操作性是指多個(gè)軟件元素相互通信并協(xié)同完成任務(wù)的能力。為了實(shí)現(xiàn)互操作性,分布計(jì)算環(huán)境應(yīng)該提供:1自動(dòng)通信機(jī)制。它負(fù)責(zé)傳遞請求、參數(shù)及結(jié)果,負(fù)責(zé)軟件元素之間的同步。2抽象機(jī)制,即相互操作的軟件元素在編程語言、實(shí)現(xiàn)細(xì)節(jié)和工作平臺(tái)等方面應(yīng)該相互獨(dú)立。3動(dòng)態(tài)機(jī)制。它負(fù)責(zé)提供動(dòng)態(tài)搜索軟件元素、動(dòng)態(tài)構(gòu)造請求及其參數(shù)的能力。面向?qū)ο蠹夹g(shù)成為解決互操作問題的最佳選擇。對象管理集團(tuán)(OMG)基于面向?qū)ο蠹夹g(shù),給出了以對象請求代理(ObjectRequestBroker,簡稱ORB)為中心的對象管理結(jié)構(gòu)。20.4CORBA與分布計(jì)算技術(shù)2023/6/628對象管理結(jié)構(gòu)20.4CORBA與分布計(jì)算技術(shù)2023/6/629ORB在OMG的對象管理結(jié)構(gòu)中,ORB是一個(gè)關(guān)鍵的通信機(jī)制,它以實(shí)現(xiàn)互操作性為主要目標(biāo),處理對象之間消息分布。對象服務(wù)實(shí)現(xiàn)基本的對象創(chuàng)建和管理功能,通用服務(wù)則使用對象管理結(jié)構(gòu)所規(guī)定的類接口實(shí)現(xiàn)一些通用功能。針對ORB,OMG又進(jìn)一步提出了CORBA技術(shù)規(guī)范,主要內(nèi)容包括接口定義語言(IDL),接口池(IR),動(dòng)態(tài)調(diào)用接口(DII),對象適配器等。20.4CORBA與分布計(jì)算技術(shù)2023/6/630CORBA1.CORBA利用IDL統(tǒng)一地描述服務(wù)器對象(向調(diào)用者提供服務(wù)的對象)的接口。2.CORBA的接口池包括了分布計(jì)算環(huán)境中所有可用的服務(wù)器對象的接口表示。3.CORBA的動(dòng)態(tài)調(diào)用接口提供了一些標(biāo)準(zhǔn)函數(shù)以供客戶對象動(dòng)態(tài)創(chuàng)建請求、動(dòng)態(tài)構(gòu)造請求參數(shù)。4.在CORBA中,對象適配

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論