当前位置:   article > 正文

开源绘图工具plantUML入门教程(常用于画类图、时序图等)

plantuml

系列文章目录


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述

随着工作时间的增长,越发觉得用专业的图形(用例图,时序图,ER图等等)去准确表达想法是很重要的。比如针对某个需求绘制的的用例图,比一段乏味的文字来的更加有意义,也便于别人理解。加之最近在学习源码的时候,发现很多书籍中都会使用类图,时序图等UML语言来描述逻辑关系。于是就在网上找了找绘制UML语言时,业界主流的一些工具都用什么,找了半天,大部分都用了下面的工具Visio,StartUML,PlantUML。最终经过比较选择了PlantUML。官网:https://plantuml.com/zh/


1. 选择PlatnUML原因

PlantUML是开源的,有一个相对比较成熟的网站,通过简单的UML语言来实现想要的效果,有点极客范
PlantUML有比较详细的各类语言的guide文档
PlantUML做了很多的适配,比如常用的编译器eclipse,IDEA intelliJ都有对应的插件,同时还和Maven和JQuery都做了集成,还提供了war包形式,可以在本地的JavaEE容器(比如Tomcat)中运行起来
PlantUML语言简单直接易学,就好像Markdown语法一样,简单高效

2. PlantUML语言编写环境

本文简单介绍3种使用方法,其它方法读者可以自行研究

1.在线通过PlantUML语言绘制对应的UML图,plantUML官网提供了免费的在线编辑服务,通过在左侧输入对应的UML语言来生成对应的UML图

地址如下:online-site

2.使用IDEA intelliJ插件绘制

使用之前请安装PlantUML integration插件,然后就可以愉快的书写UML语言,右侧会生成对应的预览图片,可以复制或保存生成的图片到指定的目录# 总结

在这里插入图片描述
在这里插入图片描述

3.使用Visual Studio Code插件绘制

使用之前请安装PlantUML插件,然后就可以愉快的书写UML语言,右侧会生成对应的预览图片(alt+D显示)
在这里插入图片描述

4. PlantUML常用语法

1.基本用法

用 -> 来绘制参与者之间传递的消息

关键字 autonumber 用于自动对消息编号


@startuml

autonumber
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response

@enduml

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述
2.声明参与者

actor(角色)
boundary(边界)
control(控制)
entity(实体)
database(数据库)
collections(集合)
queue(队列)

@startuml

actor Foo1
boundary Foo2
control Foo3
entity Foo4
database Foo5
collections Foo6
queue Foo7

Foo1 -> Foo2: To boundary
Foo1 -> Foo3: To control
Foo1 -> Foo4: To entity
Foo1 -> Foo5: To database
Foo1 -> Foo6: To collections
Foo1 -> Foo7: To queue

@enduml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在这里插入图片描述
3.不同的箭头样式

@startuml

Bob -> Alice
Bob --> Alice
Bob ->> Alice
Bob ->x Alice
Bob -\ Alice
Bob \\- Alice
Bob \\-- Alice

Bob ->o Alice
Bob o\\-- Alice

Bob <-> Alice
Bob <->o Alice

Bob -[#red]> Alice: hello
Bob <[#0000FF]-- Alice: hello

@enduml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

在这里插入图片描述
4.页面标题、分页、页眉、页脚

title 关键字用于为页面添加标题。

页面可以使用header 和footer 显示页眉和页脚。

关键字 newpage 用于把一张图分割成多张。

在 newpage 之后添加文字,作为新的示意图的标题。

通过手动在文本中添加\n使长文本换行。

@startuml

autonumber
header Page Header
footer Page %page% of %lastpage%
title test first page
Alice -> Bob: first

newpage
Alice -> Bob: second

newpage A title for test\nlast page
Alice -> Bob: third

@enduml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述
5.分段

你可以通过使用 ==关键词来将你的图表分割成多个逻辑步骤。

@startuml

== first ==
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

== second ==
Alice -> Bob: Another authentication Request
Alice <-- Bob: Another authentication Response

== third ==
Alice -> Bob: Last authentication Request
Alice <-- Bob: Last authentication Response

@enduml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述
6.生命线

关键字activate和deactivate用来表示参与者的生命活动。

一旦参与者被激活,它的生命线就会显示出来。

activate和deactivate适用于以上情形。

destroy表示一个参与者的生命线的终结。

@startuml

participant user
user -> A: DoWork
activate A
A -> B: <<create Request>>
activate B
B -> C: DoWork
activate C
C --> B: WorkDone
destroy C
B --> A: RequestCreated
deactivate B
A -> user: Done
deactivate A

@enduml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这里插入图片描述
还可以使用嵌套的生命线,并且运行给生命线添加颜色。

@startuml

participant user

user -> A: DoWork
activate A #FFBBBB
A -> A: Internal call
activate A #DarkSalmon
A -> B: <<craeteRequest>>
activate B
B --> A: RequestCreated
deactivate B
deactivate A
A -> user: Done
deactivate A

@enduml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这里插入图片描述
7.注释

可以使用note left 或note right 关键字在信息后面加上注释。

可以使用end note 关键字有一个多行注释。

可以使用note left of,note right of或note over在节点(participant)的相对位置放置注释。

还可以通过修改背景色来高亮显示注释。

@startuml

Alice -> Bob: hello
note left #aqua: This is a first note.
Bob -> Alice: hello
note right #FFAAAA: This is an another note.
note left of Alice: This is displayed left of Alice.
note right of Bob: This is displayed right of Bob.
note over Alice: This is displayed over Alice.
note over Alice, Bob
This is
a long note.
end note

@enduml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述
其他细节请参考中文官网教程:http://plantuml.com/zh/sequence-diagram
需要系统源码或者BiShe加V
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/536897
推荐阅读
  

闽ICP备14008679号