Rational Rose逆向工程介绍

【逆向工程】C/C++的反汇编表示详解(1)函数调用,栈平衡,变量与参数的内存布局 很多人学完汇编,去看C/C++的反汇编就会很懵,发现单独看一条指令看的明明白白,但连在多条指令连在一起就不知道有什么作用了,如 push ebp mov ebp,esp sub esp,40h lea edi,[ebp-40h] mov ecx,10h mov eax,0CCCCCCCCh rep stos dword ptr [edi] 这里用VC6.0是最好的,更能看出本质,VS系列也可以,VS的话 阅读详情

逆向工程(Reverse Engineer)就是从现有系统的代码来生成模型的功能。分析已有的代码其主要的目的就是了解代码结构和数据结构,这些对应到模型图就是类图、数据模型图和组件图(对UML各种模型图的描述见注释③),也就是通过Rational Rose的逆向工程所得到的结果。Rational Rose所支持的逆向工程功能很强大,包括的编程语言有C++, VB, VC, Java, CORBA,以及数据库DDL脚本等等,并且可以直接连接DB2, SQLServer, Oracle和Sybase等数据库导入Schema并生成数据模型。

很多大型的C++开发的产品都涉及到数据库的使用,对这种大型系统的开发,尤其是做二次开发的情况下,主要的难点就是对源码和数据库结构的分析。而利用Rose的逆向工程这一功能,就可以完成代码'类图以及数据库Schema->数据模型图的转换,解决这两大难点,可以使开发和设计人员在对这种大型系统的升级、分析和开发中,更为方便、快捷、有条理地掌握系统结构,不用再为分析庞大的系统结构而头疼。

和 "利用Rational Rose进行C++代码和数据库结构分析" 有关的 c#、asp.net、c++ 编程小帖士:

strong>CDate(expression)
转换表达式为Date 型态。


 

 

二.如何用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,系统会将图中的所有元素用最优方式重新排列,给用户一个清晰的视图。






点击查看大图




 

 

五.总结

了解了Rational Rose的逆向工程功能,用户就可以方便地利用这一工具进行大型数据库相关的C++系统的分析和研究了。

注释

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

 

利用RationalRose进行C++代码和数据库结构分析 本文内容包括: 一.RationalRose逆向工程介绍 二.如何用RationalRose进行C++代码分析 三.如何用RationalRose进行数据库结构分析 四.如何得到逆向工程的模型图 五.总结 注释 RationalRose是利用UML(统一建模语言)进行分析和设计面向对象软件系统的强大的可视化工具,可以进行项目需求分析、结构规划和生成框架代码,还可以支持从现有系统逆向转出工程代码,生成Rose模型的功能。2004年10月,IBM推出了支持最新的UML2.0的可视化建模工具RationalSoftwareArchitect(见注释①)和IBMRationalSoftwareMode 立即下载

相关推荐

ESP32 CAM使用教程(入门级)

串口被占用,可以关闭其他使用到串口的界面;先将手机也连上wifi,然后使用手机浏览器打开这个IP地址,注意手机连接的wifi需要和开发板的wifi一致,也就是程序里自己修改的那个wifi,否则无法打开IP地址;将开发板连接到电脑,点击点击工具→端口,然后选择自己实际接的COM口,不清楚COM口的可以打开电脑设备管理器查看一下,插拔设备看看哪个COM口会刷新就是哪个COM口;安装好esp32库之后,点击工具→开发板→esp32→AI Thinker ESP32-CAM,型号要仔细找找,不要选错了;

qq_34426854的博客 2万+

利用Rational Rose进行C++代码和数据库结构分析

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

知识在于积累 2490

windows系统下,如何为comfyui如何安装triton

​ 有些加速插件、模型在安装的时候,比如说sageattention的安装,就需要提前安装triton这个包,不过这个包有点特殊,windows下略微不好装,经常会装失败。 🎠如何安装 之前也有人介绍过,要到github上找个wheel文件,找到对应的版本安装下就好了。 问题是:https://github.com/woct0rdho/triton-windows/releases 这个git地址上,已经找不到wheel文件了... ​

聚梦小课堂 4499

Rose中的逆向工程

1.配置完java路径环境变量后(一般安装rose时会自动配置好),逆向工程时,可以先创建logical view中的class diagram(不创建先也可以)->Tools->java/j2ee->reverse engineer 如图: 2.选择Edit CLASSPATH,选择路径可以new delete路径,点击路径,选择Filte->add 也可以ad...

自由理想的足迹 816

虚拟机器人平台CoppeliaSim(Vrep)的逆运动学教学

相信看这篇博客的人都知道CoppeliaSim是做什么的,因此这里不多赘述。CoppeliaSim从最早的Vrep到现在已经更新了N个版本,从过去Vrep3.x开始使用的我这里小小地吐槽一下这个软件。CoppeliaSim每一个版本都有更新,问题是这些更新有时候不能向前兼容,而且时不时更新地让人不知所措(对于有紧急任务的时候真的很火大啊)。 以本文所展示地逆运动学来说,CoppeliaSim在4.0.0之后又大变,推翻了过往所有的拖动模块链接之类的构建方式,转而采用直接通过代码来实现逆运动学。 简单版逆运动

qq_39243015的博客 6699

Jetpack Compose Navigation实战:从基础到高级导航模式

本文全面解析Jetpack Compose Navigation在Android开发中的应用,从基础导航实现到高级模式(如单任务/单顶模式),涵盖参数传递、嵌套导航、深层链接等核心功能。通过实战代码示例展示如何优化导航性能,并与ViewModel、Hilt等架构组件整合,为开发者提供高效的Compose导航解决方案。

pz890123456的博客 373

Rational Rose简明实用教程

Rose模型(包括所有框图、对象和其他模型元素)都保存在一个扩展名为.mdl的文件中。 1.环境简介 1.1 Rational Rose可视化环境组成 Rose界面的五大部分是浏览器、文档工具、工具栏、框图窗口和日志。 1、浏览器:用于在模型中迅速漫游。 2、文档工具:用于查看或更新模型元素的文档。 3、工具栏:用于迅速访问常用命令。 4、框图窗口:用于显示和

君子不器 12万+

Python爬虫实战:深度解析B站弹幕异步采集技术与数据可视化

title=f"弹幕词云 Top 100 (BV: {bvid})", title_textstyle_opts=opts.TextStyleOpts(font_size=23).add(series_name="弹幕词云", data_pair=list(top_100_words.items()), word_size_range=[20, 100]).add_xaxis([f"{i}-{i+1}分" for i in range(len(time_distribution))])

2201_76125261的博客 640

利用Rational Rose进行C++代码的逆向工程介绍

利用Rational Rose进行C++代码的逆向工程介绍 Rational Rose是利用UML(统一建模语言)进行分析和设计面向对象软件系统的强大的可视化工具,可以进行项目需求分析、结构规划和生成框架代码,还可以支持从现有系统逆向转出工程代码,生成Rose模型的功能。 2004年10月,IBM推出了支持最新的UML2.0的可视化建模工具 Rational Sof

青青的专栏--C/C++ OOA/D Design Pattern 1492

LIS2DH三轴加速度传感器原理图设计,已量产(加速度传感器)

最近在做一款可穿戴设备原型时,选了 LIS2DH 这款加速度计 —— 比起之前常用的 ADXL345,它在低功耗和稳定性上的优化刚好戳中了可穿戴设备 “续航 + 可靠” 的核心需求。下面结合这次画的原理图,聊聊这个小模块的硬件设计细节。

不脱发的程序猿 389

解锁机器人逆运动学算法:从理论到实战

机器人逆运动学,简单来说,就是已知机器人末端执行器(如机械臂的手部、工具等)期望达到的位置和姿态,求解机器人各个关节需要达到的角度或位移的过程。在机器人的实际应用场景中,逆运动学起着不可或缺的作用。以工业制造中的焊接机器人为例,为了完成复杂的焊接任务,焊接头(末端执行器)需要精准地到达工件上的各个焊接点,并保持合适的姿态以确保焊接质量。这时,逆运动学算法就根据焊接点的三维坐标以及焊接头应有的姿态(如角度等),计算出机械臂各个关节的转动角度,从而控制机械臂带动焊接头准确地运动到目标位置。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2052

Rose逆向工程(java)生成类图[转]

拿到了项目框架工程代码却没有uml图,那么方法之间的调用关系功能流转就不容易看出来,那么如何产生类图呢,记忆里方法有下:1.rose逆向工程,2.togetherrose有了,together前天才卸掉,那么就用ROSE,摸索后得出以下步骤,知道的就不用看了,很粗糙的:)1.新建一个ROSE工程,选择J2EE模板,2.如图 3.在出现的界面中,CLASSPATH中加入源代码

光头的专栏 3794

【ComfyUI】QwenImageEdit OOTD角色与姿态匹配换装

本文介绍了一个基于Qwen Edit OOTD 2.0的ComfyUI工作流,能够实现角色与姿态匹配的智能穿搭生成。该工作流通过整合模型推理、姿态识别、图像拼接和渲染等节点,完成从角色图、姿态图到成品穿搭图的完整生成流程。核心采用Qwen Image系列模型进行图像理解和编辑,配合ControlNet进行姿态引导。用户只需提供角色图和姿态参考图,系统即可自动完成姿态解析、语义编码、采样生成等步骤,输出与输入姿态一致的穿搭图像。该方案适用于虚拟角色展示、电商试穿等场景,能保持角色特征一致的同时灵活变换姿态,显

Mr数据杨 1587

利用rational rose做c++的逆向工程之备忘

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

followshake的专栏 3002

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

用Rational Rose逆向工程(java)生成类图

 http://hi.baidu.com/suofang/blog/item/b4190de9846ea53eb80e2d1e.html 拿到了项目框架工程代码却没有uml图,那么方法之间的调用关系功能流转就不容易看出来,那么如何产生类图呢?1.新建一个ROSE工程,选择J2EE模板,2.如图 3.在出现的界面中,CLASSPATH中加入源代码的目录,加入支持的包,点

gris的专栏 6206

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

网上的关于从C++代码到UML类图生成过程的东西不少,找了个能用的,现在转下,以备不时之需。 转来稍微调整了下内容,只关心使用。 原出处http://siulyn.blog.163.com/blog/static/6245583620087252539344 Rational Rose 2003 逆向工程生成UML模型图 这一节主要介绍用户如何使用Ros

cs5512的专栏 1165

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

此文为转载的文章,文章出处地址如下:http://siulyn.blog.163.com/blog/static/6245583620087252539344/目录1.安装&破解Rational Rose 20031.1 安装Rose 20031.2 破解Rose 20032. Rational Rose 2003 逆向工程生成UML模型图2.1 ANSI C++(标准C++)逆向工程(Reverse Engineer)2.2 Visual C++逆向工程(Reverse Engineer) 1.安装&破解

李金的专栏 2116

Rational Rose画类的UML图

正向工程 1.打开Rational Rose后在弹出的窗口选择J2EE,或者在左上角新建工程即可。 2.如图: 选择左边导航栏第5个:左键单击,再单击右边空白。 3.

谢谢๑‾᷅^‾᷅๑的博客 4562

用Rational Rose逆向工程(java)生成类图[ (转载)

拿到了项目框架工程代码却没有uml图,那么方法之间的调用关系功能流转就不容易看出来,那么如何产生类图呢,记忆里方法有下:1.rose逆向工程,2.together rose有了,together前天才卸掉,那么就用ROSE,摸索后得出以下步骤,知道的就不用看了,很粗糙的:) 1.新建一个ROSE工程,选择J2EE模板, 2.如图   3.在出现的界面中,CLASSPATH中加...

一条鱼 + 一条鱼 377

实验一 Rational Rose基本操作--UML建模技术

给个关注,持续更新哦!!!!!!!!!!!!!!! 一、实验目的 (1)掌握使用Rational Rose建立Rose模型 (2)熟悉并掌握使用正逆向工程 二、实验内容 使用Rational Rose生产代码的功能将下面的代码转换成逻辑视图(Logical View)中的类图,再将此类图生成对应的代码。 三、实验步骤 1.使用Rational Rose生产代码的功能将下面的代码转...

qq_45593650的博客 2941

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 的破解包 rose2003c

Neo的专栏 1324

Rational Rose 生成java代码

一,正向工程     1、设置默认语言为Java,Tools->Options->Notation->default:选择Java。         2、设置环境变量ClassPath,Tools->Java/j2ee->Project   Specification->ClassPath:具体路径设置为正向工程生成java文件要保存的目录,一般为项目的src目...

jsx112的专栏 3456

rational rose 逆向工程

这一节主要介绍用户如何使用Rose的逆向工程生成UML模型,并用来进行C++代码的结构分析。 Rational Rose可以支持标准C++和Visual C++的模型到代码的转换以及逆向工程。下面将详细地说明这两种C++ project的逆向工程的步骤和具体操作。 2.1 ANSI C++(标准C++)逆向工程(Reverse Engineer) 使用标准C++逆向工程,需要在组件图(com...

weixin_30445169的博客 350
上一篇: 使用 ajax 解决浏览器缓存功能
下一篇: 阻塞队列(BlockingQueue)
phothinks
博客等级 码龄16年 8粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值