主要介绍用户如何使用Rose的逆向工程生成UML模型,并用来进行C++代码的结构分析。

Rational Rose可以支持标准C++Visual C++的模型到代码的转换以及逆向工程。下面将详细地说明这两种C++ project的逆向工程的步骤和具体操作。

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

使用标准C++逆向工程,需要在组件图(component view)中创建一个组件(component),设置好需要进行转换的组件的信息,也就是该组件的语言、所包含的文件、文件所在的路径、文件后缀等等信息,然后Reverse Engineer就可以根据给定的信息将代码转换成类图了。

(一)    右键点击组件视图(Component View),选择New->Component,创建一个新的组件

   ()    componentlanguage属性设定为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 >> 添加。

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

  ()    排列视图

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

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

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

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

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

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

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

注释

①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):描述关系数据结构。

Rational Rose 2003 逆向工程转换C++源代码成UML类图的更多相关文章

  1. 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. Ra ...

  2. 用MyEclipse将java文件转换成UML类图

    用MyEclipse将java文件转换成UML类图 参考: 用MyEclipse将java文件转换成UML类图 - 君临天下的博客 - CSDN博客  http://blog.csdn.net/dan ...

  3. Myeclipse中把java代码导成UML类图

    Myeclipse中把java代码导成UML类图 1.右键点击项目名称,选择New-------àUML2 Model 2.给类图命名 3.导成类图 1)如果要把整个项目导成类图,则把整个项目拖到类图 ...

  4. 从 Java 代码逆向工程生成 UML 类图和序列图

    from:http://blog.itpub.net/14780914/viewspace-588975/ 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Sof ...

  5. rational rose 2003完整汉化版 win7版

    下载链接:https://pan.baidu.com/s/1InpgNS_1-Rigw4fE3OX1Eg 软件介绍 Rational Rose 2003破解版是一款基于UML的可视化建模工具.可用于软 ...

  6. Rational Rose 2007 &Rational Rose 2003 下载及破解方法和汉化文件下载

    这么好的东西,不拿来出分享,我对不起原作者呀.可是我这里不知道作者是谁,感谢在先了. ed2k://|file|%5BIBM%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97%5 ...

  7. rational rose 2003安装及破解

    rational rose作为面向对象的统一建模语言的可视化建模工具,包括了统一建模语言(UML),OOSE,以及OMT,可用于可视化建模和公司级水平软件应用的组件构造:此次小编将讲解如何安装及破解r ...

  8. Rational Rose 2003 下载及破解方法

    FROM:http://blog.csdn.net/fenglibing/archive/2007/08/17/1747693.aspx 这么好的东西,不拿来出分享,我对不起原作者呀.但是我这里不知道 ...

  9. Rational Rose 2003 下载、破解及安装方法(图文)

    方法一: 1. 安装Rational Rose2003时,在需选择安装项的时候,只选择Rational Rose EnterPrise Edition即可,不需选择其他项,之后选择“DeskTop I ...

随机推荐

  1. 用宏判断程序当前的运行模式(debug or release)

    例子 #if defined (DEBUG) && DEBUG == 1 // 如果当前处于debug 模式 //to do #else //to do #endif 

  2. 如何让access空值变成0?(确切的说是让access Null值变成0)

    方法一 if  IsNull(Me.新_退休费) = True Then Me.新_退休费 = 0 方法二 if Nz(Me.原_退休费) = Me.原_退休费 Then Me.原_退休费 = 0 有 ...

  3. Oracle rac架构和原理

        Oracle RAC Oracle Real Application Cluster (RAC,实时应用集群)用来在集群环境下实现多机共享数据库,以保证应用的高可用性:同时可以自动实现并行处理 ...

  4. c3p0、dbcp、proxool、BoneCP比较

    1.1 测试环境: 操作系统:windows xp sp3 数据库:mysql 5.1 1.2 测试条件: initialSize=30; maxSize=200; minSize=30; 其余参数为 ...

  5. 关于OpenLDAPAdmin管理页面提示“This base cannot be created with PLA“问题. Strong Authentication Required问题

    经过查询,最终总结和处理如下: 1.首先需要在/etc/openldap/目录下,创建一个base.ldif文件,如下所示: 2.在base.ldif文件中,写入如下信息,为创建初始化根节点做准备工作 ...

  6. Oracle中索引的使用 索引性能优化调整

    索引是由Oracle维护的可选结构,为数据提供快速的访问.准确地判断在什么地方需要使用索引是困难的,使用索引有利于调节检索速度. 当建立一个索引时,必须指定用于跟踪的表名以及一个或多个表列.一旦建立了 ...

  7. C#中的托管与非托管

    在.net 编程环境中,系统的资源分为托管资源和非托管资源. 字面理解托管,就是托付个别人管理,要的是结果,具体怎么完成的我并不关心,就像某些'牛逼'的老板“我只要结果”那样. 在.NET FRAME ...

  8. @JVM中对象的引用类型

    JVM中有四种引用类型:强引用.软引用.弱引用.虚引用   强引用(Stong Reference):是指在程序代码中普遍存在的,类似:Object obj = new Object()这类的引用,只 ...

  9. mybatis映射文件遇到的小问题

    mybatis的映射文件插入操作时: 如果对应的属性是String类型的,那么一定要做空串的判断. 比如注册的时候,如果需要向数据库中插入一条记录时,对应的字段没有给他赋值,这个String类型的值传 ...

  10. 微博与Redis系统技术文章记录

    Redis 持久化,有两种: rdb 和 aof, rdb是记录一段时间内的操作,一盘的配置是一段时间内操作超过多少次就持久化. aof可以实现每次操作都持久化. 这里我们使用aof. 配置方式,打开 ...