IDE支持
-
phpstorm
-
在Plugins中 安裝PlantUML integration插件
-
到http://www.graphviz.org/網站下載graphviz.exe并安裝(這個軟件可以支持更多的UML語法)
-
將graphviz安裝目錄下的dot.exe路徑添加到PlantUML的設置中
-
文檔
-
文檔地址:http://plantuml.com/
立即學習“PHP免費學習筆記(深入)”;
-
建議使用活動圖-Activity-bate語法:活動圖Activity-Beta(https://plantuml.com/zh/activity-diagram-beta)
-
活動圖(新語法)
當前活動圖(activity diagram)的語法有諸多限制和缺點,比如代碼難以維護。所以從V7947開始提出一種全新的、更好的語法格式和軟件實現供用戶使用(beta版)。就像序列圖一樣,新的軟件實現的另一個優點是它不再依賴與Graphviz。
新的語法將會替換舊的語法。然而考慮到兼容性,舊的語法仍被能夠使用以確保向前兼容。
但是我們鼓勵用戶使用新的語法格式。
語法
基礎
-
@startuml、@enduml
開始、結束標記,表示UML解析的部分 -
start、end
表示圖示的開始和結束。圖示的開始和結束。 -
:Hello world;
活動標簽(activity label)以冒號開始,以分號結束。活動默認安裝它們定義的順序就行連接。 -
if、then、else和elseif
設置分支測試。標注文字則放在括號中。 -
repeat、repeatwhile 重復循環。
-
while和endwhile進行while循環。還可以在關鍵字endwhile后添加標注,還有一種方式是使用關鍵字is。
-
fork,fork again和end fork表示并行處理。
-
note、end note、floating note left 等等表示注釋,例如:
floating note left: This is a note :foo2; note right This note is on several //lines// and can contain <b>HTML</b> ==== * Calling the method ""foo()"" is prohibited end note
-
#HotPin:activity;、#AAAAAA:ending of the process; 表示顏色
-
使用->標記,你可以給箭頭添加文字或者修改箭頭顏色。dotted, dashed, bold or hidden arrows 和顏色標記,例如-[#blue]->
-
通過定義分區(partition),你可以把多個活動組合(group)在一起。通過定義分區(partition),你可以把多個活動組合(group)在一起。例如:
partition Initialization { :read config file; :init internal variable; }
-
使用管道符|來定義泳道。還可以改變泳道的顏色。
|Swimlane1| start :foo1; |#AntiqueWhite|Swimlane2| :foo2; :foo3; |Swimlane1| :foo4; |Swimlane2| :foo5; stop
-
關鍵字detach移除箭頭。
-
通過修改活動標簽最后的分號分隔符(;),可以為活動設置不同的形狀。|、、/、]、}
:next(o)| :Receiving; split :nak(i)< :ack(o)> split again :ack(i)< :next(o) on several line| :i := i + 1] :ack(o)> split again :err(i)< :nak(o)> split again :foo/ split again :i > 5} stop end split :finish;
一個例子
@startuml start if (is login?) then (Y) if (gived box?) then (Y) :illegal request; detach else (N) :release box; :get boxOid; endif else (N) if (has boxOid?) then (N) :illegal request; detach endif endif :check wechat broswer; if (wechat broswer?) then (Y) if (get openid from cookie?) then (Y) if (get userInfo from DB by openid?) then (N) :clear openid in cookie; :re-request Url; detach endif else (N) :location wechat auth; detach endif endif :receive chocolate; end @enduml
更多phpstorm技術文章,請訪問phpstorm教程欄目!