enterprise architect (EA) 源码生成UML类图,帮助理解项目工程
用VS看大型工程代码,尤其是很多层类的,很容易头晕,即便是装了visual assist 插件。用VS生成类图吧,只能生成一堆框,只有一些小的类关系有箭头表示。远远不能满足要求。下面介绍建模工具EA来生成类图。
1、新建类图(例如ClassModel),没用的图表删除,ctrl+s保存。
2、选中类图(ClassModel),shift+ctrl+u打开对话框,选好根目录,一般是该模块或项目源码所在位置,一般按图中设好选项,确定即可。

3、会看到递归遍历源码,其间会有错误产生,根据提示找到源码位置,一般是有个宏在该位置,EA是不会自动识别宏的,需要我们给他设好,在菜单-〉设置里有个“宏定义”,点击新增,输入宏的名字。把所有导致错误的宏输入好,新建工程和类图,然后按上面重来,会看到错误消失了。(注意要在新工程类图里搞,因为在老的里边搞会丢失一些箭头,即类和类之间的关系,因为EA默认是对已经导入过的类不再重新检查,即便是曾经出过错误的类)

4、到最后出来一张类图,类似蜘蛛网,觉得乱可以保存一份备份,然后把没用的结构体 enum 等图表删掉,小的类图表也可以删掉。注意,在图表视图和项目浏览器是没有关联的,在图表视图里删掉后,项目浏览器里还有,不影响观看,建议保留,以后想看再拖出来放到图表视图里,箭头也会自动连接。
5、EA中选中类的图表,然后按F12,即可定位代码,不习惯的话可以在VS中查看,使用visual assist的ctrl+alt+s查找符号(类、结构体、宏等)和ctrl+alt+o查找文件名。使用alt+g来跟踪符号。
6、结合VS中其它的一些快捷键,帮助理解项目代码。
7、EA无法对单例的调用生成箭头(如:CXXX::GetInstance()->DoSomething();)
enterprise architect (EA) 源码生成UML类图,帮助理解项目工程的更多相关文章
- 用Enterprise Architect从源码自动生成类图
http://blog.csdn.net/zhouyong0/article/details/8281192 /*references:感谢资源分享者.info:简单记录如何通过工具从源码生成类图,便 ...
- 从 Java 代码逆向工程生成 UML 类图和序列图
from:http://blog.itpub.net/14780914/viewspace-588975/ 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Sof ...
- IDEA怎么生成UML类图
说之前先说一下Diagram这个单词,意思是图表; 示意图; 图解; [数] 线图的意思. 打开设置 File->Setting或windows下按Ctrl+Alt+S 在搜索框中输入Diagr ...
- 使用VS2013逆向生成UML类图
引自http://blog.csdn.net/funnyfu0101/article/details/7705173 首先.打开工程,[体系结构]->[新建关系图] 生成一个类图 然后[体系结构 ...
- 使用EA将源码转化为类图
EA简介: EA 全名 Enterprise Architect,是一款著名的 UML 建模软件.在软件架构设计与逆向工程中具有重要作用.软件十分小巧(< 60MB ),并且有汉化破解版.推荐大 ...
- spring 源码之IOC 类图
Spring IoC容器是spring框架的核心和基础,IoC容器负责spring Bean的生命周期,是spring框架实现其他扩展功能的基础.容器的继承结构比较复杂,这里画出了spring IoC ...
- Python - 反向生成UML类图
法一. pyreverse https://www.logilab.org/blogentry/6883 pip install pylint(集成在里面了) cd pack pyreverse -o ...
- PHUML 生成UML类图操作流程
项目基础阶段: 安装svn,因为托管在svn平台上: 项目下载到本地,并切换到对应目录(如:F:\wwwroot\phuml.git\trunk\src\app): svn checkout http ...
- ABP源码uml类图
陆陆续续学习ABP框架有一段时间了,阳光铭睿的入门教程和HK Zhang的源码分析文章对我的学习帮助都很大.之所以会花这么大工夫去学习ABP.看ABP的源代码,一是因为本人对于DDD也非常有兴趣,AB ...
随机推荐
- JavaScript 运行机制 & EventLoop
JavaScript 运行机制 & EventLoop 看阮老师博客和自己的理解,记录的学习笔记,js的单线程和 事件EventLoop 机制. 1. JavaScript是单线程 JavaS ...
- BZOJ 5020 [THUWC2017]Drown in the math ocean (LCT+求导)
题目大意: 太长了略 洛谷题面传送门 嗯,数学题 感觉考试要是出这种题我就死翘翘了[逃 不用想都知道要$LCT$维护断边连边,但询问该如何处理呢 利用题目给出的公式 $f(x)=\sum_{i=0}^ ...
- ES6特性:(阮一峰老师)学习总结
ES6(阮一峰)学习总结 1.块级作用域的引入 在ES6之前,js只有全局作用域和函数作用域,ES6中let关键字为其引入了块级作用域. { var a = 5; let b = 6; } con ...
- JS中Math函数基础
Math 是数学函数,但又属于对象数据类型 typeof Math => ‘object’
- ASP.NET-RedirectToAction只能使用get方法
两个同名Action共同使用return View() return RedirectToAction("test", new { ls = list.Fct_OrderList ...
- maven常用插件功能
maven-dependency-plugin http://maven.apache.org/plugins/maven-dependency-plugin/ maven-dependency-pl ...
- POJ 2773
不经意看见dis后的“mod”一词后,瞬间有了思路,点进去看,却发现别人想的和我的不一样——! 我是这样想的,利用的是剩余系+欧几里德带余除法的性质. 若两者GCD=1,则必有除数和余数GCD=1.于 ...
- ZOJ 3688
做出这题,小有成就感 本来已打算要用那个禁位的排列公式,可是,问题在于,每个阶乘前的系数r的求法是一个难点. 随便翻了翻那本美国教材<组合数学>,在容斥原理一章的习题里竟有一道类似,虽然并 ...
- iOS开发之十万个为什么<1>
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助.欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...
- android sudio 执行的中文是乱码解决方式
1.File-->Setings-->查找file encodings 例如以下图 2.将 IDE Encoding .Project Encoding.Default encoding ...