plantuml cheatsheet 中文版
说明
plantuml是一个UML的dsl,使用文本生成UML相关图(序列图,用例图,类图,活动图,组件图,状态图,部署图,对象图), 这份文档plantuml的cheatsheet
图形说明
UML 可分为行为图和结构图.
行为图 行为图用于表示系统的行为
| Diagram | PlantUML | 说明 |
|---|---|---|
| 用例图 | Use Case | 从用户角度描述系统功能,并指各功能的操作者 |
| 活动图 | Activity | 描述了业务实现用例的工作流程 |
| 状态图 | State | 是描述状态到状态控制流,常用于动态特性建模 |
| 顺序图 | Sequence | 对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互 |
结构图 结构图用于表示系统内部静态结构和部署相关的物理元件
| Diagram | PlantUML | 说明 |
|---|---|---|
| 类图 | Class | 描述系统中类的静态结构 |
| 对象图 | Object | 类图的实例 |
| 组件图 | Component | 显示系统组件间的结构关系 |
| 包图 | Package | 是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构 |
| 配置图 | Deploy | 定义系统中软硬件的物理体系结构 |
UML
Use Case
| keyword | 使用 | 图片 |
|---|---|---|
| () | 用例 | ![]() |
| -> | 关联 | ![]() |
| .> | Extend,Include | ![]() |
@startuml
actor Promoter
actor Entrant
Promoter --> (Create Event)
Promoter -> (Attend Event)
Entrant --> (Find Event)
(Attend Event) <- Entrant
(Attend Event) <.. (Create Member) : <<include>>
@enduml

Activity
描述了业务实现用例的工作流程
| keyword | 使用 | 图片 |
|---|---|---|
| » « | 活动 | ![]() |
| (*) -> | 开始状态 | ![]() |
| ->(*) | 结束状态 | ![]() |
@startuml
(*) --> "Find Event"
"Find Event" -> "Attend Event"
if "Capacity?" then
->[ok] "Create Ticket"
else
-->[full] if "Standby?" then
->[ok] "Standby Ticket"
else
-->[no] "Cancel Ticket"
"Cancel Ticket" --> (*)
endif
endif
"Create Ticket" --> ==show==
"Standby Ticket" --> ==show==
==show== --> "Show Ticket"
"Show Ticket" --> (*)
@enduml

State
状态图,表示对象的状态变化。
| keyword | 使用 | 图片 |
|---|---|---|
| [*] -> | 开始状态 | ![]() |
| (*) -> | 结束状态 | ![]() |
@startuml
[*] --> active
active -right-> inactive : disable
inactive -left-> active : enable
inactive --> closed : close
active --> closed : close
closed --> [*]
@enduml

Sequence
序列图,表示消息和顺序的对象之间的交互
| keyword | 使用 | 图片 |
|---|---|---|
| -> | 同步消息 | ![]() |
| <– | 同步应答 | ![]() |
| ->> | 异步消息 | ![]() |
| <<- | 异步应答 | ![]() |
@startuml
actor Entrant
Entrant -> Ticket : Attend Event Request
activate Ticket
Ticket -> Member : Create Member Request
activate Member
Member -> Member : Create Member
Ticket <-- Member : Create Member Response
deactivate Member
Ticket -> Ticket : Create Ticket
Entrant <-- Ticket : Attend Event Response
deactivate Ticket
@enduml

Class
类图来表示逻辑视图。
| keyword | 使用 | 图片 |
|---|---|---|
| class | class | ![]() |
| + | public | ![]() |
| - | Private | ![]() |
| # | Protected | ![]() |
| ~ | Package | ![]() |
@startuml
class User {
username
password
+sign_in()
}
class Group {
name
}
class Member {
roles
}
User .. Member
Group .. Member
@enduml

Object
对象图,来表示的逻辑视图。
| keyword | 使用 | 图片 |
|---|---|---|
| object | 对象 | ![]() |
| *- | 组成 | ![]() |
| o- | 聚合 | ![]() |
@startuml
object User
object Group
object Member
object Event
object Ticket
User . Group
User o.. Member
Group o.. Member
Group o. Event
Event o.. Ticket
Member . Ticket
@enduml

Component
组件图,以表示该组件的依赖关系。
| keyword | 使用 | 图片 |
|---|---|---|
| [ ] | 部件 | ![]() |
@startuml
cloud "Cloud" {
package "Package" {
[register]
frame "frame" {
[backup]
}
}
}
node "Node" {
database "Database" {
[store]
}
folder "Folder" {
[File]
}
}
[register] .. [store] : HTTP
[backup] .. [File] : FTP
@enduml

Common
标题注释评论中常用的关键字
| keyword | 使用 | 图片 |
|---|---|---|
| title | 标题 | ![]() |
| note left : | 左标记 | ![]() |
| note right : | 右标记 | ![]() |
| ‘ | 单行注释 | |
| /’ ‘/ | 多行注释 |
@startuml
title Title
( )
note left : Note
[ ]
note right : Note
' single-line comment
/'
block comment
'/
@enduml

Element
可以使用元素,如演员或实体。
| keyword | 使用 | 图片 |
|---|---|---|
| actor | actor | ![]() |
| agent | agent | ![]() |
| usecase | usecase | ![]() |
| component | component | ![]() |
| boundary | boundary | ![]() |
| control | control | ![]() |
| entity | entity | ![]() |
| interface | interface | ![]() |
@startuml
actor actor
:Actor alias:
agent agent
usecase usecase
component component
boundary boundary
control control
entity entity
interface interface
@enduml

Package
您可以使用该软件包,如作为文件夹或笔记本。
| keyword | 使用 | 图片 |
|---|---|---|
| package | package | ![]() |
| folder | folder | ![]() |
| artifact | artifact | ![]() |
| node | node | ![]() |
| frame | frame | ![]() |
| cloud | cloud | ![]() |
| database | database | ![]() |
| storage | storage | ![]() |
@startuml
package package
folder folder
artifact artifact
node node
frame frame
cloud cloud
database database
storage storage
@enduml

Arrow
可以指定的箭头位置和方向。
| keyword | 使用 | 图片 |
|---|---|---|
| -up-> | 上 | ![]() |
| -down-> | 下 | ![]() |
| -left-> | 左 | ![]() |
| -right-> | 右 | ![]() |
@startuml
up -up-> right
-right-> down
-down-> left
-left-> up
@enduml

Basic widgets
显示部件,如按钮和输入。
@startuml
salt
{
Just plain text
[This is my button]
() Unchecked radio
(X) Checked radio
[] Unchecked box
[X] Checked box
"Enter text here "
^This is a droplist^
}
@enduml

Tree widget
树结构部件
@startuml
salt
{
{T
+ World
++ America
+++ Canada
+++ USA
++++ New York
++++ Boston
+++ Mexico
++ Europe
+++ Italy
+++ Germany
++++ Berlin
++ Africa
}
}
@enduml











































