UML即Unified Model Language,是一种建模语言,也是标准建模语言。
工具安装:
https://sourceforge.net/projects/staruml/files/staruml/5.0
UML中的图可以分成两大类
·结构图:UML结构图表示系统的静态方面,描述系统的主要结构因此而稳定的那部分,静态结构图主要包括
1.类图:类图描述系统中的类,以及各个类之间的关系
class Person{ private int id; private String name; private int age;}
public String getName(){ return name; } public int getAge(){ return age; } public int getId(){ return id; }}
类之间的关系:
1、泛化关系(Generalization)
说明:这种关系就是面向对象语言中的继承关系,逻辑上可以用"is a"表示。
代码体现:子类继承父类。
UML符号:一条实线+空心箭头
2、实现关系(Realization)
说明:和泛化关系相似,逻辑上也是用"is a"表示。区别在于实现关系继承一个抽象类(abstract、interface), 而泛化关系继承一个具体类。
代码体现:实现接口或继承某个抽象类。
UML符号:一条虚线+空心箭头。
3、组合关系(Composition):整体和部分是强依赖关系,即使整体不存在了,部分也不存在了
说明:是整体与部分的关系,但部分不能脱离整体而独立存在。逻辑上能用"has a"表示。
代码体现:成员变量。
UML符号:一条实线+实心菱形。
4、聚合关系(Aggregation):整体和部分不是强依赖关系,即使整体不存在了,部分依然存在
说明:是整体与部分的关系,部分能脱离整体而独立存在。逻辑上能用"has a"表示。
代码体现:成员变量
UML符号:一条实线+空心菱形
5、关联关系(Association)
说明:是整体与部分的关系。逻辑上能用"has a"表示。
代码体现:成员变量。
UML符号:双向关联,一条实线或一条实线+两个箭头;单向关联,一条实线+一个箭头。
6、依赖关系(Dependency)
说明:是一种使用关系,即一个类的实现需要另一个类的协助。逻辑上能用"use a"表示。尽量不要使用双向依赖。
代码体现:局部变量、方法的参数和静态方法的调用。
UML符号:一条虚线+箭头。
2.对象图:对象图与类图类似,它是类图的实例化,显示类的多个实例化,不是实际的类,描述对象间的关系,用来建立系统原型。
3.组件图:组件图用来描述系统的物理结构及相互间的关系,模型化和文档化了一个系统的架构
4.部署图:部署图用来建模系统的物理部署,如计算机和设备,及它们之间的关联关系
·行为图:UML中的行为图主要包括:
1.用例图:用例图描述角色以及角色与用例之间的连接关系。说明使用这个系统的人都有谁,以及这些人使用这个系统能做些什么
·用例元素包括;角色(使用者),用例(实现的功能),关系(关联,依赖,泛化,实现)
2.时序图:时序图用来显示参与者执行某项功能时所要经历的时间顺序
怎么画虚线?先正常的画好实现,然后,在右边调整为return,就是虚线啦
3.协作图:协作图与时序图类似,也是一种交互图,如果强调时间顺序,就使用时序图,强调上下级关系,就选择协作图。
4状态图:状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件
5活动图:活动图用来描述一个系统中的控制流
额外添加一个图:泳道图
泳道是将活动中的具体活动按照负责进行该活动的对象进行分区,一条泳道中的所有活动由同一个对象来执行。
除了以上的对线性流程进行分区以外,使用泳道表示法可以更清晰地表示并发。
来源:https://www.cnblogs.com/xp0813/p/12270251.html