本人同意他人对我的文章引用,但请在引用时注明出处,谢谢.作者:蒋志强
用
Rational Rose
将
VC
工程转换为类图
首先启动Rational Rose,启动后如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/fa89a477db6a41d68e50e84db5f15bca.jpg)
1. 启动以后点开左边的Compoent View,鼠标右键点击Compoent View,在弹出的快捷菜单中选择New->Compoent,如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/d39c3b52a80747478d92a924966fbb30.jpg)
新建Compoent以后会在Compoent View里显示添加的组件,我们可以将该组件的名字修改为我们想要的名字,我将这个测试用的组件取名为TEST,如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/169dd8d64b124ae7ac8234ea81b3840d.jpg)
2. 然后在TEST组件上点击鼠标右键,弹出快捷菜单,选择Open Specification…选项,对其具体属性进行设置,如图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/44a8926a5c8a443ca32b7e8d587f9b7e.png)
3. 在弹出的Test组件设置窗口中,将Language项设置为ANSI C++,如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/9045970649674c228f58917606bcc29f.jpg)
点击设置窗口的Apply按钮,然后点击OK
4. 设置好以后,再用鼠标右键点击TEST组件,这时弹出的快捷菜单会有所改变,多了ANSI C++选项,选择ANSI C++ -> Open ANSI C++ Specification…选项,如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/1f1e446349b34bf0ba5b859e4ac3efa2.jpg)
5. 选择该选项后,弹出ANSI C++ Specification设置窗口,将Source file root directory设置为我们需要进行类图转换的VC工程的目录。我使用D盘下的Preview工程,所以设置为该目录,如下图:
6. 然后我们点击Add Files按钮,添加我们需要进行转换的源文件。这些源文件既包括类的*.cpp实现文件也要包括相应的*.h头文件,如下图:
8.添加完工程文件后,可以再Project files列表中看到添加的头文件和实现文件。我们点击确定按钮,关闭该设置窗口。右键点击TEST组件,选择ANSI C++->Reverse Engineer…选项,如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/14ed43695afa4ba4ae12238a93e64bf9.jpg)
7. 在弹出的Reverse Engineer设置窗口中选择需要转换的类或踢出不需要转换的类,结构体,如下图:
8. 选好要转换的类后,点击OK按钮便开始进行转换,转换成功后会提示转换工程完成:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/18cec575c95948feb39ff4a904c007b6.jpg)
10.在转换工程成功后,再次右键点击TEST组件,选择Open Specification…选项菜单,弹出TEST组件设置窗口,将Language改为VC++,点击Apply和OK按钮,如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/eb50ecf962b54e4abe53ccbeccbc5862.jpg)
10. 再用鼠标右键点击TEST组件,弹出快捷菜单将有所变化,选择Assign To Project....菜单项,如下图所示:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/9dcb98b43bb64eb585f926d3c79709f8.jpg)
10. 弹出Compoent Assignment Tool对话框,右键点击左边列表VC++下的TEST项目,弹出快捷菜单,选择Properties选项,如图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/61cea6cb34d147c199b3401e18f843bd.jpg)
11.选择Properties后,弹出对话框,要对Workspace File进行设置:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/2d3b89a8cb31488086566130b7090df3.jpg)
12.在选择VC工程文件的对话框中选择Exsting标签,然后找到需要转换的VC的工作区文件,然后点击打开按钮:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/c0a194356bc74f01b5358b060687248e.jpg)
13.设置了VC工作区文件后,VC工程文件会自动找到,如果出现问题说明要安装VC:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/23f6a72982f648fa93b1b56c465aae97.jpg)
14.工作区和工程文件设置完成后,点击OK,关闭各个对话框。然后再次右键点击TEST组件,在弹出的快捷菜单中选择Update Model…菜单项目,如图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/6b3e8b7908514059bb91d9f5923f0ced.png)
15.在弹出的Model Update Tool对话框中直接点击Finish按钮:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/5a8849916a6a40cdbfdde3d7a27c55aa.jpg)
16.在Model Updata的过程中,可能会因为找到代码及头文件不完整的类、结果、枚举类型,这些类型由于我们在加入工程的*.cpp和*.h时候不完整,不能对这些类型进行完整Model Updata,这个时候会弹出对话框。我们可以把其剔除掉,如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/505068f05a0547fd84b877408de3fa0b.jpg)
17.将其剔除后Model Updata过程继续,完成后将在右边产生类,结构的UML图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/a6789c71d9dc4524b169f6b31ffad7f7.jpg)
18.生成图形后,选中所有图形。选择Rational Rose的的Format菜单,选中Show All Attributes和Show All Operations项目,所有的类及结构的属性和方法都显示出来,如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/ea3642e5f2a143ac91c4feae0bb56b2b.jpg)
19.点开左边的Logical View列表,接着点开下面的VC++ Reverse Engineered列表,点开下面的TEST项目。在TEST项目下列出了该项目Reverse后的类,直接选中想要的类拖动到Diagram中,就可以将其类的UML图拖动到图表中,如下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/gamer_gerald/4f3f45b796a549aab9c037c5bd979e71.jpg)
The End
祝大家国庆快乐^_^