參考了以下博文:
https://blog.csdn.net/zyyoung/article/details/1670803
https://www.cnblogs.com/ssjie/p/4954034.html
本文主要是記錄一下使用Rational Rose的逆向工程功能,從現有的C++代碼生成UML類圖的步驟。方便自己看代碼時迅速理清各個類之間的關係。
**
- 逆向工程:
**
1)在構件視圖(Component View)中創建並命名新的構件(Component),如:NewCplusplusComponent,如下圖;
2).雙擊新的構件(NewCplusplusComponent)打開Component Specification窗口,將構件的實現語言改爲ANSI C++,如圖:
3).右單擊新構件(NewCplusplusComponent),選擇快捷菜單中的ANSI; C++>Open ANSI C++ Specification…,打開構件ANSI C++ Specification窗口,在構件規範窗口的Files標籤中添加源文件,如圖:
4).右單擊構件NewCplusplusComponent,選擇Tools>ANSI C++>Reverse engineer…,打開“選擇要添加到模型中的類 ”的窗口,選擇要添加到模型中的類,單擊Ok按鈕,開始逆向工程,如圖:
**
- 構建視圖----->模型圖
**
逆向轉換完成後,將在Rose主界面的Logical View下顯示逆向轉化後的代碼,如圖:
新建一個Class Diagram,並命名CplusplusClassDiagram。
雙擊此 雙擊此Diagram打開,選擇Query->Add Classes。打開,選擇Query->Add Classes,如圖:
添加所需要的那類,點擊OK,如圖是可選擇的類:
可添加的類如下:
最終生成的類圖如下:
如果一個系統中所涉及的數據元素非常多,導致視圖很擁擠,排版也非常困難。Rational Rose提供的自動排版功能可以很方便地幫助用戶解決這個問題。
選擇Format->Layout Diagram,系統會將圖中的所有元素用最優方式重新排列,給用戶一個清晰的視圖。如果一個類中的成員數據和函數太多,可以右鍵單擊該類,選擇隱藏屬性或方法,如圖: