Rational Rose 是利用 UML(统一建模语言)进行分析和设计面向对象软件系统的强大的可
视化工具,可以进行项目需求分析、结构规划和生成框架代码,还可以支持从现有系统逆
向转出工程代码,生成 Rose 模型的功能。
2004 年 10 月, IBM 推 出 了 支 持 最 新 的 UML2.0 的 可 视 化 建 模 工 具 Rational Software
Architect(见注释①) 和 IBM Rational Software Modeler(见注释②)。虽然它们支持在建
模功能上有了更好的改进、支持了更新的标准,但是 RSA 的精彩功能主要是集中在对 Java
应用的支持,而 IBM Rational Software Modeler 则是主要关注系统的模型设计,如果要从结
构上分析 C++编写的系统的代码,Rational Rose 还是首选的工具。
接下来的文章将会对如何利用 Rational Rose 的逆向转出工程来进行系统分析进行更加详细
地阐述。
一.Rational Rose 逆向工程介绍
逆向工程(Reverse Engineer)就是从现有系统的代码来生成模型的功能。分析已有的代码
其主要的目的就是了解代码结构和数据结构,这些对应到模型图就是类图、数据模型图和
组件图(对 UML 各种模型图的描述见注释③),也就是通过 Rational Rose 的逆向工程所
得到的结果。Rational Rose 所支持的逆向工程功能很强大,包括的编程语言有 C++, VB,
VC, Java, CORBA,以及数据库 DDL 脚本等等,并且可以直接连接 DB2, SQLServer, Oracle
和 Sybase 等数据库导入 Schema 并生成数据模型。
很多大型的 C++开发的产品都涉及到数据库的使用,对这种大型系统的开发,尤其是做二
次开发的情况下,主要的难点就是对源码和数据库结构的分析。而利用 Rose 的逆向工程这
一功能,就可以完成代码'类图以及数据库 Schema->数据模型图的转换,解决这两大难点,
可以使开发和设计人员在对这种大型系统的升级、分析和开发中,更为方便、快捷、有条
理地掌握系统结构,不用再为分析庞大的系统结构而头疼。
二.如何用 Rational Rose 进行 C++代码分析
这一节主要介绍用户如何使用 Rose 的逆向工程生成 UML 模型,并用来进行 C++代码的结
构分析。
Rational Rose 可以支持标准 C++和 Visual C++的模型到代码的转换以及逆向工程。下面将
详细地说明这两种 C++ project 的逆向工程的步骤和具体操作。
1. ANSI C++(标准 C++)逆向工程(Reverse Engineer)使用标准 C++逆向工程,需要在
组件图(component view)中创建一个组件(component),设置好需要进行转换的组件的
信息,也就是该组件的语言、所包含的文件、文件所在的路径、文件后缀等等信息,然后
Reverse Engineer 就可以根据给定的信息将代码转换成类图了。
a) 右键点击组件视图(Component View),选择 New->Component,创建一个新的组件
评论0