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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論