PlantUML是一款开源的UML图绘制工具,支持通过文本来生成图形,使用起来非常高效。可以支持时序图、类图、对象图、活动图、思维导图等图形的绘制。

官网链接:https://plantuml.com/zh/

  • VSCode插件安装:EXTENSIONS搜索"PlantUML",选择安装。

    文件后缀名默认为.puml,通过快捷键Alt+D,可以预览PlantUML文件。

  • jetbrains插件安装:File->Settings->Plugins,搜索"PlantUML",选择安装。

    文件后缀名默认为.puml,可以通过图标选择预览方式。

一、UML图形

1、用例图UseCase

https://plantuml.com/use-case-diagram

@startuml
'https://plantuml.com/use-case-diagram:Main Admin: as Admin
(Use the application) as (Use)User -> (Start)
User --> (Use)Admin ---> (Use)note right of Admin : This is an example.note right of (Use)
A note can also
be on several lines
end notenote "This note is connected\nto several objects." as N2
(Start) .. N2
N2 .. (Use)
@enduml

2、组件图Component

https://plantuml.com/component-diagram

@startuml
'https://plantuml.com/component-diagrampackage "Some Group" {HTTP - [First Component][Another Component]
}node "Other Groups" {FTP - [Second Component][First Component] --> FTP
}cloud {[Example 1]
}database "MySql" {folder "This is my folder" {[Folder 3]}frame "Foo" {[Frame 4]}
}[Another Component] --> [Example 1]
[Example 1] --> [Folder 3]
[Folder 3] --> [Frame 4]@enduml

3、类图Class

https://plantuml.com/class-diagram

@startuml
'https://plantuml.com/class-diagramabstract class AbstractList
abstract AbstractCollection
interface List
interface CollectionList <|-- AbstractList
Collection <|-- AbstractCollectionCollection <|- List
AbstractCollection <|- AbstractList
AbstractList <|-- ArrayListclass ArrayList {
Object[] elementData
size()
}enum TimeUnit {
DAYS
HOURS
MINUTES
}@enduml

4、对象图Object

https://plantuml.com/object-diagram

@startuml
'https://plantuml.com/object-diagramobject London
object Washington
object Berlin
object NewYorkmap CapitalCity {UK *-> LondonUSA *--> WashingtonGermany *---> Berlin
}NewYork --> CapitalCity::USA
@enduml

5、状态图State

https://plantuml.com/state-diagram

@startuml
'https://plantuml.com/state-diagramscale 350 width
[*] --> NotShootingstate NotShooting {[*] --> IdleIdle --> Configuring : EvConfigConfiguring --> Idle : EvConfig
}state Configuring {[*] --> NewValueSelectionNewValueSelection --> NewValuePreview : EvNewValueNewValuePreview --> NewValueSelection : EvNewValueRejectedNewValuePreview --> NewValueSelection : EvNewValueSavedstate NewValuePreview {State1 -> State2}}
@enduml

6、活动图Activity

https://plantuml.com/activity-diagram-beta

@startuml
'https://plantuml.com/activity-diagram-betastart
:ClickServlet.handleRequest();
:new page;
if (Page.onSecurityCheck) then (true):Page.onInit();if (isForward?) then (no):Process controls;if (continue processing?) then (no)stopendifif (isPost?) then (yes):Page.onPost();else (no):Page.onGet();endif:Page.onRender();endif
else (false)
endifif (do redirect?) then (yes):redirect process;
elseif (do forward?) then (yes):Forward request;else (no):Render page template;endif
endifstop@enduml

7、序列图Sequence

https://plantuml.com/sequence-diagram

@startuml
'https://plantuml.com/sequence-diagramautonumberAlice -> Bob: Authentication Request
Bob --> Alice: Authentication ResponseAlice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml

8、部署图Deployment

https://plantuml.com/deployment-diagram

@startuml
'https://plantuml.com/deployment-diagramactor actor
actor/ "actor/"
agent agent
artifact artifact
boundary boundary
card card
circle circle
cloud cloud
collections collections
component component
control control
database database
entity entity
file file
folder folder
frame frame
interface interface
label label
node node
package package
queue queue
rectangle rectangle
stack stack
storage storage
usecase usecase
usecase/ "usecase/"
@enduml

9、时序图Timing

https://plantuml.com/zh/timing-diagram

@startuml
'https://plantuml.com/zh/timing-diagramclock   "Clock_0"   as C0 with period 50
clock   "Clock_1"   as C1 with period 50 pulse 15 offset 10
binary  "Binary"  as B
concise "Concise" as C
robust  "Robust"  as R@0
C is Idle
R is Idle@100
B is high
C is Waiting
R is Processing@300
R is Waiting
@enduml

二、非UML图形

1、思维导图

https://plantuml.com/mindmap-diagram

@startmindmap
* root node
** some first level node
*** second level node
*** another second level node
** another first level node
--[#FFBBCC] root node
---[#FFFF00] some first level node
---- second level node
---- another second level node
---[#00FFFF] another first level node
@endmindmap

2、json数据图

https://plantuml.com/json

@startjson
{"firstName": "John","lastName": "Smith","isAlive": false,"age": 27,"address": {"streetAddress": "21 2nd Street","city": "New York","state": "NY","postalCode": "10021-3100"},"phoneNumbers": [{"type": "home","number": "212 555-1234"},{"type": "office","number": "646 555-4567"}],"children": [],"spouse": null
}
@endjson

三、C4模型

官网链接:https://c4model.com/
中文翻译:https://www.infoq.cn/article/C4-architecture-model
英文原文:https://www.infoq.com/articles/C4-architecture-model/

PlantUML标准C4模型库:https://github.com/plantuml-stdlib/C4-PlantUML
所谓C4指的是Context, Containers, Components, Code, 指代不同Level的架构图。

绘图工具-PlantUML相关推荐

  1. 程序员绘图工具-Plantuml

    在写文档的过程中,经常需要进行画图.虽然说现在有很多类似viso之类的可视化画图工具,但是还是要花费大量时间在拖拉组件上,效率十分低下.最近在网上找到了一款还算不错的绘图工具-- Plantuml, ...

  2. cassandra可视化工具_程序员绘图工具——PlantUML

    在工作中经常会编写技术文档,用专业的图形(用例图.时序图.ER图等等)能够更加准确表达我们的想法,别一段乏味的文字更加有意义,也便于别人理解. 虽然现在有很多类似viso之类的可视化画图工具,但是还是 ...

  3. [UML专题-1]:plantUML,一款免费、高效、为程序员而生的、软件设计的绘图工具

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  4. GraphViz 使用教程-用代码生成有向图。并介绍流程图、时序图等绘图工具

    GraphViz 图形工具使用教程综合篇 GraphViz简述 GraphViz基本元素 生成一个有向图 node属性.edit属性和subgraph的使用 如何安装GraphViz GraphViz ...

  5. 写作中常用的绘图工具

    由于在写作中经常需要配图,本文分享下我常用的绘图工具以及如何存储并展示配图. 白板绘图 Excalidraw 白板绘图的好处在于灵活度非常高.好的白板工具可以很方便的绘制自由的图片和预定义的结构化图形 ...

  6. <笔记1>matplotlib绘图工具笔记

    matplotlib绘图工具笔记 python中有许多非常方便的可视化工具,例如matplotlib,seaborn等.在这里主要总结matplotlib的简单绘图方法. 设置图形的大小和中文显示,图 ...

  7. HTML5 canvas 在线画笔绘图工具(三)

    组装画板(TDrawBuilder) 在这一小节中我们要把工具条和画板组装起来,让他们可以协同进行工作. 画板通过一个命名为TDrawBuilder来进行组装.在详细讲解TDrawBuilder对象之 ...

  8. 编程软件python图片-python Plotly绘图工具的简单使用

    1.plotly库的相关介绍 1)相关说明 plotly是一个基于javascript的绘图库,plotly绘图种类丰富,效果美观: 易于保存与分享plotly的绘图结果,并且可以与Web无缝集成: ...

  9. python 画柱状图-python使用Plotly绘图工具绘制柱状图

    本文实例为大家分享了python使用Plotly绘图工具绘制柱状图的具体代码,供大家参考,具体内容如下 使用Plotly绘制基本的柱状图,需要用到的函数是graph_objs 中 Bar函数 通过参数 ...

最新文章

  1. oracle命令行导出、导入dmp文件
  2. 一个NSObject对象占多少内存?
  3. iOS开发之Masonry框架源码深度解析
  4. 直接管理内存——new和delete
  5. 关于zookeeper中session timeout
  6. VC中树状控件(TreeCtrl)的用法
  7. 剑指offer之数组中的数据查找
  8. python模块之scipy的层次聚类简单测试与使用
  9. EasyUI 1.5.1 美化主题大包 Insdep Theme 1.0.3 正式版已发布,开源下载
  10. 如何批量把下载QQ空间相册图片
  11. 什么是web app
  12. vtk体绘制代码报错的解决办法(代码在vtk7,8,9中都能运行),以及VTK数据集网站
  13. php让浏览器全屏,js实现各浏览器全屏代码
  14. 显卡超了100测试软件黑屏,win10更新后,桌面窗口管理器间歇性占用GPU3D 100%,此时系统卡顿,黑屏...
  15. linux删除pdf密码
  16. git、GitHub、Gitee(码云)、GitBook、Copilot、GitLab概述
  17. context 浅析
  18. 2.横切易拉罐(PS)
  19. 计量经济学及Stata应用 第五章习题 5.5
  20. 会员卡软件有关的英文

热门文章

  1. 软件测试的目的和意义
  2. 谷歌浏览器Chrome无法搜索Google的解决办法
  3. C语言:fscanf函数与fprintf函数——格式化读写函数
  4. solidity基础学习
  5. SiamCAR: Siamese Fully Convolutional Classification and Regression for Visual Tracking
  6. SimpleDateFormat的概述
  7. 六款好用的Mac最流行的开发工具,程序员必看~
  8. linux vi 看下一页,linux中的vi命令(2)
  9. 欧拉函数|(扩展)欧拉定理|欧拉反演
  10. oracle 视图、索引、序列、同义词