http://blog.163.com/ljm1113@126/blog/static/57984452201191495046622/

博客 
发现
小组
风格
网易轻博客LOFTER

退出

反馈
消息(3) 

<div id="topbar_personalCenterArea" "="" class="nbw-im fr personalCenter" style="float: right; position: relative; zoom: 1; width: 94px; ">  个人中心

使用此风格
 关注
引用
推荐

晒出你的春光美照,免费赢取最新iPad、限量版拍立得、时尚lomo相机!马上抢>>    显示下一条  |   关闭

思想有多远……

天地有多大,思想有多远;眼界有多宽,境界有多高?

  • 首页
  • 日志
  • 相册
  • 音乐
  • 收藏
  • 博友
  • 关于我

日志

思想有多

我属于来料加工类型的人,原创的少,喜欢收集一些自己喜欢或者需要的东西。有同好的朋友可,加我的QQ:102705087 
   加博友     关注他
他的网易微博

最新日志

  • Windows XPSP2(build 2600)
  • Visual Studio 2008 和 Wind
  • "07c93b1fa"指令引用的“0x0
  • VC多线程临界区编程
  • vc6使用InterLockedExchange
  • win32驱动开发中的内存偏移

随机阅读

  • 谁在杀害医生?
  • 最后一句是我的心声
  • 彩虹总在风雨中
  • 哈尔滨杀医血案的沉重警示
  • 生吃好还是熟吃好
  • 忍耐忠诚到最后吧

首页推荐

  • 侦探:我并不是二奶杀手
  • 雷峰塔倒掉惊现神秘地宫
  • 班禅都无法破解的乾隆陵
  • 诸葛亮做皇帝的最大障碍
  • 只有中国才会容忍'恶棍'
  • 13岁少女装处女卖淫(图)
更多>>

Windows API、SDK和CRT的关系
VC界面库BCG的使用资料

rational rose使用资料教程汇总

2011-10-14 21:50:46|  分类: 编程|字号 订阅

用Rational Rose对VC++进行反向工程





首先启动Rational Rose,启动后如下图:

1. 启动以后点开左边的Compoent View,鼠标右键点击Compoent View,在弹出的快捷菜单中选择New->Compoent,如下图:


新建Compoent以后会在Compoent View里显示添加的组件,我们可以将该组件的名字修改为我们想要的名字,我将这个测试用的组件取名为TEST,如下图:

2. 然后在TEST组件上点击鼠标右键,弹出快捷菜单,选择Open Specification…选项,对其具体属性进行设置,如图:

3. 在弹出的Test组件设置窗口中,将Language项设置为ANSI C++,如下图:


点击设置窗口的Apply按钮,然后点击OK

4. 设置好以后,再用鼠标右键点击TEST组件,这时弹出的快捷菜单会有所改变,多了ANSI C++选项,选择ANSI C++ -> Open ANSI C++ Specification…选项,如下图:

5. 选择该选项后,弹出ANSI C++ Specification设置窗口,将Source file root directory设置为我们需要进行类图转换的VC工程的目录。我使用D盘下的Preview工程,所以设置为该目录,如下图:

6. 然后我们点击Add Files按钮,添加我们需要进行转换的源文件。这些源文件既包括类的*.cpp实现文件也要包括相应的*.h头文件,如下图:

7.添加完工程文件后,可以再Project files列表中看到添加的头文件和实现文件。我们点击确定按钮,关闭该设置窗口。右键点击TEST组件,选择ANSI C++->Reverse Engineer…选项,如下图:
8. 在弹出的Reverse Engineer设置窗口中选择需要转换的类或踢出不需要转换的类,结构体,如下图:
9. 选好要转换的类后,点击OK按钮便开始进行转换,转换成功后会提示转换工程完成:
               
10.在转换工程成功后,再次右键点击TEST组件,选择Open Specification…选项菜单,弹出TEST组件设置窗口,将Language改为VC++,点击Apply和OK按钮,如下图:
11.   再用鼠标右键点击TEST组件,弹出快捷菜单将有所变化,选择Assign To Project....菜单项,如下图:
    
12.     弹出Compoent Assignment Tool对话框,右键点击左边列表VC++下的TEST项目,弹出快捷菜单,选择                  Properties选项,如图:
              
13.选择Properties后,弹出对话框,要对Workspace File进行设置:
              
              14.在选择VC工程文件的对话框中选择Exsting标签,然后找到需要转换的VC的工作区文件,然后点击打开
              
              15.设置了VC工作区文件后,VC工程文件会自动找到,如果出现问题说明要安装VC:
16.工作区和工程文件设置完成后,点击OK,关闭各个对话框。然后再次右键点击TEST组件,在弹出的快捷菜单中选择Update Model…菜单项目,如图:
              
              17.在弹出的Model Update Tool对话框中直接点击Finish按钮:
              
              18.在Model Updata的过程中,可能会因为找到代码及头文件不完整的类、结果、枚举类型,这些类型由于我们在加入工程的*.cpp和*.h时候不完整,不能对这些类型进行完整Model Updata,这个时候会弹出对话框。我们可以把其剔除掉,如下图:
              
              19.将其剔除后Model Updata过程继续,完成后将在右边产生类,结构的UML图:
            
rational rose2003中反向vc++工程
如果我们已经做好了一个vc++工程。我们可以通过rational rose的逆向工程自动从工程提取类图。
1,打开rational rose 2003,新建一个默认的mdl文件。
2,打开add_ins->add_ins manager 菜单,打开了 add_ins manager 窗口,确保 vc++前面的复选框被选中。
3,打开菜单 tools->visual c++->update model from code  打开向导。
4,点下一步,进入组件选择界面。
5,选择VC++前面的复选框,点击 Add Component 选择你的vc++工程的dsw文件。
6,然后点下一步。
7,点完成,等待一会儿。类图就被自动加进来了。被自动添加到:logical view / vc++ reverse engineered  /  工程名。
8,默认情况下我们在类图上,只能看到类名,看不到类的属性和方法。所以要选择一个类,点右键,在弹出的菜单上选择options->show all attributes ,然后选择 options->show all operations。然后就可以看到类的方法和属性了。
Rational Rose进行C++代码的逆向工程介绍

Rational Rose是利用UML(统一建模语言)进行分析和设计面向对象软件系统的强大的可视化工具,可以进行项目需求分析、结构规划和生成框架代码,还可以支持从现有系统逆向转出工程代码,生成Rose模型的功能。

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,进入下一步。

c) 填写数据库相关信息

d) 选中所有需要转换的schema

e) 选择需要将哪些数据库中的元素导入到数据模型中

转换操作会自动在组件图(Component View)中添加数据库组件,并在逻辑图(Logical View)中生成以《Schema》作为命名开头的数据模型。

打开数据模型,可以看到从数据库中转换过来的各个表和视图。

从数据模型图中可以看到表的结构以及各个表和视图之间的逻辑关系。





四.如何得到逆向工程的模型图
在Rational Rose中,有些模型图是不会自动生成的,很多时候这个工作需要用户手工来完成。也就是说,Rational Rose只负责生成模型,包括模型中的元素、元素的属性以及各个元素之间的关系,但是需要用户做一些额外的工作来得到视图。
首先,通过逆向工程,用户已经得到了UML模型或者数据模型的各个组件以及它们之间的关系。 下一步需要在该模型上创建一个视图,它们可以是类图(class diagram,描述系统的静态结构)或者数据模型图(Data model digram,描述关系数据结构)。然后,手动从左边的explorer中将各个元素拖进视图中,在这个过程中,各个元素之间的关联关系会自动在图中表示出来,而不需要用户再做其他工作。
例如:生成一个数据模型的数据模型图的过程
从左边将数据模型中的数据元素拖到右边的数据模型图中,表CustomerCustomerDemo和表CustomerDemographics之间的依赖关系的菱形箭头是自动生成的,无需手工操作。

一般来说,一个系统中所涉及的数据元素非常多,导致视图很拥挤,排版也非常困难。Rational Rose提供的自动排版功能可以很方便地帮助用户解决这个问题。
选择Format->Layout Diagram,系统会将图中的所有元素用最优方式重新排列,给用户一个清晰的视图。


点击查看大图

[img]http://www.ibm.com/i/c.gif[/img]
[img]http://www.ibm.com/i/c.gif[/img]
[img]http://www.ibm.com/i/v14/icons/u_bold.gif[/img]
回页首
五.总结
了解了Rational Rose的逆向工程功能,用户就可以方便地利用这一工具进行大型数据库相关的C++系统的分析和研究了。
[img]http://www.ibm.com/i/v14/rules/blue_rule.gif[/img]
[img]http://www.ibm.com/i/c.gif[/img]
[img]http://www.ibm.com/i/c.gif[/img]
注释 ①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):描述关系数据结构。

分享到:          
阅读(189) |  评论(0) |  引用  (0)  | 举报

Windows API、SDK和CRT的关系
VC界面库BCG的使用资料

相关文章

  • IBM Rational Rose 操作指南(下)
  • Rational Rose 2003 下载、破解及安装方法(图文)[转]
  • 【转】Rational Rose与PowerDesigner:两款建模工具对比分析比较
  • rose 2003 破解
  • 利用Rational Rose进行C++代码和数据库结构分析

最近读者

jack_inc

jeffy200

huangron

评论

jack_incredible

 
网易微博

公司简介  -  联系方法  -  招聘信息  -  客户服务  -  隐私政策  -  博客风格  -  手机博客  -  VIP博客  -  订阅此博客

网易公司版权所有 ©1997-2012

rational rose使用资料教程汇总相关推荐

  1. Rational Rose 2017使用教程

    转载:http://www.opdown.com/soft/82173.html#comment Rational Rose 2017免费版是目前的最新版本,一款专业的可视化建模软件,主要用于可视化建 ...

  2. Rational Rose简明实用教程

    UML中各种图形概要: 图名 对照 说明 用例图 use case diagram 用例图表明系统做什么,与谁交互.用例是系统提供的功能,参与者是系统与谁交互,参与者可以是人.系统或其他实体.一个系统 ...

  3. 软件无线电技术学习资料大汇总

    现在关注软件无线电的同学越来越多了,为方便大家一起交流学习软件无线技术,小编收集整理关于软件无线电学习资料,方便大家学习.如果您有好的学习资料也欢迎分享. [基础教程] GNURadio中文入门教程V ...

  4. Win8安装Rational Rose教程

    在我自己安装Rose的过程中查找了许多资料,或许是我没有发现一篇完整的教程,所以我就整理一份相对完整能快速安装成功的资料供大家借鉴!省的还的花时间查找资料! 一..文件下载 Rational Rose ...

  5. Win10 Rational Rose 安装教程

    文章目录 前言 一.安装软件 二.跳转至后续章节 前言 很多小伙伴反应说会出现几天后就还是会报错的问题,包括我也出现了该问题,如果你已按照其他教程安装好了文件且验证证书成功,且但几天后依然报错,如果可 ...

  6. RATIONAL ROSE 2007详细安装教程(图文版)

    以下是本人亲自实践的rational rose 2007版本的安装教程,来自网络及个人实践: 第一步:下载文件 下载Rational Rose v7及所需破解文件的链接下面有: 链接一: ed2k:/ ...

  7. rational rose 2007详细安装教程(图文版-本人亲试)

    文章出处:http://wangjstu.diandian.com/post/2013-05-23/40051720488 http://blog.csdn.net/god9me/article/de ...

  8. Rational Rose安装及破解教程

    1.下载地址:http://pan.baidu.com/s/1mhKGfHY 2.安装: 解压缩文件 "[Rational.Rose.Enterprise.Edition.2003].Sof ...

  9. 黑马pink老师前端从入门到精通教程汇总(附源码+配套资料)

    本篇内容主要是PINK老师教程汇总(主要内容如下) 1.web端布局:先讲解HTML5常用标签,接着讲解CSS3常见样式增加的H5C3新特性,新语法,最后讲解PC端品优购项目.以及CSS3动画 2d ...

最新文章

  1. LeetCode-剑指 Offer 52. 两个链表的第一个公共节点
  2. 设计优秀API的五大规则
  3. MatConvnet工具箱文档翻译理解(4)
  4. 百度地图手机和电脑不一致_如何解决电脑显色和印刷色不一致的问题
  5. 4.day11_包和权限修饰符-1
  6. 根据时间变换页面背景
  7. WWDC 2013 Session笔记 - Xcode5和ObjC新特性
  8. webapi 找到了与请求匹配的多个操作(ajax报500,4的错误)
  9. RETSful 的真正含义
  10. MySQL查询select语句详解
  11. seo全攻略_SaaS 企业推广获客全攻略(2):如何做好企业官网?
  12. docker学习-运行第一个docker镜像hello world
  13. Spring 学习记录6 BeanFactory(2)
  14. 支付宝报错 未设置签名参数
  15. acc之ADTS解说一
  16. 【sdx62】XBL设置共享内存变量,然后内核层获取变量实现
  17. 0基础学前端开发,CSS盒子模型居中方法
  18. CDN和bootstrap
  19. PCL估计点云的表面法向量
  20. WIN10系统C盘瘦身

热门文章

  1. iphone启用证书_如何在iPhone上启用紧急SOS服务
  2. Linux sftp远程连接
  3. 详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!
  4. Mac 环境下完美获取获取正式版SHA1和发布版SHA1
  5. Windows下100个CMD常用命令(1)
  6. 穿墙透视算法|MIT华人Team通过墙壁和遮挡物的超强动作检测模型
  7. Python Unicode和string
  8. Arduino 与 土壤湿度传感器 测量土壤湿度自动浇水提醒
  9. LRN (Local Response Normalization,即局部响应归一化层)
  10. 图像金字塔和高斯金字塔