程序员绘图利具-PlantUML

Posted THTG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员绘图利具-PlantUML相关的知识,希望对你有一定的参考价值。


1、工具简介

    PlantUML 是一个开源项目,基于强大的Graphviz图形渲染库,强大绘图工具,通过简单直观的语言来定义这些示意图,支持快速绘制时序图、用例图、类图、对象图、活动图 、组件图、部署图、状态图、定时图,同时还支持以下非UML图:JSON 数据、YAML 数据、网络图 (nwdiag)、线框图形界面、架构图、规范和描述语言 (SDL)、Ditaa 图、甘特图、思维导图、WBS 工作分解图、以 AsciiMath 或 JLaTeXMath 符号的数学公式、实体关系图;PlantUML 官方网站 (https://plantuml.com/zh);


2、使用安装

  • 最快速的方式
    浏览器打开,在线画图  (http://www.plantuml.com/plantuml/uml/)

  • 使用IDEA安装
    Eclipse安装&使用,参考官方文档(https://plantuml.com/zh/eclipse)

    IDEA安装&使用,参考文档 (https://www.jianshu.com/p/a6bd7e3048ef)


3、代码示例

1、时序图 - 示例代码:

@startumltitle 时序图-扩展-2
actor 用户participant 参与者1 #yellowparticipant "我的名字有点长\n参与者2" as p2
用户 -> 参与者1: http request参与者1 -> 用户: http response用户 -> p2: authentication request用户 <-- p2: authentication response用户 -> 用户: send message to myself.@enduml

程序员绘图利具-PlantUML

2、活动图 - 代码示例:

@startumlstartif (condition A) then (yes) :Text 1;elseif (condition B) then (yes) :Text 2; stopelseif (condition C) then (yes) :Text 3;elseif (condition D) then (yes) :Text 4;else (nothing) :Text else;endifstop@enduml

程序员绘图利具-PlantUML

3、状态图 -代码示例 :

@startumltitle 状态图-扩展-2
scale 350 width[*] --> State1
state State1 { [*] -> State1.1 State1.1 --> State2: State 1.1 to 2 State2 --> State1.1: State 2 to 1.1}
state State2 { [*] --> State2.1 State2.1 --> State2.1.1: State 2.1 to 2.1.1 State2.1.1 --> State2.1: State 2.1.1 to 2.1
state State2.1.1 { State2.1.1.1 -> State2.1.1.2 } -- [*] -> State2.2 State2.2 --> State2.2.1: State 2.2 to 2.2.1 State2.2.1 --> State2.2: State 2.2.1 to 2.2}@enduml

程序员绘图利具-PlantUML

4、用例图-代码示例:

@startumltitle 用例图-扩展-3
left to right directionskinparam packageStyle rectangleactor User1 <<用户>>actor User2 <<用户>>actor :I am administrator: as Admin <<管理员>>
rectangle actions { User1 -- (Start) User2 -- (Start) (Start) --> (action): Begin (action) .> (action1): Use (action2) .> (action): Extends (action) --> (End): End (End) -- Admin }@enduml

程序员绘图利具-PlantUML

5、类图-代码示例:

@startumltitle 类图-基本-1
Class1 --|> Class2Class1 -- Class3Class3 *-- Class4Class3 -o Class5Class5 ..|> Class6Class5 -> Class7Class7 <.. Class8Class7 -x Class9Class9 --+ Class10Class9 -# Class11Class11 <--* Class10@enduml

程序员绘图利具-PlantUML

6、拓扑图-代码示例;
@startuml ArchitectureDiagram
' 图片中文字居中skinparam defaultTextAlignment center' 黑白 输出格式,否则需要在后面跟上 #White' skinparam monochrome true' 颜色翻转' skinparam monochrome reverse' 手写风格skinparam handwritten true
!define LOCALURL G:\WorkSpaces\MyWorkspaces\plantuml-icon-font-sprites
!include LOCALURL/common.puml!include LOCALURL/devicons/mysql.puml!include LOCALURL/devicons/redis.puml!include LOCALURL/devicons/mongodb.puml!include LOCALURL/font-awesome-5/server.puml!include LOCALURL/font-awesome-5/database.puml!include LOCALURL/font-awesome-5/mobile_alt.puml!include LOCALURL/font-awesome-5/laptop.puml!include LOCALURL/font-awesome-5/map_marker_alt.puml!include LOCALURL/font-awesome-5/door_closed.puml!include LOCALURL/font-awesome/cloud.puml!include LOCALURL/font-awesome/fire.puml
' id,name,type cloud,node..
package "Terminal" { FA5_MOBILE_ALT(mobileVisit,mobile) #White FA5_LAPTOP(webVisit,web) #White}
FA_CLOUD(transfer,transfer,cloud) #WhiteFA_FIRE(firewall,firewall) #WhiteFA5_MAP_MARKER_ALT(mapserver,Third Map API,cloud) #White
package "Server" { package "Map Server" as myServer { FA5_SERVER(myService,Map Service,node) #White FA5_DOOR_CLOSED(loginService,Login Service,node) #White } DEV_MYSQL(mysql,MySQL,node) #White DEV_MONGODB(mongodb,MongoDB,node) #White DEV_REDIS(redis,Redis,node) #White}
Terminal -- transfertransfer -- mapservertransfer -- firewallfirewall -- ServermyServer -- mysqlmyServer -- mongodbmyServer -- redis
@enduml

程序员绘图利具-PlantUML

7、思维导图

@startmindmap* Debian** Ubuntu*** Linux Mint*** Kubuntu*** Lubuntu*** KDE Neon** LMDE** SolydXK** SteamOS** Raspbian with a very long name*** <s>Raspmbc</s> => OSMC*** <s>Raspyfi</s> => Volumio@endmindmap

更多示例,可打开官网查看  (https://plantuml.com/zh/)

4、总结

PlantUML的优点

  • 完全文本方式编辑,无需控件拖拽,自动调节图元距离,简单美观

  • 与开发平台完全无关不受平台限制,只要有PlantUML jar包就生成UML图

  • 支持多种文本编辑器、ide的集成,例如idea、eclipse、notepad++等

5、参考资料

  • PlantUML官网
    https://plantuml.com/zh/salt

  • Graphviz官网
    http://graphviz.org/

  • 简书 IDEA PlantUML 安装&使用
    https://www.jianshu.com/p/a6bd7e3048ef

                                                                          -----全文完 -----




以上是关于程序员绘图利具-PlantUML的主要内容,如果未能解决你的问题,请参考以下文章

uml绘图神器 vscode plantuml插件

[UML专题-1]:plantUML,一款免费高效为程序员而生的软件设计的绘图工具

转载--初识绘图工具plantUML

程序流程图 —— 规范与画图

PlantUML画图软件简介

PlantUML画图软件简介