版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Rose的雙向工程,目錄,雙向工程簡介,正向工程,逆向工程,實(shí)例應(yīng)用,小結(jié),Rose的雙向工程,雙向工程包括正向工程和逆向工程。 正向工程指把設(shè)計(jì)模型映射為代碼; 逆向工程是指將代碼轉(zhuǎn)換成設(shè)計(jì)模型。,雙向工程簡介,無論是把設(shè)計(jì)模型轉(zhuǎn)換成代碼,還是把代碼轉(zhuǎn)換為設(shè)計(jì)模型,都是一項(xiàng)非常復(fù)雜的工作。正向和逆向工程這兩方面結(jié)合在一起,定義為雙向工程。雙向工程提供了一種機(jī)制,它使系統(tǒng)架構(gòu)或者設(shè)計(jì)模型與代碼之間進(jìn)行雙向交換。 正向工程把設(shè)計(jì)模型轉(zhuǎn)換為代碼框架,開發(fā)者不需要編寫類、屬性、方法代碼。一般情況下,開發(fā)人員將系統(tǒng)設(shè)計(jì)細(xì)化到一定的級別,然后應(yīng)用正向工程。 逆向工程是指把代碼轉(zhuǎn)換成設(shè)計(jì)模型。在迭代開發(fā)周
2、期中,一旦某個模型作為迭代的一部分被修改,采用正向工程把新的類、方法、屬性加入代碼;同時,一旦某些代碼被修改,采用逆向工程,將修改后的代碼轉(zhuǎn)換為設(shè)計(jì)模型。 自從1997年正式發(fā)布UML以后,出現(xiàn)了許多UML建模CASE工具。其中最具代表性的兩款CASE工具是Sparx Systems的Enterprise Architect和IBM 的Rational Rose。,正向工程,正向工程(代碼生成)是指把Rose模型中的一個或多個類圖轉(zhuǎn)換為Java源代碼的過程。Rational Rose里的正向工程是以組件為單位的。即Java源代碼的生成是以組件為單位的,不是以類為單位的。所以,創(chuàng)建一個類后需要把
3、它分配給一個有效的Java組件。如果模型的缺省語言是Java,Rose會自動為這個類創(chuàng)建一個組件。 當(dāng)對一個設(shè)計(jì)模型元素進(jìn)行正向工程時,模型元素的特征會映射成Java語言的框架結(jié)構(gòu)。例如,Rose中的類會通過它的組件生成一個.java文件;Rose中的包會生成一個java包。另外,當(dāng)把一個UML包進(jìn)行正向工程時,將把屬于該包的每一個組件都生成一個.java文件。,正向工程,Rose工具能夠使代碼與UML模型保持一致,每次創(chuàng)建或修改模型中的UML元素,它都會自動進(jìn)行代碼生成。缺省情況下,這個功能是關(guān)閉的,可以通過【ToolsJavaPreject Specification】打開該功能,選擇“C
4、ode Generation”選項(xiàng)卡,選中“Automatic Synchronization”。 “Code Generation”窗口是代碼生成時最常用的一個窗口,下面對該窗口中的每項(xiàng)做詳細(xì)的介紹。 (1)IDE:指定與Rose相關(guān)聯(lián)的Java開發(fā)環(huán)境。下拉框列出了系統(tǒng)注冊表里的IDE。Rose可以識別的開發(fā)環(huán)境有以下幾種:VisualAge for Java,VisualCafe,F(xiàn)orte for Java以及JBuilder。缺省的IDE是Rose內(nèi)部編輯器,它使用Sun的JDK。,正向工程,(2)Default Data Types:該項(xiàng)用來設(shè)置缺省數(shù)據(jù)類型,當(dāng)創(chuàng)建新的屬性和方法時
5、,Rose就會使用這個數(shù)據(jù)類型。缺省情況下,屬性的數(shù)據(jù)類型是int,方法返回值的數(shù)據(jù)類型是void。 (3)Prefixes該項(xiàng)設(shè)定缺省前綴(如果有的話),Rose會在創(chuàng)建實(shí)例和類變量的時候使用這個前綴。缺省不適用前綴。 (4)Generate Rose ID:設(shè)定Rose是否在代碼中為每個方法都加惟一的標(biāo)識符。Rose使用這個RoseID來識別代碼中名稱被改動的方法。缺省情況下,將生成RoseID.如果關(guān)閉了“Automatic Synchronization”,就需要打開該功能。,正向工程,(5)Generate Default Return Line:設(shè)定Rose是否在每個類聲明后面都生
6、成一個返回行。缺省情況下,Rose將生成返回行。 (6)Stop on Error:設(shè)定Rose 在生成代碼時,是否在遇到第一個錯誤時就停止。缺省情況下這一項(xiàng)是關(guān)閉的,因此即使遇到錯誤,也會繼續(xù)生成代碼。 (7)Create Missing Directories:如果在Rose模型中引用了包,這項(xiàng)將指定是否生成沒有定義的目錄。缺省情況下,這個功能是開啟的。 (8)Automatic Synchronization Mode:當(dāng)啟用這項(xiàng)時,Rose會自動保持代碼與模型同步,也就是說代碼中的任何變動都會立即在模型中反映出來,反過來也一樣的。缺省情況下,沒有使用這個功能。 (9)Show Prog
7、ress Indicator:指定Rose是否在遇到復(fù)雜的同步操作時顯示進(jìn)度欄。缺省情況下不會顯示。,正向工程,(10)Source Code Control:指定對哪些文件進(jìn)行源碼控制。 Put source code of the project under Source Control:是否使用Rose J/CM Intergration對Java源代碼進(jìn)行版本控制。 (1)Input Checkin/Checkout comment:指定用戶是否需要對檢入/檢出代碼的活動進(jìn)行說明。 (2)Select Source Root Path for Source Control:選擇存放生成
8、的代碼文件的路徑。,正向工程,下面將詳細(xì)介紹如何從模型生成Java代碼: 1. 將UML類加入模型中的Java組件 Rose會將.java文件與模型中的組件聯(lián)系起來。因此,Rose要求模型中的每個Java類都必須屬于組件視圖中的某個Java組件。 有兩種給組件添加Java類的方法。 (1)當(dāng)啟動代碼生成時,可以讓Rose自動創(chuàng)建組件。如果這樣,Rose會為每個類都生成一個.java文件和一個組件。為使用這個功能,必須將模型的缺省語言設(shè)置為Java,可以通過【ToolsOptionsNotationDefault Language】進(jìn)行設(shè)置 Rose不會自動為多個類生成一個.java文件。如果將
9、Java類分配給一個邏輯包,Rose將為組件視圖中的物理包創(chuàng)建一個鏡像,然后用它創(chuàng)建目錄或是基于模型中包的Java包。 (2)可以自己創(chuàng)建組件,然后顯式地將類添加到組件視圖中。這樣做可以將多個類生成的代碼放在一個.java文件中。,正向工程,有兩種方法可以將一個類添加到組件中。無論選擇哪種方法,都必須首先創(chuàng)建這個組件。 第1種,使用瀏覽器將類添加到組件中。首先在瀏覽器視圖中選擇一個類,然后將將類拖放到適當(dāng)?shù)慕M件上。這樣,就會在該類名字后面列出其所在組件的名字;第2種,使用Rose里的“Component Specification”窗口。首先打開組件的標(biāo)準(zhǔn)說明:如果該組件不是一個Java組件(
10、也就是它的語言仍然是Anaysis),雙擊瀏覽器或圖中的組件;如果它已經(jīng)是Java組件,選中它并單擊右鍵然后選擇【Open Standard Specification】子菜單。 2. 語法檢查 這是一個可選的步驟。生成代碼前,可以選擇對模型組件的語法進(jìn)行檢查。在生成代碼時Rose會自動進(jìn)行語法檢查。Rose的Java語法檢查是基于Java代碼語義的。 可以通過以下的步驟對模型組件進(jìn)行Java語法錯誤檢查。 (1)打開包含將用于生成代碼的組件圖。,正向工程,(2)在該圖中選擇一個或多個包和組件。 (3)使用【ToolsJava/J2EESysntax Check】對其進(jìn)行語法檢查。 (4)查看
11、Rose的日志窗口。如果發(fā)現(xiàn)有語法錯誤,生成的代碼有可能不能編譯。 (5)對組件進(jìn)行修改。 3. 設(shè)置“Classpath” 通過【ToolsJava/J2EEProject Specification.】打開Rose中的“Java Project Specification”,其中“ClassPath”選項(xiàng)卡,為模型指定一個Java類路徑。,正向工程,4. 設(shè)置“Code Generation”參數(shù) 5. 備份文件 代碼生成以后,Rose將會生成一份當(dāng)前源文件的備份,它的前綴是.jv。在用代碼生成設(shè)計(jì)模型時,必須將源文件備份。如果多次為同一個模型生成代碼,那么新生成的文件會覆蓋原來的.jv文
12、件。 6. 生成Java代碼 選擇至少一個類或組件,然后選擇【Tools-Java/J2EEGenerate Code】子菜單。如果是第1次使用該模型生成代碼,那么會彈出一個映射對話框,它允許用戶將包和組件映射到“classpath”屬性設(shè)置的文件夾中。,逆向工程,逆向工程是分析Java代碼,然后將其轉(zhuǎn)換到Rose模型的類和組件的過程。Rational Rose允許從Java源文件(.java文件)、Java字節(jié)碼(.class文件)以及一些打包文件(.zip .cab .jar文件)中進(jìn)行逆向工程。 下面將會詳細(xì)介紹逆向工程的過程。 (1)設(shè)置或檢查CALSSPATH環(huán)境變量。Rose要求將
13、CLASSPATH環(huán)境設(shè)置為JDK的類庫。根據(jù)使用的JDK的版本不同,CLASSPATH可以指向不同類型的類庫文件,例如.zip rt.jar等。 設(shè)置CLASSPATH環(huán)境變量的步驟如下。,逆向工程,首先,右擊“我的電腦”,然后選擇【屬性高級】選項(xiàng),單擊【環(huán)境變量】按鈕 在“系統(tǒng)變量”區(qū)域中,首先查找是否已經(jīng)有了CLASSPATH環(huán)境變量。如果沒有,單擊【新建】按鈕,如果有,則單擊【編輯】按鈕,然后在彈出的對話框中輸入路徑。 另外,還需要為自己的庫創(chuàng)建一個Classpath屬性。可以使用“project Specification”窗口中的“Classpath”選項(xiàng)進(jìn)行設(shè)置。 (2)啟動逆向
14、工程。有3種方式可以啟動逆向工程。第1種,選擇一個或多個類,然后單擊【ToolsJava/J2EEReverse Engineer】子菜單;第2種,右鍵單擊某個類,然后在彈出的菜單中選擇【Java/J2EEReverse Engineer】;第3種,將文件拖放到Rose模型中的組件圖或類圖中。當(dāng)拖放.zip 、.cab和.jar文件時,Rose會自動將它們解壓。注意,Rose不能將代碼生成這種文件。,實(shí)例應(yīng)用,1生成代碼實(shí)例 由于Rose的正向工程只能從UML類生成代碼,所以首先必須畫出類圖。以下面的類為例,選中這些類,然后選擇【ToolsJava/J2EEGenerate Code】,如果還
15、沒設(shè)置Classpath,那么會彈出一個對話框,要求選擇Classpath,如果當(dāng)前還沒有Classpath,點(diǎn)擊“Edit”,進(jìn)行Classpath配置。,圖14-2,圖14-3,實(shí)例應(yīng)用,選擇下圖中右邊的第一個“添加”按鈕,彈出選擇Classpath配置確認(rèn)框。,Classpath配置確認(rèn)框,實(shí)例應(yīng)用,Classpath配置有兩種形式: 一種是選擇.jar或.zip+Directory形式將Classpath指向?yàn)镴DK的類庫文件(如:C:Program FilesJavaj2sdk1.5.0librt.jar),另外再定義一個Directory(如D:),可將生成的java文件放在這個獨(dú)
16、立的Directory下。 一種是只選擇Directory將Classpath指向?yàn)镴DK的類庫Directory(如:C:Program FilesJavaj2sdk1.5.0lib),則生成的java文件將放在C:Program FilesJavaj2sdk1.5.0lib下。,這里選擇第一種形式,配置如圖所示。,實(shí)例應(yīng)用,按“確定”返回。選擇設(shè)定的Classpath,然后在右面選中所有的類,最后點(diǎn)擊【OK】,Rose就開始生成Java代碼,如右圖所示。 在Classpath下可以找到已經(jīng)生成的Java文件,如左圖所示:,實(shí)例應(yīng)用,基類Person的源代碼如下: /Source file:
17、 D:JavaSourcePerson.java public class Person private String name; private String ID; private String address; private String phoneNo; /* roseuid 4921532B01A5 */ public Person(),實(shí)例應(yīng)用, /* roseuid 492152A003A9 */ public void getName() /* roseuid 4921532B0138 */ public void setName() ,實(shí)例應(yīng)用, /* roseuid 49
18、215335002E */ public void getID() /* roseuid 4921533E031C */ public void setID() ,實(shí)例應(yīng)用, /* roseuid 49215343000F */ public void getAddress() /* roseuid 4921534E030D */ public void setAddress() ,實(shí)例應(yīng)用, 再看看,Rose是否在代碼里保持了模型中的繼承關(guān)系,以Customer子類為例,代碼如下: /Source file: D:JavaSourceCustomer.java public class Customer extends Person private String CarType; private String licenceNo; private String RequestOrder; /* roseuid 4921539A0
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貸款課件背景
- 密閉式吸痰操作中的溝通技巧
- 2026年照明設(shè)計(jì)的重要性與價值
- 2026年地質(zhì)勘察與環(huán)保的關(guān)系
- 維速達(dá)爾治療患者的藥物相互作用
- 發(fā)診護(hù)理人員的專業(yè)素養(yǎng)
- 2026年五指山市毛陽中心衛(wèi)生院什益、牙合村衛(wèi)生室公開考核招聘編外鄉(xiāng)村醫(yī)生備考題庫帶答案詳解
- 2025年濰坊市濰城區(qū)人民醫(yī)院公開招聘專業(yè)技術(shù)人員(第二批次)備考題庫及答案詳解1套
- 2026年安康高新區(qū)第一初級中學(xué)招聘教師備考題庫及答案詳解參考
- 2026年中建西部建設(shè)新材料科技有限公司招聘備考題庫及答案詳解參考
- 病媒生物防制服務(wù)外包 投標(biāo)方案(技術(shù)方案)
- 光伏電站-強(qiáng)制性條文執(zhí)行檢查表
- 經(jīng)濟(jì)學(xué)在生活中
- 產(chǎn)品防護(hù)控制程序培訓(xùn)課件
- ISO-6336-5-2003正齒輪和斜齒輪載荷能力的計(jì)算-第五部分(中文)
- 軌道線路養(yǎng)護(hù)維修作業(yè)-改道作業(yè)
- 2023-2024學(xué)年上海市閔行區(qū)四上數(shù)學(xué)期末綜合測試試題含答案
- 中鋁中州礦業(yè)有限公司禹州市方山鋁土礦礦山地質(zhì)環(huán)境保護(hù)和土地復(fù)墾方案
- 解除勞動合同證明電子版(6篇)
- 呼吸科規(guī)培疑難病例討論
- 基于PLC控制的小型鉆床機(jī)械設(shè)計(jì)
評論
0/150
提交評論