在Emacs中使用plantuml畫UML圖


在Emacs中使用plantuml畫UML圖

plantuml是一款基於文字生成UML圖形的組件。之所以在已經有Visio以及其他圖形化的UML畫圖軟件的情況下,我們還需要使用plantuml這種基於文字的畫圖軟件,是因為它可以自動排版,只需要寫出核心邏輯,便可以自動的生成圖形。所以,當熟悉之后,它的作圖效率會更高。

2 配置:

1: ;; active Org-babel languages
2: (org-babel-do-load-languages
3:  'org-babel-load-languages
4:  '(;; other Babel languages
5:  (plantuml . t)))
6: 
7: (setq org-plantuml-jar-path
8:       (expand-file-name "/path/to/plantuml.jar"))

3 常見的問題

4 例子及語法

4.1 時序圖

title 時序圖

== 鑒權階段 ==

Alice -> Bob: 請求
Bob -> Alice: 應答

== 數據上傳 ==

Alice -> Bob: 上傳數據
note left: 這是顯示在左邊的備注

Bob --> Canny: 轉交數據
... 不超過 5 秒鍾 ...
Canny --> Bob: 狀態返回
note right: 這是顯示在右邊的備注

Bob -> Alice: 狀態返回

== 狀態顯示 ==

Alice -> Alice: 給自己發消息

http://images2015.cnblogs.com/blog/717724/201705/717724-20170508162408504-1228246226.jpg

4.2 用例圖

title 用例圖
left to right direction
actor 消費者
actor 銷售員
rectangle 買單 {
消費者 -- (買單)
(買單) .> (付款) : include
(幫助) .> (買單) : extends
(買單) -- 銷售員
}

http://images2015.cnblogs.com/blog/717724/201705/717724-20170508162410519-47433603.jpg

4.3 流程圖

start
:"步驟1處理";
:"步驟2處理";
if ("條件1判斷") then (true)
    :條件1成立時執行的動作;
    if ("分支條件2判斷") then (no)
        :"條件2不成立時執行的動作";
    else
        if ("條件3判斷") then (yes)
            :"條件3成立時的動作";
        else (no)
            :"條件3不成立時的動作";
        endif
    endif
    :"順序步驟3處理";
endif

if ("條件4判斷") then (yes)
:"條件4成立的動作";
else
    if ("條件5判斷") then (yes)
        :"條件5成立時的動作";
    else (no)
        :"條件5不成立時的動作";
    endif
endif
stop

http://images2015.cnblogs.com/blog/717724/201705/717724-20170508162411613-1609349560.jpg

4.4 組件圖

package "組件1" {
    ["組件1.1"] - ["組件1.2"]
    ["組件1.2"] -> ["組件2.1"]
}

node "組件2" {
    ["組件2.1"] - ["組件2.2"]
    ["組件2.2"] --> [負載均衡服務器]
}

cloud {
    [負載均衡服務器] -> [邏輯服務器1]
    [負載均衡服務器] -> [邏輯服務器2]
    [負載均衡服務器] -> [邏輯服務器3]
}

database "MySql" {
    folder "This is my folder" {
        [Folder 3]
    }

    frame "Foo" {
        [Frame 4]
    }
}

[邏輯服務器1] --> [Folder 3]
[邏輯服務器2] --> [Frame 4]
[邏輯服務器3] --> [Frame 4]

http://images2015.cnblogs.com/blog/717724/201705/717724-20170508162412597-706217544.jpg

4.5 狀態圖

scale 640 width

[*] --> NotShooting

state NotShooting {
    [*] --> Idle
    Idle --> Processing: SignalEvent
    Processing --> Idle: Finish
    Idle --> Configuring : EvConfig
    Configuring --> Idle : EvConfig
}

state Configuring {
    [*] --> NewValueSelection
    NewValueSelection --> NewValuePreview : EvNewValue
    NewValuePreview --> NewValueSelection : EvNewValueRejected
    NewValuePreview --> NewValueSelection : EvNewValueSaved
    state NewValuePreview {
        State1 -> State2
    }
}

http://images2015.cnblogs.com/blog/717724/201705/717724-20170508162413769-1048623518.jpg

Date: 2017-05-08 15:14

Created: 2017-05-08 周一 16:24

Emacs 26.0.50 (Org mode 8.2.10)

Validate


免責聲明!

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



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