这一节主要介绍用户如何使用Rose的逆向工程生成UML模型,并用来进行C++代码的结构分析。
Rational Rose可以支持标准C++和Visual C++的模型到代码的转换以及逆向工程。下面将详细地说明这两种C++ project的逆向工程的步骤和具体操作。
2.1 ANSI C++(标准C++)逆向工程(Reverse Engineer)
使用标准C++逆向工程,需要在组件图(component view)中创建一个组件(component),设置好需要进行转换的组件的信息,也就是该组件的语言、所包含的文件、文件所在的路径、文件后缀等等信息,然后Reverse Engineer就可以根据给定的信息将代码转换成类图了。
(一) 右键点击组件视图(Component View),选择New->Component,创建一个新的组件
(二) 将component的language属性设定为ANSI C++
a) 选中创建的component,点击右键,选中Open Specification
b) 在这个对话框中将该component的language设定为ANSI C++
(三) 配置该ANSI C++ component,设置好该component中包含的C++代码文件,并进行C++语言的详细设置
a) 选中该component,点击右键,选择ANSI C++->Open ANSI C++ Specification
b) 把Source file root directory设定为你的C++源码文件所在的路径,Reverse engineering root package 中输入转换后的工程的名称,默认为C++ Reverse Engineered,Reverse engineer directories as packages 选项将以文件夹的形式在Rose 的Logical View中生成与源文件相同的文档结构。点击Add Files将需要转换的文件添加到Project Files中,视你的需要来做其它的设定,比如:头文件扩展名等等。
(四) 将设置好的component转换成模型图
a) 选中设置好的component,点击右键,选中ANSI C++->Reverse Engineer
b) 选中需要转换的class,点击ok,一个component的逆向转换就完成了。
c) 逆向转换完成后,将在Rose主界面的Logical View下显示逆向转化后的代码。
(五) 得到逆向工程的模型图
a) 新建一个Class Diagram,并命名。
b) 双击此Diagram打开,选择Query->Add Classes。
c) 在Package下拉列表选择包含类的文件夹,点击OK。选择All >> 添加。
来自: http://hi.baidu.com/hcq11/blog/item/549858249a2d7420d40742ab.html