当前位置: 首页 > news >正文

PlantUML基础使用教程

环境搭建

IDEA插件下载

打开IEDA系列IDE,从FIle–>Settings–>Plugins–>Marketplace 进入到插件下载界面,搜索PlantUML,安装PlantUML IntegrationPlantUML Parser两个插件,并重启IDE

安装和配置Graphviz

进入官网Download | Graphviz下载操作系统对应的安装包,安装后打开settings页面,找到PlantUML配置页面,并在Graphviz dot executable中输入dot可执行文件的绝对路径。

下图为Mac系统使用homebrew安装graphviz所对应的文件路径:
在这里插入图片描述
至此,环境搭建完毕,下面演示如何利用PlantUML插件来生成uml文件。

第一个puml文件

在项目中找到想要生成uml文件的class,鼠标右键,找到:

Light         Dark

输入文件名后点击确认即可生成一个puml文件。

第二个puml文件

仅生成一个class文件的uml图肯定是不能满足需求的,那如何生成多个class的uml图呢?这里PlantUML并不能帮我们自动挑选出哪些类,而是需要我们自己先根据代码的关系和调用链等在脑子里面确认好需要哪些class,然后按住ctrl键依次选中这些class文件,最后鼠标右键同样点击PlantUML Parser即可。

当然生成uml图可能并不完美,需要微调,此时就需要我们稍微了解一下相关的语法了。

语法简介

  • 关系:
继承关系实现关系依赖关系关联关系聚合关系组合关系
方法参数引用属性关联多属性关联单属性关联
三角实线三角虚线箭头虚线箭头实线空棱形实线箭头实棱形实线箭头
<|– <|…<…<–o–*–
  • 类型:
接口抽象类内部类
classinterfaceabstract+..

示例:

@startuml
class ImageLoader{loadImage(ImageInfo)
}class ImageInfo{
}ImageInfo <.. ImageLoader :依赖关系class Window {
-WindowManager mWindowManager  : 成员变量
}class WindowManagerWindowManager <-- Window:关联关系class Company
class Department
Company o-- Department:聚合关系class Bird
class Wing
Bird *-- Wing:组合关系abstract class Factory
class PhoneFactory
class CarFactory
Factory <|-- PhoneFactory:泛化关系
Factory <|-- CarFactory:也就是继承关系interface IColorDraw{~ draw()  : 抽象方法
}
class RedColorDraw{+ draw()     :具体方法
}
class BlueColorDraw{draw()
}
IColorDraw <|.. RedColorDraw:实现关系
IColorDraw <|.. BlueColorDraw:实现某个接口
@enduml

参考资料

  • Idea+PlantUML自动生成UML图(最详教学)
http://www.lryc.cn/news/234295.html

相关文章:

  • Redis:新的3种数据类型Bitmaps、HyperLoglog、Geographic
  • promise时效架构升级方案的实施及落地 | 京东物流技术团队
  • es的使用方法以及概念
  • WPF xaml Command用法介绍
  • 微信小程序动态生成表单来啦!你再也不需要手写表单了!
  • 顺序表(数据结构与算法)
  • 【大连民族大学C语言CG题库练习题】——判断一个矩阵是另一个矩阵的子矩阵
  • C#WPF控制模板实例
  • MATLAB Simulink和S7-1200PLC MOBUSTCP通信
  • 五、函数的介绍
  • 【广州华锐互动VRAR】VR元宇宙技术在气象卫星知识科普中的应用
  • F. Alex‘s whims Codeforces Round 909 (Div. 3) 1899F
  • 面试题-5
  • 车载以太网-ARP
  • Kafka学习笔记(三)
  • JVM-HotSpot虚拟机对象探秘
  • 大模型技术的发展:开源和闭源,究竟谁强谁弱又该何去何从?
  • Python学习笔记--自定义元类
  • 软件测试 —— 常见的自动化测试架构!
  • Python 的 @lru_cache() 装饰器
  • Swift制作打包framework
  • 无线WiFi安全渗透与攻防(N.2)WPA渗透-使用airolib-ng创建彩虹表加速
  • 整形数据和浮点型数据在内存中的存储差别
  • 【Python基础篇】运算符
  • 开启数据库审计 db,extended级别或os级别)并将审计文件存放到/opt/oracle/audit/下
  • 02.webpack中多文件打包
  • IEEE Standard for SystemVerilog Chapter 22. Compiler directives
  • 机器学习中的独立和同分布 (IID):假设和影响
  • PTP软硬件时间戳
  • 使用ADS进行serdes仿真时,Tx_Diff中EQ的设置对发送端波形的影响。