PhpStorm中绘画UML

IDE支持

  • Phpstormcookie

    • 在Plugins中 安装PlantUML integration插件测试

    • http://www.graphviz.org/网站下载graphviz.exe并安装(这个软件能够支持更多的UML语法)网站

    • 将graphviz安装目录下的dot.exe路径添加到PlantUML的设置中spa

文档

  • 文档地址:http://plantuml.com/插件

  • 建议使用活动图-Activity-bate语法:活动图Activity-Betacode

  • 活动图(新语法)orm

当前活动图(activity diagram)的语法有诸多限制和缺点,好比代码难以维护。因此从V7947开始提出一种全新的、更好的语法格式和软件实现供用户使用(beta版)。就像序列图同样,新的软件实现的另外一个优势是它再也不依赖与Graphviz。
新的语法将会替换旧的语法。然而考虑到兼容性,旧的语法仍被可以使用以确保向前兼容。
可是咱们鼓励用户使用新的语法格式。blog

语法

基础

  • @startuml@enduml
    开始、结束标记,表示UML解析的部分文档

  • startend
    表示图示的开始和结束。图示的开始和结束。get

  • :Hello world;
    活动标签(activity label)以冒号开始,以分号结束。活动默认安装它们定义的顺序就行链接。

  • ifthenelseelseif
    设置分支测试。标注文字则放在括号中。

  • repeatrepeatwhile 重复循环。

  • whileendwhile进行while循环。还能够在关键字endwhile后添加标注,还有一种方式是使用关键字is

  • forkfork againend fork表示并行处理。

  • noteend notefloating 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

一个例子

相关文章
相关标签/搜索