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表单将各种 ...
随机推荐
- 微信小程序框架集合
UI组件 weui-wxss ★852 - 同微信原生视觉体验一致的基础样式库 Wa-UI ★122 - 针对微信小程序整合的一套UI库 wx-charts ★105 - 微信小程序图表工具 wema ...
- list,tuple,dict,set的增删改查
数据结构 list tuple dict set 增 append insert d['key']=value add 删 pop pop(0) d.pop('name') pop re ...
- Java包装类介绍与类型之间相互转换
1.包装类存在的意义 通俗解释就是由于Java是面对对象的语言,而基本类型不具有面对对象的概念,为了弥补不足,引入了包装类方便使用面对对象的变成思想操作基本类型. 2.基本类型和包装类对应关系 byt ...
- Cent OS 7 安装海峰、极点五笔输入法
作为五笔输入法的玩家,输入不使用五笔比较难受:最近安装了 Cent OS 7 (带 GNOME. KDE桌面)系统,默认安装的是拼音输入法,这那受得了,赶紧上车找五笔输入法. 在此之前我查阅了百度得到 ...
- ZJOI-2017 R2 游记
来说说考试(之前的事明天再补): 开始看了一遍所有题目,感觉第二题最可做的样子(ZJOI R1树状数组,HNOI splay 你们西方什么题我还没见过,淦!),大概感觉了一下所有题. T1:k=1直接 ...
- Selenium Chrome
Chrome版本不变 发现在 Selenium-server-standalone-2.39.0.jar 中可全屏 Selenium-server-standalone-3.8.1.jar 中不可全屏 ...
- 有效的括号(Java实现)
题目: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符 ...
- NetSec2019 20165327 EXP5 MSF基础应用
NetSec2019 20165327 EXP5 MSF基础应用 实践目标 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践,如 ...
- RESTful Level
REST(表述性状态转移)是最近几年讨论的最为热烈的话题之一,其起源于Roy.T.Fielding博士的论文<软件架构风格和基于网路的软件架构设计>.Roy博士在他的论文里从架构风格角度阐 ...
- 毕设记录(ajax)
有关ajax的cache属性值 cache作用:是否在缓存中读取数据的读取. cache属性是true(默认值)时:在第一次请求完成之后,如果地址和参数不变化,第二次去请求,会默认获取缓存中的数据,不 ...