一位同事希望从大量的Python源代码中生成UML类图。 他主要对继承关系感兴趣,对组合关系稍有兴趣,不太关心仅仅是Python原语的类属性。

源代码非常简单,也不是特别邪恶——例如,它没有使用任何花哨的元类魔法。(它主要来自Python 1.5.2时代,有一些“现代”2.3之类的东西。)

现有的最好的解决方案是什么?


当前回答

Sparx的企业架构师执行Python源代码的往返。他们有免费的限时试用版。

其他回答

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

它是这样使用的:

pyreverse -o png -p yourpackage .

哪里。也可以是单个文件。

如果您使用Eclipse,则可能使用PyUML。不过还没用过。

值得一提的是加弗尔。一个Python建模/UML工具。

Sparx的企业架构师执行Python源代码的往返。他们有免费的限时试用版。

Epydoc是一个从Python源代码生成API文档的工具。它还使用Graphviz生成UML类图。下面是一个从Epydoc本身的源代码生成的图表示例。

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