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

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

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 

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++ 代码和数据库结构分析》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值