一、Bouml簡介
Android 系統中有大量Java、C++代碼,繼承以及依賴關系非常復雜,Bouml可以用c++、Java、Idl、Php和Python建模及生成代碼,反之也可通過uml工具更好的對源碼進行閱讀和分析。
BOUML是一個可擴展的編程工具,而名為plug-out的外部工具可以用c++或Java編寫。UML工具有很多,其中BOUML是一個免費的UML 2工具箱(較新版本也收費了,本文基於較舊的4.23版本使用說明)。
二、安裝&使用
1.下載並安裝: 百度雲鏈接:https://pan.baidu.com/s/19aKfz8bUseits-VmvMdGEA 提取碼:bz88
2.類圖制作:
(1)雙擊打開Bouml,初次打開會有如下界面進行環境設置:
(2)新建工程:
(3)設置語言類型:
(4)通過反轉c++代碼建立模型:
選擇對應目錄,點擊OK:
代碼模塊可能由多個目錄組成,則需要將各個相關目錄添加完整之后,最后點cancel結束,即可生成反轉關系:
-》
(5)新建類圖:
-》
-》
(6)開始建立關系:
(7)設置顯示完整成員定義信息:
-》
設置完后就可以看到詳細的參數信息:
(8)拖入其他類顯示完整的依賴關系,並保存成圖片:
轉成圖片保存:
查看圖片:
免費版本有一些bug,比如有的情況無法自動建立依賴關系,需要手動添加:
3.時序圖制作:(工程的創建可參考類圖制作部分操作)
(1)首先New class view,然后New sequence diagram:
-》
-》
對如下Ext7.java進行時序圖分析:
abstract class Father { private int money; public int getMoney() {return money; } public void setMoney(int money) {this.money = money; } public abstract void study(); } interface A { public static final int i = 10; public abstract int getNum(); } interface B { public static String name = "InterfaceB"; public abstract String getName(); } class Son extends Father implements A,B{ public int getNum() {return i;} public String getName() {return name;} public void study() {System.out.println("I am study"); } } public class Ext7 { public static void print () { } public static void main (String args[]) { //main函數屬於Ext7類 Son son = new Son(); //里面創建了一個son對象 System.out.println(son.getName()); son.study(); //調用了son的study方法 print(); } }
(2)拖入Ext7、Son類:
(3)添加調用流程(開始執行main函數):
-》
-》
-》
(4)接着添加對Son對象的創建和study方法調用:
(5)添加顏色及注釋(nativeInit是臨時創建的類用於示例):
-》
-》
本文主要介紹Bouml的初步使用方法,更加熟練的使用技巧以以及對圖表的解析,還請查閱其他資料進一步學習。
(1)深入淺出UML類圖 :http://www.uml.org.cn/oobject/201211231.asp)。
(2)官方文檔(含教學視頻):https://www.bouml.fr/documentation.html
-end-