UML类图之PlantUML开发工具
Windows环境搭建
下载 Java
- 下载安装JDK
下载Graphviz
-
概念
Graphviz 是开源的图形可视化软件,可以将文本语言转换成图表。
-
作用
PlantUML 用 Graphviz 来渲染输出 UML 模型。
-
配置环境变量
下载.msi文件安装成功后,配置环境变量:计算机→属性→高级系统设置→高级→环境变量→系统变量→path,在path中加入路径:安装目录\bin
-
验证
在windows命令行界面,输入dot -version,然后按回车,如果显示如下所示的graphviz相关版本信息,则安装配置成功
dot - graphviz version 2.38.0 (20140413.2041)
下载 VSCoode
-
安装plantuml插件
Extensions->搜索plantuml
-
测试使用
@startuml login->PostMan:Hello PostMan->Bob:Hello @enduml
Alt+D快捷键 —— 自动生成图
Alt+Shift+F —— 格式化代码格式
-
支持格式
不是支持的格式也可以生成Uml图但是不能设置格式与颜色
PlantUML
前言
PlantUML 不仅可以嵌套到各种文本编辑器,IDE 工具,也提供在线版
概念
PlantUML 是基于 Java 语言的开源 UML 图形绘制工具,是创建UML图形的组件,它通过简单直观的脚本来定义和创建 UML 图形。
其他
eclipse中安装AmaterasUML插件,IDEA中安装plantUML插件
UML(Unified modeling language)
概念
-
UML是一种用于软件系统分析和设计的语言工具,译为统一建模语言,用于帮助软件开发人员进行思考和记录的思路的结果
-
UML本身是一套符号的规定,类似于数学符号和化学符号,用于描述软件模型中的各个元素和他们之间的关系,比如关联、实现、泛化、依赖、组合、聚合等
分类
-
用例图
-
静态结构图
类图、对象图、包图、组件图、部署图
-
动态行为图
交互图(时序图与协作图)、状态图、活动图
6大关系
依赖(Dependency)
-
概念
是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖,在程序中一般表现为类A中的方法需要类B的实例作为其参数或者变量,而类A本身并不需要引用类B的实例作为其成员变量。
-
表示方法
虚线箭头,类A指向类B。
-
例图
泛化(Generalization)
-
概念
泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在程序中是通过继承类实现的。
-
表示方法
空心三角形箭头的实线,子类指向父类
-
例图
比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类
实现(Realization)
-
概念
实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述
-
表示方法
空心三角形箭头的虚线,实现类指向接口
-
例图
关联(Association)
-
概念
表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,在程序中被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量
关联具有导航性:即双向关系或单向关系
-
表示方法
实线箭头,类A指向类B
-
例图
聚合(Aggregation)
-
概念
聚合是关联关系的一种特例,是强的关联关系。聚合是整体和个体之间的关系,即has-a的关系,整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。程序中聚合和关联关系是一致的,通过set方法注入
-
表示方法
尾部为空心菱形的实线箭头(也可以没箭头),类A指向类B
-
例图
组合(Composite)
-
概念
组合也是关联关系的一种特例。组合是一种整体与部分的关系,即contains-a的关系,比聚合更强。部分与整体的生命周期一致,整体的生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。程序中组合和关联关系是一致的,创建整体对象同时new出部分对象 -
表示方法
尾部为实心菱形的实现箭头(也可以没箭头),类A指向类B
-
例图
-
其他
如果在程序中Person实体中定义了对IDCard进行级联删除,即删除Person时,连同IDCard一起删除,那么IDCard和Person就是组合关系