一位同事正在寻找从Python源代码堆中生成UML类图的方法。他主要对继承关系感兴趣,对组合关系也很感兴趣,并且不太在乎仅仅是Python原语的类属性。
源代码非常简单明了,没有太大的弊端-例如,它没有做任何花哨的元类魔术。(这主要是从Python 1.5.2时代开始的,并且散布着一些“现代”的2.3ish的东西。)
有什么最好的现有解决方案推荐?
您可能听说过Pylint可帮助静态检查Python代码。很少有人知道它带有一个名为Pyreverse的工具,该工具从读取的python代码中绘制UML图。Pyreverse使用graphviz作为后端。
它的用法如下:
pyreverse -o png -p yourpackage .
其中,.
也可以是一个单独的文件。
Epydoc是从Python源代码生成API文档的工具。它还以花哨的方式使用Graphviz生成UML类图。这是从Epydoc本身的源代码生成的图表示例。
由于Epydoc同时执行对象自省和源解析,因此它可以收集有关静态代码分析器(例如Doxygen)的更多信息:它可以检查大量动态生成的类和函数,但也可以使用注释或未分配的字符串作为文档源,例如用于变量和类的公共属性。
检查此列表的七个python uml工具
某些行为良好的程序可能是图表,但是在一般情况下,这是无法完成的。可以在运行时扩展Python对象,并且可以将任何类型的对象分配给任何实例变量。弄清楚一个对象可以包含指向(组成)的指针的类,将需要对程序的运行时行为有充分的了解。
Python的元类功能意味着对继承结构的推理还需要全面了解程序的运行时行为。
为了证明这些是不可能的,您认为如果存在这样的UML图表生成器,则可以采用任意程序,将“暂停”语句转换为会影响UML图表的语句,然后使用UML图表生成器解决暂停问题,我们知道这是不可能的。
如果您使用eclipse,则可能是PyUML。但是还没有使用过。
值得一提的是Gaphor。Python建模/ UML工具。
Umbrello does that too. in the menu go to Code -> import project and then point to the root deirectory of your project. then it reverses the code for ya...
vipera is a small application designer, and uml is included. You can see it in:
Best regards.
文章标签:diagram , python , uml
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!