参考了以下博文:
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,系统会将图中的所有元素用最优方式重新排列,给用户一个清晰的视图。如果一个类中的成员数据和函数太多,可以右键单击该类,选择隐藏属性或方法,如图: