从Python源代码生成UML图的最佳方法是什么?

时间:2008-11-03 22:08:10

标签: python uml diagram

一位同事正在寻求从大量的Python源代码生成UML类图。 他主要对继承关系感兴趣,对组合关系略感兴趣,并不关心只是Python原语的类属性。

源代码非常简单,并不是非常邪恶 - 例如,它没有做任何花哨的元类魔法。 (这主要来自Python 1.5.2的日子,其中有一些“现代”的东西。)

推荐的最佳解决方案是什么?

10 个答案:

答案 0 :(得分:107)

您可能听说过Pylint有助于静态检查Python代码。很少有人知道它附带了一个名为Pyreverse的工具,它从它读取的python代码中提取UML图。 Pyreverse使用graphviz作为后端。

答案 1 :(得分:91)

Epydoc是一个从Python源代码生成API文档的工具。它还以奇特的方式使用Graphviz生成UML类图。以下是从Epydoc本身的源代码生成的an example of diagram

因为Epydoc同时执行对象内省和源解析,它可以收集有关静态代码分析器的更多信息,例如Doxygen:它可以检查大量动态生成的类和函数,但也可以使用注释或未分配的字符串作为文档来源,例如对于变量和类公共属性。

答案 2 :(得分:18)

查看seven uml tools for python

的此列表

答案 3 :(得分:8)

某些表现良好的程序可能是可编程的,但在一般情况下,它无法完成。 Python对象可以在运行时扩展,任何类型的对象都可以分配给任何实例变量。确定对象可以包含指向哪些类(组合)需要完全理解程序的运行时行为。

Python的元类功能意味着关于继承结构的推理还需要完全理解程序的运行时行为。

为了证明这些是不可能的,你认为如果存在这样的UML图表,那么你可以采用任意程序,将“halt”语句转换为会影响UML图的语句,并使用UML图解器来解决停止问题,我们知道这是不可能的。

答案 4 :(得分:7)

如果你使用eclipse,也许PyUML。但是没有用过它。

答案 5 :(得分:7)

值得一提的是Gaphor。 Python建模/ UML工具。

答案 6 :(得分:4)

Sparx的Enterprise Architect执行Python源的往返。他们有一个免费的限时试用版。

答案 7 :(得分:4)

vipera是一个小型应用程序设计者,包括uml。你可以在:

中看到它

vipera

最好的问候。

答案 8 :(得分:3)

SPE IDE具有内置的UML创建器。只需在SPE中打开文件,然后单击UML选项卡。

我不知道它对您的需求有多么复杂,但它不需要任何额外的下载或配置来使用。

答案 9 :(得分:3)

Umbrello也是如此。在菜单中转到代码 - >导入项目,然后指向项目的根目录。然后它反转你的代码...