UML建模實(shí)例教程(第3版)課件 第10章 雙向工程_第1頁
UML建模實(shí)例教程(第3版)課件 第10章 雙向工程_第2頁
UML建模實(shí)例教程(第3版)課件 第10章 雙向工程_第3頁
UML建模實(shí)例教程(第3版)課件 第10章 雙向工程_第4頁
UML建模實(shí)例教程(第3版)課件 第10章 雙向工程_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第10章雙向工程110.1雙向工程簡介10.2正向工程10.3逆向工程2本章將向讀者詳細(xì)介紹Umbrello2.32的雙向工程的功能及操作方法。Umbrello雙向工程的內(nèi)容主要包括:雙向工程簡介、正向工程、逆向工程。本章的學(xué)習(xí)要點(diǎn)包括:從模型到代碼的正向工程;從代碼到模型的逆向工程。310.1雙向工程簡介45Umbrello的雙向工程包括正向工程和逆向工程。

正向工程就是從UML模型到具體語言程序代碼的過程,而逆向工程是在軟件開發(fā)環(huán)境中由具體語言程序代碼到UML模型的過程。

使用正向工程,一旦軟件系統(tǒng)的設(shè)計(jì)完成后,開發(fā)者可以借助正向工程直接由UML模型生成程序代碼框架,提高開發(fā)效率。而借助于逆向工程,開發(fā)者可以通過程序源代碼得到軟件系統(tǒng)的設(shè)計(jì)模型和設(shè)計(jì)文檔。10.1雙向工程簡介10.2正向工程(生成Java代碼)610.2正向工程(生成Java代碼)7任務(wù)1使用Umbrello的正向工程將類圖生成Java代碼。任務(wù)描述

8正向工程是從模型圖到代碼框架的過程。通過將軟件模型對某種特定語言的映射可以從UML圖得到該語言的代碼,幫助開發(fā)者節(jié)約許多編寫類、定義屬性和方法等重復(fù)性工作的時間。轉(zhuǎn)換是把源模型的元素轉(zhuǎn)變?yōu)槟繕?biāo)模型的元素。轉(zhuǎn)換配置是轉(zhuǎn)換的實(shí)例,它包括轉(zhuǎn)換要使用的所有信息。源模型和目標(biāo)模型可以是文本文件、代碼模型,也可以是UML模型。當(dāng)源模型和目標(biāo)模型都是UML模型時,轉(zhuǎn)換通常是把元素從一個抽象級別轉(zhuǎn)變?yōu)榱硪粋€抽象級別。轉(zhuǎn)換包括轉(zhuǎn)變規(guī)則,這些規(guī)則把一種類型的源元素轉(zhuǎn)變?yōu)橐粋€或多個目標(biāo)元素。除了轉(zhuǎn)變規(guī)則外,轉(zhuǎn)換還包括貫穿于源模型元素并基于元素類型和特定規(guī)則標(biāo)準(zhǔn)運(yùn)行的機(jī)制。轉(zhuǎn)換配置是轉(zhuǎn)換的一個實(shí)例,它包括轉(zhuǎn)換所使用的所有信息,如一個唯一的名字、轉(zhuǎn)換源及轉(zhuǎn)換目標(biāo)等;它也可以包括一個已有轉(zhuǎn)換的具體特定屬性。當(dāng)用戶運(yùn)行一個轉(zhuǎn)換時將使用用戶在轉(zhuǎn)換配置中提供的信息。在用戶運(yùn)行轉(zhuǎn)換之前,用戶必須創(chuàng)建一個轉(zhuǎn)換配置。當(dāng)用戶應(yīng)用一個轉(zhuǎn)換配置時,系統(tǒng)將創(chuàng)建一個轉(zhuǎn)換的實(shí)例并應(yīng)用轉(zhuǎn)換配置中的屬性來運(yùn)行,最后生成用戶所期望的輸出。10.2正向工程(生成Java代碼)9使用Umbrello的正向工程將類圖生成Java代碼。詳見教學(xué)視頻《正向工程》10.2正向工程(生成Java代碼)1010.2正向工程(生成Java代碼)選擇類圖正向工程生成的Java代碼文件正向工程前:正向工程后:1110.2正向工程(生成Java代碼)完成步驟:1.設(shè)置默認(rèn)語言為Java。2.設(shè)置代碼生成選項(xiàng)。3.選擇類圖。4.設(shè)置代碼生成選項(xiàng)。5.選擇類。6.生成代碼。7.檢驗(yàn)代碼生成情況。8.編輯代碼。12設(shè)計(jì)model等值對象時,不必為其設(shè)計(jì)getter(),setter()方法,正向工程會自動生成其getter(),setter()方法;一般A類調(diào)用B類,最終代碼中經(jīng)常以在A類里初始化一個B類的變量。在設(shè)計(jì)時,不要在A類中設(shè)計(jì)一個B類類型的屬性。這種關(guān)系要在“AssociationProperties”中通過為RoleA指定值來實(shí)現(xiàn);類設(shè)計(jì)時要按開發(fā)規(guī)范寫好類和方法的注釋,正向工程會將注釋生成到代碼中,開發(fā)過程中注釋如有改動,可通過逆向工程將類圖和代碼保持同步。(1)使用Umbrello的正向工程將圖書管理系統(tǒng)中的類圖轉(zhuǎn)換成Java代碼。(2)在Umbrello中查看新生成的對應(yīng)類的Java代碼。

1.操作要求

2.操作提示

(1)通過學(xué)習(xí)小組討論和上網(wǎng)查詢資料形式完成。(2)比較生成的代碼與自己編寫的程序代碼的區(qū)別。10.3逆向工程1410.3逆向工程15任務(wù)2使用Umbrello的逆向工程將已有的Java源代碼轉(zhuǎn)換成Umbrello模型。任務(wù)描述

16Umbrello逆向工程就是從現(xiàn)有系統(tǒng)的代碼來生成模型的功能。逆向工程通常在迭代過程結(jié)束,重新同步模型和代碼時非常有用。在一個迭代開發(fā)周期中,對于原有模型的實(shí)現(xiàn),可能會加入許多新的類、屬性或方法。這樣就可能造成設(shè)計(jì)模型和實(shí)現(xiàn)模型不一致。這時候,采用逆向工程就可以實(shí)現(xiàn)設(shè)計(jì)模型和實(shí)現(xiàn)模型的同步。同時,通過逆向工程可以分析已有的代碼,了解代碼結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu),這些代碼對應(yīng)到模型圖就是類圖、數(shù)據(jù)模型圖與組件圖。Umbrello所支持的逆向工程功能很強(qiáng)大,包括的編程語言有C++、VB、VC、Java、CORBA等,并且可以直接連接DB2、SQLServer、Oracle和Sybase等數(shù)據(jù)庫,導(dǎo)入Schema并生成數(shù)據(jù)模型。很多大型軟件系統(tǒng)的開發(fā)都涉及數(shù)據(jù)庫的使用,尤其是在做二次開發(fā)的情況下,主要的難點(diǎn)就是對源碼與數(shù)據(jù)庫結(jié)構(gòu)的分析。而利用Umbrello的逆向工程這一功能,就可以完成代碼、類圖以及數(shù)據(jù)庫Schema到數(shù)據(jù)模型圖的轉(zhuǎn)換。10.3逆向工程17publicclassAdministrator{

protectedStringname;

protectedStringpass;

publicvoidmanageBook(){}

publicvoidmanageReader(){}

publicvoidmanageNotice(){}

publicvoidmanageLibrarian(){}

publicvoidmanageFine(){}

publicvoidmanageBookType(){}

publicvoiddoQuery(){}

publicvoidmanageSystem(){}}10.3逆向工程假設(shè)現(xiàn)有圖書管理系統(tǒng)中的管理員類Administrator.java代碼:18由Administrator.java源文件生成Umbrello類圖。詳見教學(xué)視頻《逆向工程》10.3逆向工程逆向工程得到的類圖1910.3逆向工程完成步驟:1.選擇Java類文件。2.導(dǎo)入代碼。3.將轉(zhuǎn)換后的類添加到類圖。20借助于逆向工程可以檢查逆向同步設(shè)計(jì)會不會出問題,以及信息會不會丟失;進(jìn)行逆向工程時,若有關(guān)聯(lián)的類(包括框架的類或別的模塊的類)不存在,則逆向會報錯,無法進(jìn)行;逆向工程只能生成類,不能生成類圖;如要得到類圖,請創(chuàng)建一個類圖,然后將上面逆向工程過來的類拖進(jìn)類圖區(qū)域即可。(1)在Java語言中編寫WebShop電子商務(wù)系統(tǒng)中商品類的代碼,添加一個g_Producer屬性并添加一個queryGoods()方法。(2)使用Umbrello的逆向工程,將商品類對應(yīng)的Java類(goods.java)轉(zhuǎn)換成Umbrello中的類圖,并比較該類圖在修改前后的變化。21

1.操作要求

2.操作提示(1)通過學(xué)習(xí)小組討論和上網(wǎng)查詢資料形式完成。(2)必須保證會員類之前沒有g(shù)_Producer屬性和queryGoods()方法。

(1)完善圖書管理系統(tǒng)中的類的屬性和方法(指定其類型和返回值)。(2)由圖書管理系統(tǒng)中的類圖生成對應(yīng)的Java代碼。(3)使用Java語言編寫一個描述學(xué)生的類Student.

溫馨提示

  • 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

提交評論