實(shí)驗(yàn)五實(shí)現(xiàn)_第1頁
實(shí)驗(yàn)五實(shí)現(xiàn)_第2頁
實(shí)驗(yàn)五實(shí)現(xiàn)_第3頁
實(shí)驗(yàn)五實(shí)現(xiàn)_第4頁
實(shí)驗(yàn)五實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)五 實(shí)現(xiàn)一、 實(shí)驗(yàn)?zāi)康?、 了解Classics公司設(shè)計(jì)模型的不同部分。2、 描述Classics公司設(shè)計(jì)模型在Vb和Vc+中的實(shí)現(xiàn)。3、 講述visual Studio 在Rational Rose中的整合特性。二、 實(shí)驗(yàn)內(nèi)容(一)概述l 如何使用Rational Rose生成VB和Vc+代碼l 如何利用代碼變化來修改模型l 如何如何導(dǎo)入和使用模型中的COM組件的類型庫試驗(yàn)分成兩個部分,分別是VC+雙向工程和vb雙向工程。(二)設(shè)計(jì)模型就領(lǐng)域?qū)<宜獣缘膶ο蠖?,分析模型表示了系統(tǒng)。設(shè)計(jì)模型代表了同一個的系統(tǒng),但是它代表了能更加接近源代碼的抽象層。例如,設(shè)計(jì)模型中的類有指定的語言和模型特

2、性,這些特性定義到代碼的映射。下圖表示了基于vb的POS系統(tǒng)實(shí)現(xiàn)的客戶應(yīng)用的設(shè)計(jì)模型的一部分。用戶界面從business objects中分離出來,組成一個自己的包POS Client UI。這種分離有助于管理這兩個概念包,組織一個模型的方法有幾種。設(shè)計(jì)類的構(gòu)造型指明了這個類與什么樣的源代碼項(xiàng)是一致的。例如,下圖中的frmMain類就是用VB表單實(shí)現(xiàn)的。圖 4 .1 部分設(shè)計(jì)模型圖(三) 組件視圖組件視圖表示了軟件模塊,它們在一起能實(shí)現(xiàn)系統(tǒng)。組件需要將每一個類都映射到一種適當(dāng)?shù)膶?shí)現(xiàn)語言和源代碼項(xiàng)目。例如,為了給邏輯視圖中的每一個類生成代碼,這些類都必須被分配到一個或幾個組件上。同樣,為了用源代

3、碼項(xiàng)目來修改模型,一個和該項(xiàng)目向?qū)?yīng)的組件必須存在與模型中。一個模型可以包含若干個使用不同語言的組件,但是,一個類僅能分配到使用相同實(shí)現(xiàn)語言的組件上。下圖顯示了使用VB Stand EXE 項(xiàng)目來實(shí)現(xiàn)的POS系統(tǒng)??梢钥闯?,這個模型中與導(dǎo)入了幾個COM 組件的類型庫。COM component(COM:組件對象模型)是微軟公司為了計(jì)算機(jī)工業(yè)的軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一種新的軟件開發(fā)技術(shù)。在COM構(gòu)架下,人們可以開發(fā)出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。由此帶來的好處是多方面的:可以將系統(tǒng)中的組件用新的替換掉,以便隨時進(jìn)行系統(tǒng)的升級和定制;可以在

4、多個應(yīng)用系統(tǒng)中重復(fù)利用同一個組件;可以方便的將應(yīng)用系統(tǒng)擴(kuò)展到網(wǎng)絡(luò)環(huán)境下;COM與語言,平臺無關(guān)的特性使所有的程序員均可充分發(fā)揮自己的才智與專長編寫組件模塊。圖 4 .2 (四) 組件視圖組件視圖是用組件圖來描述的。一個組件視圖顯示了組件是如何通過依賴關(guān)系聯(lián)系起來的。組件圖也顯示了被導(dǎo)入的構(gòu)造型為“接口”的類的COM組件的接口。該圖也描述了與Classics公司模型的POS系統(tǒng)組件包有關(guān)的組件。圖中的一個部分表示了POS Client組件和Credit Services及Till Services COM 組件是有關(guān)系的。這兩種COM組件的類型庫已經(jīng)引入到了模型中。在組件圖中,可以看到Credi

5、t Services組件提供了一個名為IcreditCardAuthorization的接口。接口能通過在建模好的POS Client組件來實(shí)現(xiàn)。圖 4 .3(五) 為何導(dǎo)入類庫導(dǎo)入COM組件的類庫到模型中,可以顯示模型中的類是如何使用的,并且顯示是如何依賴其他組件上的類 的,這些組件上的實(shí)現(xiàn)語言是無關(guān)的。l 可以通過顯示模型中的類是如何示例、使用,與一個COM組件中的部件聯(lián)系的方式重用COM組件。l 顯示模型中的類是如何實(shí)現(xiàn)一個COM組件中的接口l 當(dāng)詳述屬性和操作時,使用一個COM組件定義的數(shù)據(jù)類型。下圖表示了ALT對象CProduct是如何實(shí)現(xiàn)Product coclass的默認(rèn)接口的。

6、你能畫出從coclass到它的默認(rèn)接口的聯(lián)系。當(dāng)編譯的時候,生成的代碼會給出相同的結(jié)果。圖 4 .4 (六) 部署視圖部署視圖顯示了運(yùn)行著的系統(tǒng)的不同的過程,以及它們是如何相關(guān)聯(lián)的。部署視圖在Rose瀏覽器中可以視為不同的節(jié)點(diǎn)。部署視圖可以用一個獨(dú)立的圖來描述,這個圖可以用雙擊瀏覽器中的部署視圖節(jié)點(diǎn)來打開。下圖顯示了Classics公司系統(tǒng)的部分部署視圖。正如你所看到的,一個Bar Code Reader設(shè)備,一個Credit Card Reader設(shè)備,一個Receipt Printer設(shè)備和POS Client過程連起來。同樣,POS Client過程有一個相連的服務(wù)器。當(dāng)生產(chǎn)VB或VC+

7、代碼時,Rational Rose 沒有使用部署視圖。圖 4 .5(七) Visual Studio 整合特性Rational Rose 在Visual Studio環(huán)境中被緊密地整合起來。因此可以生成骨架代碼,改變源代碼,就可利用代碼的變化來更新模型,也可以利用模型的改變來更新代碼。在模型和代碼中轉(zhuǎn)換的過程被稱為雙向工程。Rational Rose 為Microsoft Visual Studio應(yīng)用的雙向工程提供了下面所示的特性:l 組件任務(wù)工具l 代碼更新工具l 模型助手l 類圖導(dǎo)入器圖 4 .6(八)組件任務(wù)工具組件任務(wù)工具為你提供一個容易使用的接口:l 創(chuàng)建模型中的新組件l 將類分配

8、到組件上l 將組件和Microsoft Visual Studio 項(xiàng)目聯(lián)接起來上圖顯示了Classics公司模型的組件任務(wù)工具的內(nèi)容。在POS Client組件被分配了8個模型元素。組件任務(wù)工具顯示了在源代碼中實(shí)現(xiàn)了的模型元素。例如,三個表單,frmLogon ,frmMain,frmPriceOverride,有VB表單圖標(biāo)。你可以通過拖住右邊窗格中的類,放到左邊窗格中的組件上,將類分配到組件上。(九)模型助手模型助手提供了用兩種方法來創(chuàng)建模型中的VB和VC+的類的屬性和操作。它同樣讓你定制從類代碼的生成。利用模型助手可以:l 創(chuàng)建類中的屬性和操作l 預(yù)覽從類中生成的代碼l 詳述類的實(shí)現(xiàn)細(xì)

9、節(jié)模型助手顯示了關(guān)于類的信息,以及類在源代碼中的實(shí)現(xiàn)。模型助手將類規(guī)范中創(chuàng)立的每個UML元素都映射到相應(yīng)的源代碼元素。下圖所示的模型助手表示了Classics公司模型中的POS交易類。 圖 4 .7(十)代碼跟新工具使用代碼跟新工具,可以將模型中包含的信息轉(zhuǎn)變?yōu)镸icrosoft Visual Studio源代碼。代碼跟新工具可以將模型中的組件及相應(yīng)的VS項(xiàng)目轉(zhuǎn)換為代碼。代碼跟新工具可以:l 在同一時間,生成和跟新使用不同語言進(jìn)行實(shí)現(xiàn)的多個項(xiàng)目。l 預(yù)覽每個類生成的代碼l 利用打開的模型助手,進(jìn)一步詳述模型中的類和代碼之間的映射。l 若發(fā)現(xiàn)重命名或刪除了模型中任何的項(xiàng)目內(nèi)容,保持模型和代碼的一

10、致。圖 4 .8(十)模型跟新工具使用模型跟新工具,可以使用MVS項(xiàng)目的反向工程來創(chuàng)建一個新的項(xiàng)目模型,或者使用修改了的代碼來跟新一個已經(jīng)存在的模型。模型跟新工具可以:l 同時跟新使用不同實(shí)現(xiàn)語言的多個組件。l 若發(fā)現(xiàn)在代碼中重命名或刪除了任何模型元素,要保持模型和源代碼的同步。l 向模型中增加新的組件圖 4 .9(十二)模型的入侵檢測系統(tǒng)每一個已生成的代碼項(xiàng)目在代碼中都被附上一個模型標(biāo)識(模型ID)。它允許代碼項(xiàng)目通過實(shí)際名字和模型元素相匹配。例如,mQuantity屬性的模型ID是ModelId=37C347220154。代碼跟新工具和模型跟新工具都要使用模型ID來將模型和代碼進(jìn)行同步。模

11、型ID在雙向工程中,對于代碼的正確性來說,是必須具有的。不允許對已經(jīng)添加的模型ID進(jìn)行編輯。圖 4 .10(十三)類庫導(dǎo)入類庫導(dǎo)入允許你導(dǎo)入一個COM組件的類庫到模型中。也可以從Windows瀏覽器中拖動一個COM組件到Rational Rose中,還可以使用Tools->COM->Import Type Liberary命令。一個類庫包含著從外部角度來觀察的COM組件的描述。這個描述包括了組件的類,接口,文件信息服務(wù)程序接口,特性(UML中稱為屬性),方法(UML中稱為操作),數(shù)據(jù)類型等等。為了給COM組件暴露的接口和數(shù)據(jù)類型提供中性語言描述,類庫信息是必須的。此處 ,不說明一個

12、類庫中不同種類的項(xiàng)目。在本次實(shí)驗(yàn)的最后,給出一下參考地址。圖 4 .11(十四)簡介 此處,可以嘗試一個雙向工程。下面的練習(xí)有兩個部分,Visual C+(ATL)開發(fā)和VB開發(fā)。你可以只做一個。首先,在下面的開始處,你將被視為POS Server 項(xiàng)目團(tuán)隊(duì)的一元。該團(tuán)隊(duì)負(fù)責(zé)開發(fā)在服務(wù)器上運(yùn)行的軟件。在其他部分,你會被視為是POS Client項(xiàng)目團(tuán)隊(duì)的成員,該團(tuán)隊(duì)使用VB來實(shí)現(xiàn)允許在客戶機(jī)上的軟件。你開始開發(fā)的ATL Inventory 組件會在后面的部分使用到。圖 4 .12(十五)VC+ 開發(fā)在你開始實(shí)驗(yàn)時,你就處于POS Server開發(fā)工作的早期循環(huán)中。POS Server給POS客

13、戶機(jī)提供了共同服務(wù)。這些服務(wù)包括了信用卡認(rèn)證,產(chǎn)品搜索,銷售交易記錄,基本現(xiàn)金管理功能。大多數(shù)的服務(wù)是由運(yùn)行在服務(wù)器上COM對象來提供的,這些服務(wù)也管理存儲數(shù)據(jù)庫??蛻魬?yīng)用使用DCOM來使用服務(wù)器組件,因此對于客戶機(jī)而言,無需使用特別的編碼來使服務(wù)器組件可見。下面的實(shí)驗(yàn)是使你能了解導(dǎo)入類庫和創(chuàng)建一個基于模型中接口的實(shí)現(xiàn)的ATL的過程。ATL,Active Template Library活動模板庫,是一種微軟程序庫,支持利用C+語言編寫ASP代碼以及其它ActiveX程序。通過活動模板庫,可以建立COM組件,然后通過ASP頁面中的腳本對COM對象進(jìn)行調(diào)用。這種COM組件可以包含屬性頁、對話框等

14、等控件。在這個實(shí)驗(yàn)中,你要VC+ IDE來創(chuàng)建一個新對象,并利用逆向工程來生成模型。三、 實(shí)驗(yàn)步驟1、 注冊DLL(動態(tài)鏈接庫)Classics公司應(yīng)用是依賴于共同組件(DLLs)的,這個共同的組件要你允許應(yīng)用程序前注冊。2、 定義虛擬路徑映射Classics公司模型包含著對能夠?qū)崿F(xiàn)已建立好模型的系統(tǒng)的vc+項(xiàng)目的引用,Rational Rose 利用虛擬文件路徑來保存這些引用。這些引用依賴于你在自己計(jì)算機(jī)上安裝示例的位置。你必須定義一個虛擬路徑映射,文件能映射到源代碼所在位置的實(shí)際路徑。 3、導(dǎo)入一個DLLClassics公司應(yīng)用程序依賴一些存在的組件。使用組件的種種優(yōu)點(diǎn)直接來源于可以將它們

15、動態(tài)的插入或卸出應(yīng)用。為了實(shí)現(xiàn)這種功能,所有的組件必須滿足兩個條件:第一,組件必須動態(tài)鏈接;第二,它們必須隱藏(或封裝)其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。動態(tài)鏈接對于組件而言是一個至關(guān)重要的要求,而消息隱藏則是動態(tài)鏈接的一個必要條件。為了顯示應(yīng)用程序是如何使用這些DLLs的,這些DLLs必須導(dǎo)入到模型中來。以SalesServices.dll為例,給出導(dǎo)入步驟:4、檢查導(dǎo)入的DLLs 此處,重新查看已導(dǎo)入的DLL,并在模型中組織其內(nèi)容。5、實(shí)現(xiàn)接口 在Rose VC+中實(shí)現(xiàn)接口是一個在Rose VC+和VS VC+之間相互影響的過程。Vc+的IDE是Integrated Development Environm

16、ent.IDL是接口描述語言6、創(chuàng)建ATL組件和項(xiàng)目 以下的步驟是用模型跟新工具創(chuàng)建了IProduct和IProductInventory接口的新的ATL組件,(使用新的ATL組件能保持模型的同步)。7、修改IDL(interface definition language)文件 因?yàn)镽ose VC+沒有在IDL文件中事先聲明,文件必須手工修改。8、將接口轉(zhuǎn)換為簡單的ATL對象l From Rose Visual C+, right-click on the IProduct interface and click COM -> New ATL Object. l In the Component drop-down box, select InventoryServices (this should be the only option available). >Click OK. l Repeat this process for the IProductInventory interface.l In the Rose browser component view, drag an

溫馨提示

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

評論

0/150

提交評論