python

实施步骤:

或者百度下载中心,下载graphviz


2、pyreverse能方便的生成uml类图,pylint里自带了pyreverse这个工具。使用pip安装pylint
pip install pylint


3、使用,可以参考的命令为,core为存放代码的目录
pyreverse -ASmy -o png -p _002 core/

这样就会在和core同级的目录生成2张png图片。

一张类图,一张包图





参考:

延伸:

1、包图图解:

包图中,实线箭线表示python模块之间的引用关系。

A用实线箭线指向B时,表示A模块中import(导入)了B模块。

python模块可以是一个文件(*.py),也可以是一个包(含有__init__.py的Python包)。

注意:基础模块(os、sys等)不会再包图中显示。

2、类图图解:

类图中,实线空心三角表示继承基类(父类)。

A用实线空心三角指向B时,表示A类继承了B类。(如果改为虚线,则表示继承接口,java中常见)

类图中,实线实菱形表示组合关系,如人体的各个部位,不可分割。(如果改为空菱形,则表示聚合关系,如团队由人员组成,可以分割)

A用实线实菱形指向B时,表示A是属于B的、不可分割的组成部分。此时应在实线上标注出B的什么属性来接收A这个单位,作为B的组成部分。

java

1、
模型开发工具(MDT)提供了一些示范性工具,在元模型的基础上的发展模式。它支持创建UML图,从代码的逆向工程到UML图等等。



2、
ArgoUML是一个领先的开源UML模型工具,它支持UML 1.4的所有标准,可以运行于任何Java平台上。



3、
ModelGoon是一个Java包的依赖分析的Eclipse插件,用来显示项目中Java包与包之间的依赖关系,如下图所示:



4、
Green是Eclipse的一个插件,是一种先进的还简单的UML类图的工具,主要学生开发使用。它是live round-tripping编辑器,因此可以很容易地从一个UML类图生成Java代码。它有很好的可扩展性。



5、
Minjava是一个Java反向工程软件,可帮助理解已存在一些Java软件的架构和行为。



6、
AmaterasUML可以对大工程的支持,上面所列的一些插件像Green,貌似不支持大工程,如果出现大的工程文件,通常会出现崩溃的情况,而且形成的整个UML图显得混乱无比。

http://www.cse.buffalo.edu/faculty/alphonce/green



2、AmaterasUML的安装于使用
如果对于小工程项目,即一个类或接口所包含的方法和属性不是很多,用Green是最好的选择,但是对于大工程项目,这个插件要么无法加载各个类,有时还崩溃,要么可以加载但是很混乱,需要自己人工调,非常麻烦,所以,对比了之后,发现AmaterasUML是最合适的,ModelGoon也很好,但安装的时候需要使用代理,这个在Linux上可以做,具体方法可以参考:http://blog.sina.com.cn/s/blog_6e10ddff0101eixf.html 。但是在windows上好像不行,从上面可以看出,这个插件比AmaterasUML要好,它可以显示各个包之间的依赖关系,也许AmaterasUML也可以,但是我到现在还没发现,具体安装和Green一样也有两种方法,下载地址和使用方法请见其官网:http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML
下面是其显示效果,可以直接拖拽,如何拖拽,间上面的官网链接。


下面是网友遇到的问题,也许你也会遇到,先记下:
我刚下载了Green UML的3.4版本,把它配置到Eclipse 3.4的插件中,对代码进行UML模型转换时,发现得到的图形只有每个类的图形,而没有类之间的关系(依赖、泛化、实现等),而且选用板上也只有类、接口、枚举、注释这几种,没有依赖、泛化、实现等,而我看网上的介绍中应该是可以显示关系的,请问各位知道这是怎么回事吗?

Green UML的3.4 要和 GEF 配合用。您是不是只装了Green 没装GEF?
而且麻烦的地方在于 Green和GEF的版本还必须匹配。比如Green3.5要配GEF3.4
这是GEF3.4的链接
http://archive.eclipse.org/tools/gef/downloads/drops/R-3.4.0-200806091334/

GOLang

C++ 和其他

VS2010是有新增了 UML 建模功能,但是实在不能说对C++友好反向工程支持C#,不支持C++的,可能得找其他工具区了

推荐几个:

1、Visual Paradigm for UML 10.0 (社区版免费)

2、EA

3、Trufun kant studio

4、starUML

前面几个都支持C++逆向工程。


StarUML逆向工程: 通过代码生成类图: StarUML逆向工程: 通过代码生成类图