Rational Rose C++逆向工程

来源:互联网 发布:叙利亚政府军 知乎 编辑:程序博客网 时间:2024/05/02 23:36

一.Rational Rose逆向工程介绍

逆向工程(Reverse Engineer)就是从现有系统的代码来生成模型的功能。分析已有的代码其主要的目的就是了解代码结构和数据结构,这些对应到模型图就是类图、数据模型图和组件图,也就是通过Rational Rose的逆向工程所得到的结果。

Rational Rose所支持的逆向工程功能很强大,包括的编程语言有C++, VB, VC, Java, CORBA,以及数据库DDL脚本等等,并且可以直接连接DB2, SQLServer,Oracle和Sybase等数据库导入Schema并生成数据模型。

二.如何用Rational Rose进行C++代码分析

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 rootdirectory设定为你的C++源码文件所在的路径,并且将需要转换的文件添加到Project Files中,视你的需要来做其它的设定,比如:头文件扩展名等等。
这里写图片描述
d) 将设置好的component转换成模型图

①选中设置好的component,点击右键,选中ANSI C++->Reverse Engineer
这里写图片描述
②选中需要转换的class,点击ok,一个component的逆向转换就完成了。
这里写图片描述

四.如何得到逆向工程的模型图

在Rational Rose中,有些模型图是不会自动生成的,很多时候这个工作需要用户手工来完成。也就是说,Rational
Rose只负责生成模型,包括模型中的元素、元素的属性以及各个元素之间的关系,但是需要用户做一些额外的工作来得到视图。

首先,通过逆向工程,用户已经得到了UML模型或者数据模型的各个组件以及它们之间的关系。 下一步需要在该模型上创建一个视图,它们可以是类图(class diagram,描述系统的静态结构)或者数据模型图(Data
modeldigram,描述关系数据结构)。然后,手动从左边的explorer中将各个元素拖进视图中,在这个过程中,各个元素之间的关联关系会自动在图中表示出来,而不需要用户再做其他工作。

例如:生成一个数据模型的数据模型图的过程

从左边将数据模型中的数据元素拖到右边的数据模型图中,表CustomerCustomerDemo和表CustomerDemographics之间的依赖关系的菱形箭头是自动生成的,无需手工操作。
这里写图片描述

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

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

0 0
原创粉丝点击