Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

目录

1.安装&破解Rational Rose 2003

1.1 安装Rose 2003

1.2 破解Rose 2003

1.3运行出错“没有找到suite objects.dl”

2. Rational Rose 2003 逆向工程生成UML模型图

2.1 ANSI C++(标准C++)逆向工程(Reverse Engineer)

2.2 Visual C++逆向工程(Reverse Engineer)

1.安装&破解Rational Rose 2003

1.1 安装Rose 2003

(1)在网上下载Rational Rose Enterprise Edition 2003

(2)网上下载Rose 2003的破解包rose2003crack

(3)安装Rational Rose Enterprise Edition 2003

点击exe安装包,按照向导一步一步走。

Product Selection:选择Rational Rose Enterprise Edition

Deployment Method: 选择Desktop installation from CD image

安装过程中,若系统跳出警告框 “SmartHeap Library”—MEM_BAD_POINTER, 点击 ”确定”跳过。

安装完成后,跳出 ”License Key Administrator Wizard ” 对话框,选择右下方的 ” Don’t show this wizard on startup again, I’ll use the toolbar to activate it.” 。

1.2 破解Rose 2003

1.         安装Rose后,默认是需要许可证书的。去下载个破解的。本例中下载的是rose2003crack.rar。

2.         先用破解压缩包里的 rational.exe,lmgrd.exe 覆盖到你的Rose 2003安装目录的Rational\Common\

3.         然后记事本打开破解压缩包里的license.dat, 修改里面的 SERVER yourPC ANY  DAEMON rational "C:\Program Files\Rational\Common\rational.exe" 改成 SERVER 你的机器名 ANY  DAEMON rational "你的安装目录\rational.exe" ,拷贝到Common目录下..

4.         为终止警告框 “SmartHeap Library”—MEM_BAD_POINTER跳出, 将破解压缩包里的SHW32.DLL(一般会于mem_bad_pointer_emend.rar中)拷贝到你的Rose 2003安装目录的\Rational\Rose下覆盖即可。

5.         将Flexlm.cpl拷贝到C:\WINDOWS\system32下,在控制面板里,切换到经典视图,运行 FLEXlm License Manager。 之后配置FLEXlm License Manager如下:
    在 Setup 面板配置文件路径,lmgrd.exe
-> 你的安装目录 \Common\lmgrd.exe, 而 License
File 为你改过的 \Common\license.dat

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

6.         在Control面板点击Start,如果成功的话点击Status按钮将显示 你的机器名:license
server UP (MASTER), 说明成功了。 失败的话重启一下FlexLm
License Manager就没问题了。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

7.         如果弹出对话框License
Key Administrator Wizard后, 选定Point
to a Rational License Server to get my licenses,单击下一步, Server Name文本框中填写你的机器号(可能已经填好),单击完成。(成功的话会出现两屏的licenses)

8.         从开始菜单启动Rational
Rose Enterprise Edition,若跳出对话框”Rational License Key Error” , 点击”Launch
License Key Administrator”, 进入对话框,选择工具条最左边的小帽子按钮”Start Wizard”, 跳出对话框” License
Key Administrator Wizard”,选定Point to a Rational License Server to get my licenses,单击下一步,Server
Name文本框中填写你的机器号(可能已经填好,应与license.dat中的机器名同),单击完成。 (成功的话会出现两屏的licenses)

9.         若重启电脑后,无法从开始菜单启动Rational
Rose Enterprise Edition,请重启控制面板里的FlexLm License Manager。

1.3安装过程中也可能运行时出现 没有找到suite objects.dll 因此rational rose不能能启动 错误

运行Rose 提示错误: 未找到suite objects.dll

我在win7上安装的目录是E:\Program Files\Rational

suite objects.dll在Common(大写)下,

打开环境变量(如下说明)查看到rose的路径下Common是大写的common,于是重新把path里的路径重写了一下。这次再运行····OK了··

其实suite objects.dll 还在你的电脑中,只是环境变量错了或者没设置,造成找不到。我安装的地址是E:\Program Files\Rational\,suite objects.dll在D:\Program Files\Rational\Common文件夹下。解决步骤如下:

1.右击 我的电脑
2.选择 高级->环境变量
3.编辑path,在原path添加 ";D:\Program Files\Rational\Common"(引号内添加,引号不用加进去)
4.启动rose,OK。

2. Rational Rose 2003 逆向工程生成UML模型图

这一节主要介绍用户如何使用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,创建一个新的组件

 Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图 

(二)    将component的language属性设定为ANSI
C++

a)          选中创建的component,点击右键,选中Open
Specification

  Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

b)         在这个对话框中将该component的language设定为ANSI
C++

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

(三)    配置该ANSI
C++ component,设置好该component中包含的C++代码文件,并进行C++语言的详细设置

a)          选中该component,点击右键,选择ANSI
C++->Open ANSI C++ Specification

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

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

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

b)         选中需要转换的class,点击ok,一个component的逆向转换就完成了。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

c)        逆向转换完成后,将在Rose主界面的Logical
View下显示逆向转化后的代码。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

(五)    得到逆向工程的模型图

a)  新建一个Class
Diagram,并命名。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

b)         双击此Diagram打开,选择Query->Add
Classes。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

c)          在Package下拉列表选择包含类的文件夹,点击OK。选择All
>> 添加。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

d)        重复同样的操作直到所有需转换成UML模型的类都已经添加完毕。最后在Class
Diagram视图中显示所有生成的UML模型图及其它们之间的联系。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

 

(六)    排列视图

一般来说,一个系统中所涉及的数据元素非常多,导致视图很拥挤,排版也非常困难。Rational
Rose提供的自动排版功能可以很方便地帮助用户解决这个问题。

选择Format->Layout
Diagram,系统会将图中的所有元素用最优方式重新排列,给用户一个清晰的视图。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

2.2 Visual C++逆向工程(Reverse
Engineer)

Visual C++ 在使用这个功能的时候,要求用户的机器上同时安装Visual
Studio。Visual C++的逆向工程也需要首先创建一个component,并将该component的language属性设置为VC++。Rational
Rose对VC++模型的转换是通过读取VC++
Project File的信息来实现的,用户只需要将对应的project file信息指定给component就可以了。其余操作与“ANSI
C++(标准C++)逆向工程
”基本雷同。

(一)    将VC++
Project的信息赋给刚刚创建好的component。

a)          选择该component,点击右键,选择Assign
To Project

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

b)         在对话框中找到刚刚创建的component,右键点击并选择Properties。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

c)          在下面对话框中选中需要进行转换的Project,点击ok,该component就与需要转换的project关联上了。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

(二)    将设置好的component转换成模型图

选中设置好的component,点击右键,Update
Model…,将会弹出确认对话框,选中需要转换的class,点击finish就可以了。

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图

 

注释

①IBM Rational
Software Architect是一个集成式设计和开发工具,使用户可以用UML模型驱动的开发方式开发出结构清晰的应用程序和服务。

②IBM Rational
Software Modeler是基于UML2.0的可定制的可视化建模和设计工具,遵循它所提供的工作流程,可以使得系统设计师,系统分析师,设计人员等写出更为清晰的文档,更为有效地进行沟通和设计工作。

③UML提供的各种类型的模型描述图

用例图(Use Case
Diagram):描述系统提供的一个功能单元,主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的"角色"(actors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。

序列图(Sequence
Diagram):显示具体用例(或者是用例的一部分)的详细流程。

状态图(Statechart
Diagram):表示某个类所处的不同状态和该类的状态转换信息。

活动图(Activity
Diagram):表示在处理某个活动时,两个或者更多类对象之间的过程控制流。

类图(Class Diagram):表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。

组件图(Component
Diagram):提供系统的物理视图。组件(Component)表示模型代码库、执行库和其它组件的信息。组件是代码的实际模块,组件图主要用户是负责控制代码和编译部署应用程序的人。有些组件是代码库,有些组件是运行组件,如执行文件或动态链接库(DLL)文件。)

部署图(Deployment
View):表示该软件系统如何部署到硬件环境中。

数据模型图(Data Model
Diagram):描述关系数据结构。

参考文献:

申 震杰,
IBM 中国软件开发中心软件工程师 《利用Rational
Rose进行C++代码和数据库结构分析》

上一篇:Python:笔记(1)——基础语法


下一篇:python2.7入门---简介&基础语法