zoukankan      html  css  js  c++  java
  • 在Emacs中使用plantuml画UML图

    在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

  • 相关阅读:
    【codecombat】 试玩全攻略 第二章 边远地区的森林 一步错
    【codecombat】 试玩全攻略 第十八关 最后的kithman族
    【codecombat】 试玩全攻略 第二章 边远地区的森林 woodlang cubbies
    【codecombat】 试玩全攻略 第二章 边远地区的森林 羊肠小道
    【codecombat】 试玩全攻略 第十七关 混乱的梦境
    【codecombat】 试玩全攻略 第二章 边远地区的森林 林中的死亡回避
    【codecombat】 试玩全攻略 特别关:kithguard斗殴
    【codecombat】 试玩全攻略 第二章 边远地区的森林 森林保卫战
    【codecombat】 试玩全攻略 第二章 边远地区的森林
    实验3 类和对象||
  • 原文地址:https://www.cnblogs.com/yangwen0228/p/6825560.html
Copyright © 2011-2022 走看看