Rational Rose逆向工程介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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,创建一个新的组件
b) 将component的language属性设定为ANSI C++
①选中创建的component,点击右键,选中Open Specification
②在这个对话框中将该component的language设定为ANSI C++
c) 配置该ANSI C++ component,设置好该component中包含的C++代码文件,并进行C++语言的详细设置
①选中该component,点击右键,选择ANSI C++->Open ANSI C++ Specification
②把Source file root directory设定为你的C++源码文件所在的路径,并且将需要转换的文件添加到Project Files中,视你的需要来做其它的设定,比如:头文件扩展名等等。
d) 将设置好的component转换成模型图
①选中设置好的component,点击右键,选中ANSI C++->Reverse Engineer
②选中需要转换的class,点击ok,一个component的逆向转换就完成了。
2.Visual C++ 在使用这个功能的时候,要求用户的机器上同时安装Visual Studio。Visual C++的逆向工程也需要首先创建一个component,并将该component的language属性设置为VC++。Rational Rose对VC++模型的转换是通过读取VC++ Project File的信息来实现的,用户只需要将对应的project file信息指定给component就可以了。
a) 将VC++ Project的信息赋给刚刚创建好的component。
①选择该component,点击右键,选择Assign To Project
②在对话框中找到刚刚创建的component,右键点击并选择Properties。
③在下面对话框中选中需要进行转换的Project,点击ok,该component就与需要转换的project关联上了。
b) 将设置好的component转换成模型图
选中设置好的component,点击右键,Update Model…,将会弹出确认对话框,选中需要转换的class,点击finish就可以了。
三.如何用Rational Rose进行数据库结构分析
利用Rational Rose可以进行关系数据库的数据模型设计并导出DDL语言脚本,相反还可以导入已有的DDL脚本生成数据模型以及连接SQLServer, DB2, Oracle等数据库并导入数据库的schema生成数据模型。
下面以SQL Server为例说明一下逆向转换工程的步骤。
a) 首先,选择Tools->Data Modeler-> Reverse Engineer
b) 在进行逆向工程转换的过程中可以选择是从数据库还是DDL脚本进行转换,如果是DDL脚本转换,就直接给定DDL脚本文件位置就可以了。本例子给出的是连接SQLServer数据库将schema导入生成数据模型的过程,所以选中Database,进入下一步。