Python是一門支持面向對象編程的語言,在大型軟件項目中,我們往往會使用面向對象的特性去組織我們的代碼,那有沒有這樣一種工具,可以幫助我們從已有代碼中提取出UML圖呢?答案是有的。以下,我們逐個介紹這些工具。
pyreverse
是一套python code 逆向工程(reverse engineering)的工具。它使用類層次結構的python 項目表示已提取任何可用的信息,可以很方便的應用於UML圖的生成,或者單元測試,如pyargo和py2tests。pyreverse 已被整合進pylint。
Graphviz
是貝爾實驗室開源的圖形繪制工具包
我們綜合使用pyreverse和Graphviz就可以實現從已有代碼中抽取UML圖的功能了。
如何安裝
Linux環境下graphviz安裝
使用yum自動安裝,任意路徑下執行如下命令:
yum install 'graphviz*' --skip-broken
出現提示時,輸入“y”。
--skip-broken:跳過錯誤依賴,不加這個參數會提示安裝包依賴錯誤,因為這里並不需要其它的安裝包,所以跳過即可。
windows下安裝
注意:2.30版本以上,需要手動將其添加到環境變量中去
pyreverse工具安裝
pyreverse能方便的生成uml類圖,pylint里自帶了pyreverse這個工具。使用pip安裝pylint
pip install pylint
開始使用
一般使用為:pyreverse -ASmy -o png path
-ASmy:為pyreverse選項參數,可以通過pyreverse --help 查看所有參數。-ASmy產生的結果最詳細,甚至包括了類屬性的結果解析。如果只需要類與類的uml圖,建議不加-ASmy。
-o 指定輸出文件格式,支持png, svg, dot等
path 為要解析的文件或文件夾
輸出結果會直接在命令行當前路徑下產生。

以上時不加 -ASmy 的結果