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

时间:2024-03-08 20:48:14

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

大致过程

现在有一个core包,里面有python的代码。

通过core包,生成python的类图,如下:

 

实施步骤:

1、首先安装graphviz,一个画图工具,地址为:
http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.28.0.msi

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


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


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

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

一张类图,一张包图

 

参考:

http://blog.csdn.net/u013920085/article/details/53285288

延伸:

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的组成部分。