C++代码到UML图逆向解析

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

原文链接:http://hi.baidu.com/hcq11/blog/item/549858249a2d7420d40742ab.html



这一节主要介绍用户如何使用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,创建一个新的组件

 
 

(二)    componentlanguage属性设定为ANSI C++

a)          选中创建的component,点击右键,选中Open Specification

  

b)         在这个对话框中将该componentlanguage设定为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 EngineeredReverse 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 >> 添加。



Enterprise Architect 12实战:如何将已有C++源码快速换为UML 本文详细介绍了如何使用Enterprise Architect 12将已有C++源码快速换为UML,提升代码可读性和团队协作效率。内容包括环境准备、源代码导入、类生成与优化、高级关系调整以及文档生成等实用技巧,帮助开发者高效理解和重构复杂代码库。 阅读详情

相关推荐

StarUML实战:利用C++逆向工程高效构建UML

本文详细介绍了如何使用StarUML进行C++逆向工程,高效构建UML。通过安装C++插件、掌握逆向工程方法和样式定制技巧,开发者可以快速可视化复杂代码结构,提升项目理解和团队协作效率。特别适合处理大型C++项目中的继承体系和类间依赖关系。

weixin_27070451的博客 359

免费建模工具BOUML7.9版本C++逆向UML工具

BOUML可以用于C++、Java、Python等语言程序设计开发建模及生成代码。其中版本5,6收费,最新版本7免费。

代码到蓝:用Enterprise Architect实现UML逆向工程

本文详细介绍了如何使用Enterprise Architect进行UML逆向工程,将复杂代码自动换为可视化UML和时序。通过实战案例展示了EA在处理多语言项目、大型系统时的技巧,包括环境配置、代码导入策略和模型优化方法,帮助开发者快速理解遗留系统架构,提升团队协作效率。

weixin_28318011的博客 804

cpp2uml c++换成UML

扫描c++文件,分析成UML 的一个eclipse 插件,直接放在plugins目录下即可

C++ 代码自动生成uml

c++ uml生成

Anurmy的博客 5163

C++代码自动生成UML工具

sudo apt-get install umbrello

啊渊的专栏 4145

【免费下载】 高效的C++代码UML表生成器 - clang-uml

`clang-uml` 是一个基于Clang的C++源码到UML、序列、包和包含的自动化生成工具,其核心理念是帮助开发者轻松维护代码库中的最新表或者为遗留代码创建文档。通过YAML配置文件定义,它能够生成PlantUML、MermaidJS以及JSON格式的表。 `clang-uml` 目前支持C++17,并部分兼容C++20。 详细的文档可以在[这里](https://clan...

gitblog_00020的博客 2033

StarUML笔记之从C++代码生成UML

代码】StarUML笔记之从C++代码生成UML

小勇博客 4633

开源C++代码UML表工具cpp2dia实战详解

示例:调用ctags生成符号表该工具特别适用于遗产系统重构、跨团队知识传递等场景,支持自动化集成至CI/CD流程,显著降低大型项目认知负荷。Tcl 的变量系统完全动态,变量在首次赋值时自动创建,无需预先声明类型或作用域。这种机制非常适合处理不确定数量和结构的数据集,比如从多个头文件中提取的类声明集合。考虑如下场景:我们需要收集每一个类的成员函数及其访问级别(public/private/protected)。可采用嵌套数组结构组织数据:# 示例调用在此例中:初始化一个名为。

weixin_42605397的博客 796

#UML# Astah+Doxygen 将C++源码映射为类

工具准备 Astah Astah plug-in Doxygen 插件安装 下载好的插件cplusreverse-1.1.0.jar 拷贝到/Application/Astah/plugin中然后重启Astah,或者参考官方文档 http://astah.net/features/cpp-reverse-plugin C++源码生成xml文件(Doxygen) 使...

潇汀 3万+

UML建模详解(9)—Rose将C++代码自动生成UML详解

一.类(class diagram)即 c++ 中的 class: 聚合(Aggregation)即我们c++中的引用:表现为 class 头文件中的一个或多个指针成员。 组合(Composition)即 c++中的成员对象:表现为class头文件中的一个或多个对象成员。(也可以表现为指针成员,但需要在类中实例化此对象)。 泛化(Generalization)即继承

程序猿老樊的博客 1万+

使用 rose 将 c++代码换为 uml

自prayer的博客:http://www.cppblog.com/prayer/archive/2009/12/24/103954.html 阅读本文章,你需要对 uml 有简单的了解,懂得以下术语: 类( class diagram ) 即 c++ 中的 class 。 聚合( Aggregation ) 即我们c++中的引用。表现为 class 头文件中的一个或多个指针成员。

—— 4378

探索高效建模与代码换:StarUMLC++扩展插件

探索高效建模与代码换:StarUMLC++扩展插件 项目地址:https://gitcode.com/gh_mirrors/st/staruml-cpp 在这个日益复杂和竞争激烈的软件开发世界中,清晰、高效的建模工具至关重要。StarUML是一款强大的统一建模语言UML)工具,它允许开发者创建、设计并管理软件模型。现在,借助于专门为其定制的C++扩展插件,StarUML的功能更上一层楼,实现...

gitblog_00090的博客 728

Rational Rose 2003 逆向工程C++代码UML

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

weixin_30279751的博客 98

UML逆向工程实战:用StarUML解析遗留C++项目的架构奥秘

本文详细介绍了如何使用StarUML进行UML逆向工程,帮助开发者解析遗留C++项目的复杂架构。通过环境配置、代码换、架构诊断和重构规划等实战步骤,展示了如何利用StarUML自动生成UML,识别循环依赖和设计模式,并优化大型项目的性能。文章特别适合需要处理历史代码库的C++开发者。

weixin_27918373的博客 373

别再手动画了!用PlantUML + VSCode插件5分钟搞定C++项目类(附配置流程)

本文详细介绍了如何利用PlantUML和VSCode插件在5分钟内自动生成C++项目类,解决开发者面临的代码复杂度与文档滞后问题。通过配置流程、核心语法精要和实战案例,帮助开发者快速掌握自动化类工具,提升工作效率和代码可维护性。

weixin_33696822的博客 149
上一篇: 类中特殊成员变量的初始化
下一篇: 指针与引用
shexinwei
博客等级 码龄18年 69粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值