適用場景
接手無 UML 文檔的專案時,需快速理解類別結構與呼叫關係。Rational Rose 逆向工程可從原始碼自動生成類圖,是legacy系統分析的利器。
操作流程
1. 建立 Rose 專案
- File → New → 選擇 J2EE Model 範本
- 命名專案並確定
2. 配置逆向工程參數

- 在彈出對話框的 CLASSPATH 頁籤:加入原始碼根目錄、所有依賴 JAR 包
- 點擊 ADD RECURSIVE 遞歸掃描
- 點擊 SELECT ALL 全選類別
- 點擊 REVERSE 執行逆向工程(完成無提示)
- 點擊 DONE 結束
3. 生成類圖
逆向完成後,Logical View 與 Component View 會依套件結構自動生成套件與類別,但不會自動建立類圖:
- 右鍵 Logical View → New → Class Diagram
- 將欲展示的套件/類別拖曳至圖面
- 選單 Query → Add Class 確認加入
常見錯誤與解決方案
錯誤 1:屬性類型顯示為 Logical View::java::lang::<
原因:JDK 基礎類型映射異常(Rose 已知 Bug)
解決:
- Tools → Java/J2EE → Project
- 選擇 Fundamental Type 頁籤
- Remove Common JDK Classes → Add Common JDK Classes
- 確定重新逆向
錯誤 2:逆向過程報錯,Log 顯示找不到類別/包
原因:CLASSPATH 缺少依賴包或原始碼路徑錯誤
解決:
- View → Log 查看詳細錯誤資訊
- Tools → Java/J2EE → Project Specification
- 選擇 Class Path 頁籤,補全缺少的 JAR 包與原始碼目錄
- 重新執行逆向工程
進階技巧
- 增量逆向:程式碼變更後,僅對修改套件重新逆向,避免全量重建
- 過濾器:設定命名規則過濾掉 DTO、Entity 等無需建模的類別
- 圖表分層:依架構層次(Controller/Service/DAO)建立多張類圖,避免單圖過大
替代工具
若 Rose 版本過舊不支援新版 Java 語法,可考慮:
- IntelliJ IDEA:內建 Diagrams 功能(Ctrl+Alt+Shift+U),支援即時同步
- Eclipse + ObjectAid:免費外掛,拖曳即可生成類圖
- PlantUML:文字描述生成圖表,版控友善,適合文檔即代碼