Bouml快速使用指南
一、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-
Bouml快速使用指南的更多相关文章
- Rancher 快速上手指南操作(1)
Rancher 快速上手指南操作(1)该指南知道用户如何快速的部署Rancher Server 管理容器.前提是假设你的机器已经安装好docker了.1 确认 docker 的版本,下面是 ubunt ...
- AngularJS快速入门指南20:快速参考
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南19:示例代码
本文给出的大部分示例都可以直接运行,通过点击运行按钮来查看结果,同时支持在线编辑代码. <div ng-app=""> <p>Name: <input ...
- AngularJS快速入门指南18:Application
是时候创建一个真正的AngularJS单页面应用程序了(SPA). 一个AngularJS应用程序示例 你已经了解了足够多的内容来创建第一个AngularJS应用程序: My Note Save Cl ...
- AngularJS快速入门指南17:Includes
使用AngularJS,你可以在HTML中包含其它的HTML文件. 在HTML中包含其它HTML文件? 当前的HTML文档还不支持该功能.不过W3C建议在后续的HTML版本中增加HTML import ...
- AngularJS快速入门指南16:Bootstrap
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南15:API
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南14:数据验证
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南13:表单
一个AngularJS表单是一组输入型控件的集合. HTML控件 HTML输入型标签标包括: input标签 select标签 button标签 textarea标签 HTML表单 HTML表单将各种 ...
随机推荐
- ZOJ 2112 Dynamic Rankings(树状数组套主席树 可修改区间第k小)题解
题意:求区间第k小,节点可修改 思路:如果直接用静态第k小去做,显然我更改一个节点后,后面的树都要改,这个复杂度太高.那么我们想到树状数组思路,树状数组是求前缀和,那么我们可以用树状数组套主席树,求出 ...
- 安装Office2016遇到“无法流式传输Office”问题
安装Office2016遇到“无法流式传输Office”问题,请问如何解决 很抱歉,找不到所需的文件,请检查安装源是否可访问,然后再试. 错误代码:30068-39(2) ============== ...
- The frequent used operation in Linux system
The frequently used operation in Linux system 2017-04-08 12:48:09 1. mount the hard disk: #: fd ...
- Numpy 基础
Numpy 基础 参考https://www.jianshu.com/p/83c8ef18a1e8 import numpy as np 简单创建数组 # 创建简单列表 a = [1, 2, 3, 4 ...
- unittest用例执行的顺序
unittest在执行用例(test_xxx)时,并不是按从上到下的顺序执行,有特定的顺序. 示例: import unittest class TestBdd(unittest.TestCase): ...
- SpringBoot核心注解应用
1.今日大纲 了解Spring的发展 掌握Spring的java配置方式 学习Spring Boot 使用Spring Boot来改造购物车系统 2.Spring的发展 Spring1.x 时代 在S ...
- 关于Struts2的通配方法、转发重定向
1.通配符 在配置struts.xml文件的时候,需要很多action,这时可以用到通配符找到与之对应的方法和类,当然实际开发中很少用到这种方法 struts.xml: <!--通配方法 *_* ...
- Activity与Fragment数据传递之Fragment从Activity获取数据
整理Fragment与Activity之间的数据交换,大体上包括三种: 1.Fragment从Activity获取数据 2.Activity从Fragment获取数据 3.Fragment之间获取数据 ...
- Vue非父子级通信
<div id="app"> <xz-todo></xz-todo> </div> <!--1. 为每个组件定义HTML 模板 ...
- js 格式化带时区的日期
/** * 格式化带时区的日期 */ function formatDate(date) { var arr = date.split("T"); var d = arr[0]; ...