開源繪圖工具plantUML入門教程(常用於畫類圖、時序圖等)


1. 背景

隨着工作時間的增長,越發覺得用專業的圖形(用例圖,時序圖,ER圖等等)去准確表達想法是很重要的。比如針對某個需求繪制的的用例圖,比一段乏味的文字來的更加有意義,也便於別人理解。加之最近在學習源碼的時候,發現很多書籍中都會使用類圖,時序圖等UML語言來描述邏輯關系。於是就在網上找了找繪制 UML語言時,業界主流的一些工具都用什么,找了半天,大部分都用了下面的工具 VisioStartUMLPlantUML。最終經過比較選擇了 PlantUML。官網: https://plantuml.com/zh/

2. 選擇PlatnUML原因

  • PlantUML是開源的,有一個相對比較成熟的網站,通過簡單的UML語言來實現想要的效果,有點極客范
  • PlantUML有比較詳細的各類語言的guide文檔
  • PlantUML做了很多的適配,比如常用的編譯器eclipseIDEA intelliJ都有對應的插件,同時還和MavenJQuery都做了集成,還提供了war包形式,可以在本地的JavaEE容器(比如Tomcat)中運行起來
  • PlantUML語言簡單直接易學,就好像Markdown語法一樣,簡單高效

3. 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

 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

 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

 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

 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

 6.生命線

關鍵字activatedeactivate用來表示參與者的生命活動。

一旦參與者被激活,它的生命線就會顯示出來。

activatedeactivate適用於以上情形。

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

 還可以使用嵌套的生命線,並且運行給生命線添加顏色。

@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

 7.注釋

可以使用note left 或note right 關鍵字在信息后面加上注釋。

可以使用end note 關鍵字有一個多行注釋。

可以使用note left ofnote right ofnote 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

 

其他細節請參考中文官網教程:http://plantuml.com/zh/sequence-diagram


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM