PlantUML 简介

PlantUML 是一个开源项目,支持快速绘制时序图、用例图、类图、活动图、组件图、状态图、对象图、部署图等。同时还支持非 UML 图的甘特图、架构图等。例如下面等用例图:

@startuml

P: PENDING

P: Pending for result

N: NO_RESULT_YET

N: Did not send the KYC check yet

Y: APPROVED

Y: KYC check successful

R: REJECTED

R: KYC check found the applicant's

R: information not correct

X: EXPIRED

X: Proof of Address (POA) too old

[*] --> N : Card application received

N --> P : Submitted the KYC check

P --> Y

P --> R

P --> X : Proof of Address (POA) too old

P --> X : explicitly by KYC

Y --> [*]

R --> [*]

X --> [*]

@enduml

@startuml

skinparam rectangle {

BackgroundColor DarkSeaGreen

FontStyle Bold

FontColor DarkGreen

}

:User: as u

rectangle Tool as t

rectangle "Knowledge Base" as kb

(Robot Framework) as rf

(DUT) as dut

note as ts

test script

end note

note as act

query

&

action

end note

note as t_cmt

- 执行测试脚本

- 按照知识库响应消息

end note

note as kb_cmt

- 根据当前消息确定响应方法

- 根据上下文填充消息

- 保存信息到相关上下文

end note

u --> rf

rf =right=> ts

ts =down=> t

kb <=left=> act

act <=up=> t

t = dut

t_cmt -- t

kb_cmt -left- kb

@enduml

@startuml

interface Command {

execute()

undo()

}

class Invoker{

setCommand()

}

class Client

class Receiver{

action()

}

class ConcreteCommand{

execute()

undo()

}

Command

Client -right-> Receiver

Client --> ConcreteCommand

Invoker o-right-> Command

Receiver

@enduml

一款还算不错的绘图工具-- Plantuml, 它本质上是也算一门可以快速画图的设计语言,学习起来也很方便。可以在http://plantuml.com/网站上体验一下。

在vscode, webstorm都有相关的插件可以使用。

时序图

时序图相对来说是平常比较经常画的一种设计图稿,在这里记录一下plantuml中相关的语法。

基本用法

@startuml

A -> B: do something

B -> A: do something

@enduml

设置不同的角色

时序图角色可以分为: actor, boundary, control, entity, database,每种角色呈现的图形也是不一样的。

@startuml

actor Foo1

boundary Foo2

control Foo3

entity Foo4

database Foo5

collections Foo6

Foo1 -> Foo2 : To boundary

Foo1 -> Foo3 : To control

Foo1 -> Foo4 : To entity

Foo1 -> Foo5 : To database

Foo1 -> Foo6 : To collections

@enduml

不用的箭头样式

@startuml

Bob ->x Alice

Bob -> Alice

Bob ->> Alice

Bob -\ Alice

Bob \\- Alice

Bob //-- Alice

Bob ->o Alice

Bob o\\-- Alice

Bob Alice

Bob o Alice

Bob -[#red]> Alice : hello

Alice -[#0000FF]->Bob : ok

@enduml

分页

@startuml

Alice -> Bob : message 1

Alice -> Bob : message 2

newpage

Alice -> Bob : message 3

Alice -> Bob : message 4

newpage A title for the\nlast page

Alice -> Bob : message 5

Alice -> Bob : message 6

@enduml

分段

@startuml

== Initialization ==

Alice -> Bob: Authentication Request

Bob --> Alice: Authentication Response

== Repetition ==

Alice -> Bob: Another authentication Request

Alice

@enduml

生命线

@startuml

participant User

User -> A: DoWork

activate A #FFBBBB

A -> A: Internal call

activate A #DarkSalmon

A -> B: << createRequest >>

activate B

B --> A: RequestCreated

deactivate B

deactivate A

A -> User: Done

deactivate A

@enduml

图例注脚等

@startuml

header Page Header

footer Page %page% of %lastpage%

title Example Title

Alice -> Bob : message 1

note left: this is a first note

Alice -> Bob : message 2

@enduml

C4架构图

C4 model是一种软件架构图的设计方法,具体介绍可以参考C4 architecture model。利用C4-PlantUML工具,可以画出很多很不错的架构图。

C4模型分为Context, Container, Component和Code 4个组成部分,我们一般在画图的时候主要用到前三个组成部分。

@startuml C4_Elements

!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Context.puml

!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Container.puml

!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Component.puml

System(systemAlias, "System", "这可以看作系统上下文(Context)")

Container(containerAlias, "Container", "这是Container")

Person(personAlias, "Person", "这可以看作是组件(Component)")

Rel(personAlias, containerAlias, "Label", "设置关联关系")

@enduml

参考资料

Kotlin 开发者社区

越是喧嚣的世界,越需要宁静的思考。

合抱之木,生于毫末;

九层之台,起于垒土;

千里之行,始于足下。

积土成山,风雨兴焉;

积水成渊,蛟龙生焉;

积善成德,而神明自得,圣心备焉。

故不积跬步,无以至千里;

不积小流,无以成江海。

骐骥一跃,不能十步;

驽马十驾,功在不舍。

锲而舍之,朽木不折;

锲而不舍,金石可镂。

蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。

蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。

plantuml样式_PlantUML 简明教程相关推荐

  1. plantuml样式_PlantUML之活动图

    基本语法 每个普通节点:冒号开头,分号结尾 活动图的起始和结尾:start.end或stop start :case1; :case2; end 条件语句 start if(predicate?) t ...

  2. plantuml样式_PlantUml

    顺序图: 顺序图用 -> , –>, ( * ) –> Alice :( * ) 表示起点 注释 '这是个单行注释 /'这是个多行注释 '/ 参与者 actor Foo1 bound ...

  3. React DnD简明教程

    React DnD简明教程 概述 React Dnd不同于其他的拖拽库,如果你以前没有用过它可能会被吓到.然而,一旦你了解了它设计的一些核心概念,它将变得有意义.我建议你在阅读文档其他部分之前,先阅读 ...

  4. 【从零入门 Web 前端】HTML5 + CSS 简明教程

    HTML + CSS 就是当代网页的基石.全世界的网站,无论其服务器端的语言是什么,前端都使用了 HTML + CSS. 随着互联网行业的快速发展,前端这一职位也越来越火热,前端工程师的高薪资,也让越 ...

  5. duilib入门简明教程 -- 部分bug (11) (转)

    原文转自:http://www.cnblogs.com/Alberl/p/3344886.html 一.WindowImplBase的bug 在第8个教程[2013 duilib入门简明教程 -- 完 ...

  6. ArcGIS Pro 简明教程(2)基础操作和简单制图

    ArcGIS Pro 简明教程(2)基础操作和简单制图 By 李远祥 本章主要介绍ArcGIS Pro如何加载数据并进行简单的地图制作,以基本的操作为主. 上一章节介绍过,ArcGIS Pro是可以直 ...

  7. HTML5简明教程系列之HTML5 表格与表单(二)

    HTML的第二弹也来了,最近高产似母猪,状态也不错,代码来源为实验课.本期主要内容为:HTML表格与DIV应用.HTML表单.上期基础部分的传送门: HTML5简明教程系列之HTML5基础(一)_Th ...

  8. ArcGIS Pro 简明教程(1)Pro简介

    ArcGIS Pro 简明教程(1)Pro简介 ArcGIS Pro已经发布了相当的一段时间了,截至笔者写这系列文章的时候已经是1.3版本了,已经是相当完善的一个版本,基本上已经完成了原来ArcGIS ...

  9. HijackThis反浏览器劫持软件--简明教程

    近来很多网友由于误点不良网址,导致IE主页被改成英文搜索页或其它恶意网页,通常的方法诸如修改注册表.用上网助手或杀毒软件等是不能解决的,修改注册表,一点刷新就会恢复成原样,用上网助手等软件修复要么是根 ...

最新文章

  1. 2016年CCPC/ICPC比赛总结
  2. sleep防止CPU占用100%
  3. 深入php-fpm的两种进程管理模式详解
  4. 一文搞懂JAVA与GO垃圾回收
  5. C++和JNI的数据转换
  6. C语言:从键盘输入三个数,求最值问题
  7. python并发编程 协程_Python并发编程协程之Gevent
  8. 软件测试按照各种方式分类
  9. jQuery入口函数的写法
  10. 【公众号】怎样写好公众号第一篇文章?
  11. Map获取key值和value值
  12. Android 获取手机Ram 和 Rom大小
  13. java打地鼠小游戏
  14. apicloud——云编译失败
  15. 计算机毕业设计SSM餐厅管理系统【附源码数据库】
  16. linux 文件添加标签,SELinux——有趣的标签
  17. rk3288芯片简介
  18. 【电子电路基础实验】LED点阵(上--硬件部分)
  19. InChat版,仅仅两个接口实现自己的IM系统(可兼容)
  20. Linux基本命令讲解

热门文章

  1. Backtrack的安装配置
  2. SwiftSuspenders 1.6-深入浅出1
  3. BCH将于9月1日进行压力测试
  4. 文化创意企业纷纷跨界融合,软件资产管理奠定安全基础
  5. 基于WeUI的Angular2开发
  6. nodejs 循环中操作需要同步执行解决方案
  7. sql server标识一个字符在这一列中是第几次出现
  8. svn import无法上传库文件lib.a
  9. iptables 限制网速
  10. Fedora下如何删除以前的老内核