PlantUML系列文章

PlantUML 绘制时序图https://blog.csdn.net/zhangwei_david/article/details/125451459 PlantUML绘制类图https://blog.csdn.net/zhangwei_david/article/details/125477021


目录

一、什么是活动图

二、活动图构成

2.1 活动图示例

三、如何使用PlantUML 绘制时序图

3.1 开始/停止/结束/

3.1.1示例代码

3.2 普通活动

3.3 条件选择

3.3.1 if/else

3.3.3 switch

3.4 循环

3.4.1 while

3.4.2 repeat

3.5并行与分割

3.5.1 并行

3.5.2 分割

3.6泳道

3.7样式与颜色

3.7.1  改变活动颜色

3.7.2 改变连接线颜色

四、综合运用


一、什么是活动图

活动图是常用的动态视图,是用来描述在具体场景下如何做特定的事情;通过可视化的工具,描绘现实生活中具体事物运转流程,输出让人更直观理解,便于沟通的内容。

二、活动图构成

一般活动图包含一下几个部分

  1. 起点
  2. 活动
  3. 判断
  4. 泳道
  5. 执行顺序
  6. 结束

2.1 活动图示例

下面就是一副以在充值APP上进行一次手机充值的活动图

三、如何使用PlantUML 绘制时序图

3.1 开始/停止/结束/

说明 语法
开始 start
结束 end
停止 stop
杀死活动 kill
摆脱活动 detach

3.1.1示例代码

!pragma useVerticalIf on
startif(条件A) then(yes):条件A操作;detachelseif(条件B) then(yes):条件B操作;killelse(default): 默认操作;endif
stop

效果图:

3.2 普通活动

普通活动最简单几本语法就是

:活动说明;

3.3 条件选择

条件选择主要就是ifelse和switch

3.3.1 if/else

条件判断的语法格式是 if(...) then(...) elseif(...) else endif.

上文中的示例图就是基于ifelse条件选择

3.3.3 switch

switch的语法格式如下:

start
switch(测试)
case (条件A)
:TextA;
case (条件B)
:TextB;
case (条件C)
:TextC;
endswitch
stop

3.4 循环

循环主要就是while和repeat,goto还是属于实验性质,效果不佳

3.4.1 while

下面示例就是while的基本语法

 startwhile(更多数据?) is(not empty):读取数据;:生成图片;endwhile(empty)stop

3.4.2 repeat

下面示例就是repeat的基本语法

start
repeat:读取数据;:生成图片;
repeat while (更多数据?)stop

3.5并行与分割

3.5.1 并行

可以使用forkfork againend fork 或者 end merge 等关键字表示并行处理。

首先看看简单的并行处理(fork .... fork again.... end fork)

start
fork:行为 A;
fork again:行为 B;
end fork {或}
stop

在看看合并以及结束子行为是如何处理的。

start
fork:行为 A;
fork again:行为 B;end
fork again:行为 C;detach
fork again:行为 D;stop
fork again:行为 E;kill
fork again:行为 F;
end merge
stop

3.5.2 分割

使用 splitsplit again 和 end split 关键字去表达分割处理,下文通过使用split来处理多输入和多输出。

'多输入'
split
-[hidden]->:行为 A;
split again
-[hidden]->:行为 B;
end split-[#green,dashed]->
:处理分发;
split
-[#blue]->:行为 A;kill
split again#red:行为 B;detach
split againend
split again
stop
end split

3.6泳道

泳道使用“|泳道名称|”来定义泳道

3.7样式与颜色

3.7.1  改变活动颜色

对于活动的颜色可以 #颜色:行为;来改变行为颜色

#red:行为 B;

3.7.2 改变连接线颜色

可以使用 -[#颜色,线型]-> 来改变连接线类型和颜色

如:

语句 说明
-[#red,dashed]-> 红色虚线
 -[#blue,dotted]-> 蓝色点状线
-[#red]-> 红色实线

3.7.3 改变泳道颜色

|#lightYellow|用户|

四、综合运用

下一就是文章开头活动图的代码

@startuml
|#lightYellow|用户|
start
:输入手机号;
:选择话费套餐;
|#lightBlue|充值APP|
:生成,提交订单;
|#lightgray|服务商|
:生成订单;
|充值APP|
:展示支付方式;
|用户|
:选择支付方式;
:支付套餐金额;
|服务商|
:支付结果通知;
split
:更新订单状态;
|充值APP|
:展示支付结果;
|用户|
:获取支付结果;
kill
split again|服务商|-[dashed]->if(支付成功) then(成功):向运营商发起充值请求;|#pink|运营商|:接收到充值请求;:执行充值;:通知充值结果;|服务商|:更新订单状态;|充值APP|:展示充值结果;|用户|:获取充值结果;floating note left #red:充值流程结束endelse(失败)|服务商|:失败处理流程;kill@enduml

PlantUML绘制活动图相关推荐

  1. PlantUML绘制类图

    系列文章目录 PlantUML绘制活动图https://blog.csdn.net/zhangwei_david/article/details/125507374 PlantUML 绘制时序图htt ...

  2. PlantUML 绘制时序图

    PlantUML系列文章 PlantUML绘制活动图https://blog.csdn.net/zhangwei_david/article/details/125507374PlantUML绘制类图 ...

  3. Visual Paradigm 教程[UML]:如何在UML中绘制活动图?

    下载Visual Paradigm最新版本 活动图由活动和状态之间的活动,状态和转换组成,描述了如何协调活动以提供服务,例如,单个用例中的事件如何相互关联,或者用例集合如何协调创建 组织的工作流程. ...

  4. Visio绘制活动图

    原文地址为: Visio绘制活动图 为什么要绘制活动图? 当我们真正地进入了编码阶段,我们写程序的时候需要按照一定的业务逻辑来组织我们的代码.这就要求我们要细化一个用例所需要涉及的业务流程.活动图用来 ...

  5. 使用 PlantUML 绘制时序图

    目录 一.简介 二.安装 1.1 安装插件到PyCharm 2.2 验证 2.2.1 插件检查是否安装 2.2.2 新建PlantUML文件 一.简介 Github地址:https://github. ...

  6. plantuml绘制UML图

    转载自:https://www.cnblogs.com/youlangta/p/7878777.html Table of Contents 前言 什么是PlantUML 在Emacs里配置Plant ...

  7. plantuml 依赖_使用PlantUML绘制类图

    本文基于sublime的PlantUML插件绘制类图.如需了解插件安装,请点击 Sublime安装PlantUML插件 类的UML表示 使用UML表示一个类,主要由三部分组成. 类名 . 属性 . 方 ...

  8. PlantUML:一款让你爽到起飞的高效代码绘制时序图工具

    背景 对于工作中遇到一些复杂的业务逻辑场景,需要借助图形工具去准确的表达,会更高效的理解和梳理复杂的逻辑,同时在跟领导和同事汇报时也更能清晰.准确.快速的表达想法以及方案.比如梳理源码常用的时序图以及 ...

  9. UML模型中的图-行为图【状态图、活动图】

    前言 前面的博文为大家分享了UML模型中的用例图.静态图.接下来继续为大家分享UML模型中的图-行为图. 正文 行为图用来描述系统的动态模型和对象之间的交互关系.行为图在UML模型中也是一个语义上分类 ...

最新文章

  1. chrome调试的JavaScript官方技巧
  2. 如何删除tmp计算机桌面,Win10系统中tmp文件删除不了应该如何解决?
  3. 窥探Swift编程之强大的Switch
  4. String.valueOf(Object)与Objects.toString(Object)
  5. 认识死锁之生产者与消费者
  6. react使用antd实现日期与时间的不可选定
  7. UVA10602 Editor Nottoobad【贪心】
  8. python数据库操作——NoSQL数据库之连接MongoDB、Redis数据库
  9. 计算机无法关机 总是自动启动,告诉你win10电脑关机后自动开机怎么解决
  10. 如何制作linux安装光盘,新手看招 如何制作Linux系统的安装光盘?
  11. Android8.1 MTK平台 修改系统默认语言和默认输入法
  12. 使用IDEA编写Java程序时遇到的小提醒Common part can be extracted from ‘if‘
  13. 面试题-评价一下你之前公司的领导、同事或之前学校中的导师、同学
  14. win10升级Java版本
  15. 梅科尔工作室-王宣-鸿蒙笔记1
  16. 编程求圆的面积和周长(c语言)
  17. Macbook磁盘空间不足怎么办?
  18. 抖音小程序可做类目--资讯
  19. 深入理解——字节、字符/字符串、Unicode 字符集
  20. JS中String字符串

热门文章

  1. 【自考】网络经济与企业管理(一)——泛读
  2. WWDC 2012 Session笔记——AutoLayout(自动布局)入门
  3. 漏洞复现 - - - 未授权访问漏洞Redis
  4. 汽车销售管理系统[C/S版本]-Java课程设计
  5. 2023-2028年中国胶原蛋白行业深度调研与投资趋势分析报告
  6. 2023年全国DAMA-CDGP数据治理专家认证线上班招生简章
  7. 智慧树怎么导入教务系统的课_智慧树网学习手册导入选课之APP版.doc
  8. 掘金 Android 文章精选合集
  9. 孩子为什么要上托育园?这8项技能,在家学不到!
  10. Ubuntu 18.04.2 安装 x11vnc