天天看點

使用plantuml生成uml時序圖

主要包括以下三步:

1. 下載下傳plantuml.jar 配置到本地環境變量友善直接本地使用

http://plantuml.com/download 

https://sourceforge.net/projects/plantuml/files/plantuml.jar/download

将這個軟體放置到某目錄,如~/toolkit/design/plantuml/plantuml.jar

對于linux可以修改~/.bashrc,新增一行,儲存退出并重新登入

alias plantuml="java -jar ~/toolkit/design/plantuml/plantuml.jar "

也可以将以下文本拷貝到plantuml.sh腳本中,且放在和plantuml.jar同一個目錄

#! /bin/bash
# 
####################################################
# Author      : longbin
# Created date: 2019-03-21 10:57:44
####################################################
function plantuml()
{
    if [ $# = 0 ] ;then
        echo "ERROR: invalid param, please figure plantuml source code text file"
        return
    fi
    local cur_dir=$(dirname $0)
    local plantumljar=${cur_dir:=$(pwd)}/plantuml.jar
    # echo "${plantumljar}"
    if [ -f ${plantumljar} ] ;then
        java -jar ${plantumljar} $*
    fi
}
plantuml $*
           

将以上文本拷貝到plantuml.sh腳本中,然後在.bashrc中添加指令别名,如

alias plantuml="bash ~/toolkit/design/plantuml/plantuml.sh "

重新開啟終端即可使用plantuml指令;

2. 編寫uml代碼,儲存到alice.uml

@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

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

再來一個複雜一點的onstar.uml

@startuml                                                                                                           
header onstarservice start seq
autonumber
    HMI -> ICI: start onstar
    ICI -[#red]>> onstar: GMLAN_Send_PhoneSpeechRecReq
== onstar req src 52, and play VR/TTS ==
... delayed about 1s sometime ...
    ICI <<[#0000FF]-- onstar: produce available src 52
|||
    ICI -[#black]>> audio: Request_Source_Activation
    audio -> audio: req src 52
    ICI <<--[#black] audio: AM_AUDIO_CONN_RES granted
    ICI -[#red]>> onstar: Request_GMLAN_Connect
    ICI <<[#0000FF]-- onstar: Producing_Silence
|||
    ICI -[#black]>> audio: Request_Source_Fade_To_Connection
    audio -> audio: fade in src 52
    ICI <<--[#black] audio: ON_AU_EV_UNMUTED
    ICI -[#red]>> onstar: Request_GMLAN_Connect_Complete
loop loop until onstar exit
    ICI <<[#0000FF]-- onstar: Producing_Audio
end
== show onstar homepage ==
... delayed about 0.5s ...
    ICI <<[#0000FF]-- onstar: active menu display event
    ICI -[#red]>> onstar: req menu title
    ICI -[#red]>> onstar: req menu list
    ICI <<[#0000FF]-- onstar: menu title
    ICI <<[#0000FF]-- onstar: menu list
    ICI -->> HMI: display onstar menu
@enduml
           

3. 使用指令生成UML圖

3.1 預設生成png圖檔

  plantuml onstar.uml

3.2 生成svg圖檔

    plantuml -tsvg onstar.uml

參考資料

http://plantuml.com/zh/sequence-diagram