- UML 建模、設計與分析:從新手到高手
- 夏麗華
- 1273字
- 2019-12-09 14:44:20
2.4 雙向工程
Rational Rose支持UML模型與編程語言之間的相互轉換,采用的解決方案是雙向工程(Round Trip Engineering,RTE)方案。
雙向工程包括正向工程和逆向工程,正向工程是通過Rational Rose模型生成代碼的過程,逆向工程是分析Java代碼并將其轉換成Rational Rose模型的類和組件的過程。Rational Rose允許從Java源文件(.Java文件)、Java字節碼(.Class文件)以及一些打包文件中進行逆向工程。
2.4.1 正向工程
正向工程是從模型直接產生一個代碼框架,這個框架可以使開發人員的思路更加清晰,從而為開發人員節約大量用于編寫類、屬性、方法代碼的工作時間。
正向工程的操作方法是根據需要在Rational Rose中進行設置及選擇相應的語言,即執行【Tools】| 【Options】命令,在彈出的【Options】對話框中,激活【Notation】選項卡,在【Default】下拉列表中選擇相應的語言,例如選擇【Java】選項。

在Rational Rose中,可以將模型中的一個或多個類圖轉換為Java、C++等源代碼,其生成代碼的具體方法包括下列4個步驟。
1.檢查模型
生成代碼的第1步是檢查模型,以查找模型中存在的一些問題和不一致性,從而確保代碼生成的正確性。
執行【Tools】|【Check Model】命令,對整個模型進行檢查,查找模型中的一些不確定的問題。
2.類映射到構件
雖然在生成Java、C++或Visual Basic代碼時,Rational Rose會自動創建每個類的構件,但在生成代碼之前還需要將類映射到相應的源代碼構件中。
選擇構件圖或“瀏覽器窗口”中用于實現類的構件圖標,右擊該圖標并執行【Open Specification…】命令,在彈出的對話框中,激活【Realizes】選項卡,啟用【Show all classes】復選框。然后,在列表中找到所需要實現的類,右擊該類執行【Assign】命令。

3.設置代碼生成屬性
設置代碼生成屬性會直接影響生成語言的代碼框架。執行【Tools】|【Options】命令,在彈出的對話框中激活所要生成語言的選項卡,例如激活【Java】選項卡,查看Java屬性標簽。

4.生成代碼
選擇所需生成代碼的模型或模型元素,執行【Tools】|【Java/J2EE】|【Project Specification】命令,在彈出的對話框中激活【ClassPath】選項卡,單擊【確定】按鈕,添加新的路徑。

打開設計好的類圖,選中要生成Java文件的類,執行【Tools】|【Java/J2EE】|【General Code】命令,在彈出的對話框中選擇所需生成的內容,單擊【OK】按鈕,即可生成Java代碼。

此時,系統會根據選擇內容生成多個代碼文件,其生成的代碼如下圖所示。從下圖中可以發現所生成的Java文件格式非常標準,這有助于開發人員進行查看和編寫,在此基礎上可以按照功能需求對其方法進行實現。對于可能涉及并生成的接口,其方法是抽象的,因此沒有代碼。在添加代碼過程中,如果需要對其增加注釋,則要按照生成注釋的規范進行,因為其注釋風格是“JavaDoc”風格。

2.4.2 逆向工程
逆向工程就是利用源代碼中的信息創建或更新Rational Rose模型。通過語言插件,Rational Rose支持多種語言的逆向工程。
在逆向工程轉出代碼的過程中,Rational Rose從源代碼中尋找類、屬性和操作、關系包、構件等逆向工程的源代碼信息,Rational Rose對它們進行模型化處理后得出一個新的模型。
以正向工程中的Admin.java為例,其逆向工程的實現步驟如下。
首先,執行【Tools】|【Java/J2EE】|【Reverse Engineer】命令,在彈出的對話框中,選擇所需轉換的文件,單擊【Add】按鈕,添加到列表中。然后,再單擊【Select All】按鈕選中所需導出的文件。最后,單擊【Reverse】按鈕,進行逆向工程。完成后,單擊【Done】按鈕,關閉對話框。

- Java逍遙游記
- ASP.NET Web API:Build RESTful web applications and services on the .NET framework
- Oracle WebLogic Server 12c:First Look
- Linux C/C++服務器開發實踐
- Practical DevOps
- Java Web應用開發技術與案例教程(第2版)
- Android玩家必備
- Creating Mobile Apps with jQuery Mobile(Second Edition)
- TMS320LF240x芯片原理、設計及應用
- 21天學通C++(第5版)
- Scratch3.0趣味編程動手玩:比賽訓練營
- C++程序設計教程(第2版)
- Android系統下Java編程詳解
- PhoneGap 4 Mobile Application Development Cookbook
- Xamarin Cross-Platform Development Cookbook