UML-活动图以及PlantUML绘制

news2024/10/5 14:06:19

介绍

活动图(英语:activity diagram)是工作流的图形化表示。活动图主要由活动和动作构成,也可以支持分支选择、迭代、并行。在 UML 中,活动图主要用于为计算性和组织性过程(即工作流)建模,相关活动之间的数据流也在其覆盖范围之内。活动图主要是用来说明控制流,不过也可以显示数据在各数据储存之间的流动。

组成元素

  1. 圆角矩形:表示“动作”
  2. 菱形:表示“决策”
  3. 粗实线:表示并行(并发性)活动的开始(分离)和结束(汇合);
  4. 黑圆:工作流的开始(初始节点);
  5. 黑圈套住的黑圆:工作流的结束(结束节点)。

PlantUML

我们再画UML的时候可以借助一些工具,比如startUML拖拽的,还有PlantUML可以使用代码生成的。这里介绍我自己比较喜欢的PlantUML工具

网站

PlantUML在线网站

基本语法

使用起来也比较简单。这里介绍一些基本的语法,一般情况下也足够满足我们的日常使用了。一般我们会以 @startuml 开始,以@enduml结束。

标题

表该图的主题,一般放在第一行,使用方式如下:

title your title

起点和结束

一般使用关键字 start 和 stop / end表示图示的开始和结束

连接顺序

活动标签 (activity label) 以冒号开始,以分号结束,文本内容支持creole wiki 语法,活动默认安装它们定义的顺序就行连接。

简单示例

在这里插入图片描述

条件语句

可以使用关键字 if,then 和 else 设置分支测试。标注文字则放在括号中。下面以一个简单的周 / 日报提醒服务为例说明

示例

@startuml
title: 周 / 日 报提醒服务
start
if (今天周五?) then (yes)
:汇总周报 \n下周规划;
else (no)
:今天日报总结;
endif
stop
@enduml

在这里插入图片描述

循环语句

你可以使用关键字 repeat 和 repeatwhile 进行重复循环

示例

@startuml
title: 部门月度会议
start
repeat
:部门月度会议;
repeat while (月末最后一个周五?)
stop
@enduml

在这里插入图片描述

并行处理

可以使用关键字 fork,fork again 和 end fork 表示并行处理
比如每周五,组长一方面需要汇总组员当日的日报,也需要汇总这一周的报告。而组员只需要每日汇总日报即可

@startuml
start
if (周五?) then (yes)
fork
:组长汇总组员日报;
fork again
:组长汇总团队周报;
end fork
else (no)
:组员汇报日报;
endif
@enduml

在这里插入图片描述

注释

一般使用note right 或者是note left来添加注释,当注释比较多时,也可以使用 note right/left + end note来标记注释模块

示例

@startuml
title: 周 / 日 报提醒服务
start
if (今天周五?) then (yes)
:汇总周报 \n下周规划;
else (no)
:今天日报总结;
note right: 组员只需要总结日报即可;
endif
stop
@enduml

在这里插入图片描述

多行注释示例

@startuml
title: 周 / 日 报提醒服务
start
if (今天周五?) then (yes)
:汇总周报 \n下周规划;
note left
  小组负责人职责:
  1、需要汇总组内周报内容
  2、规划下周内容
end note
else (no)
:今天日报总结;
note right: 组员只需要总结日报即可;
endif
stop
@enduml

在这里插入图片描述

泳道

可以使用管道符 | 来定义泳道,也可以改变泳道的颜色。

示例

以一个登录的场景作为示例。用户输入某网站的账密,服务器接受信息之后,会处理数据,并将其传递给公司内部统一的一个账户服务来校验。最后返回结果给业务服务器。如果校验成功,就将登录信息写入cookie,反之就会记下错误日志信息,最后将登录结果返回给用户侧。

@startuml
title: 用户登录
|用户|
start
:页面登录操作;
|#AntiqueWhite|网站服务器|
:接受账密;
:数据处理;
|#E9F7E9|账户中心|
:接受数据;
:校验账密;
:返回校验结果;
|网站服务器|
:接受校验结果信息;
if (校验成功?) then (yes)
:将登录信息写入cookie;
else (no)
:日志记录错误信息;
endif
|用户|
:返回登录结果;
@enduml

在这里插入图片描述

参考文档

维基百科
PlantUML
书籍-UML需求分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PaddlePaddle本地环境安装(windows11系统)

写在前面: 这里是关于win11安装PaddlePaddle的步骤和方法,建议参考官方的方法。截止2023年3月份,PaddlePaddle的版本是2.4.2。 官方参考:飞桨PaddlePaddle快速安装使用方法 建议使用Anaconda安装 ,关于Anaconda创建环境的可以借鉴:深度学习Anaconda环境搭建(比较全面)…

Exposure X7胶片滤镜调色插件免费版下载

ps是我们为图片进行调色的一种必要手法,我们可以通过添加滤镜、使用曲线、调整色相、饱和度等ps手法来对图片加以修饰。下面这篇文章就来为大家介绍一下ps调色方法主要有,ps调色插件怎么用的相关知识。 Exposure X7是一款特别好用的胶片滤镜模拟软件&am…

ESP32设备驱动-MicroSD Card驱动

MicroSD Card驱动 1、SDCard介绍 SD卡是Secure Digital Card卡的简称,直译成汉语就是“安全数字卡”,是由日本松下公司、东芝公司和美国SANDISK公司共同开发研制的全新的存储卡产品。SD存储卡是一个完全开放的标准(系统),多用于MP3、数码摄像机、数码相机、电子图书、AV器…

代码看不懂?ChatGPT 帮你解释,详细到爆!

偷个懒,用ChatGPT 帮我写段生物信息代码如果 ChatGPT 给出的的代码不太完善,如何请他一步步改好?网上看到一段代码,不知道是什么含义?输入 ChatGPT 帮我们解释下。生信宝典 1: 下面是一段 Linux 代码,请帮…

开学季平价好用电容笔有哪些?ipadpro触控笔推荐

众所周知,苹果原装的Pencil的售价由于比较高,所以很多用户都无法入手。那么,市场上会不会有一款价格上只有苹果Pencil五分之一左右、但功能几乎相同的电容笔?事实上,确实存在。国内的平替电容笔,不管是压感…

二点回调测买 源码

如图所示,两点回调测买点的效果图,这是我们常见的一种预测买点计算方法。 现将源码公布如下: DRAWKLINE(H,O,L,C); N:13; A1:REF(HIGH,N)HHV(HIGH,2*N1); B1:FILTER(A1,N); C1:BACKSET(B1,N1); D1:FILTER(C1,N); A2:REF(LOW,N)LLV(LOW,2*N1…

正交采样

文章目录【 1、欧拉公式的频谱 】【 2、模拟正交采样 】【 3、数字正交采样 】【 1、欧拉公式的频谱 】 对于余弦信号 cos(2πf0t)12ej2πf0t12e−j2πf0tcos(2\pi f_0 t)\frac{1}{2}e^{j2\pi f_0 t}\frac{1}{2}e^{-j2\pi f_0 t}cos(2πf0​t)21​ej2πf0​t21​e−j2πf0​t&a…

Shell基础 (一)

目录 一、关于shell 1、什么是shell? 2、shell入门 二、shell进阶(重点) 1、变量 2、条件判读语句 3、运算符 一、关于shell 1、什么是shell? Shell(外壳)是一个用C语言编写的程序,它是用…

《程序员面试金典(第6版)》面试题 02.08. 环路检测

题目描述 给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。若环不存在,请返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环&#xf…

如果想了解营销的最高境界,请看如何开创新品类?

如果想了解营销的最高境界,请看 如何开创新品类? 中国奶粉第一品牌飞鹤奶粉~ 品牌策划人王博总结的方法 趣讲大白话:看看高手怎么想 【安志强趣讲信息科技95期】 ******************************* 不懂品牌营销的程序员不是好厨师…

第一次使用Python for Qt中的问题

在创建带有form的python for qt的时候,使用的库是pySide6,而不是pyqt。 因此,需要安装pyside6。 Running "/usr/bin/python3 -m pip install PySide6 --user" to install PySide6. ERROR: Could not find a version that satisfi…

hivesql实现不同的求和需求【分组求和、帕累托累计求和、滑动求和】

hivesql求和,分组求和,帕累托累计求和,滑动求和 实现功能如下示例: 列s1:分组求和,这里以sku_id分组求和,E5单元格对应sku_ida01时的C列求和; 列s2:帕累托求和&#x…

X264简介-Android使用(一)

X264 简介及使用 1、简介 2、环境搭建 3、使用 4、小结 简介 官网连接:https://www.videolan.org/developers/x264.html 官方文档:https://wiki.videolan.org/Category:X264/ x264是用于编码H.264/MPEG-4 AVC视频流的免费软件库。它世界上最流行的…

每天一个linux命令:性能监控和优化命令之top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止…

将fluentMeshing网格转换为openFoam网格

简介 fluentMeshing是一个绘制源生多面体网格的强大工具,其生成的网格可以进一步导出,转换为OpenFoam格式,供OpenFoam计算。 本文将介绍如何把fluentMeshing网格转换为openFoam网格,以及其注意事项 步骤 (1&#x…

【QML】锚布局

文章目录1、锚(Anchors)2、一些示例Qt Quick中有两套与布局管理相关的类库,一种是Item Positioner(定位器),一种是Item Layout(布局) 定位器:Row(行定位器&am…

【NLP经典论文阅读】Efficient Estimation of Word Representations in Vector Space(附代码)

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

UE4 c++ Mediaplayer取消自动播放,运行时首帧为黑屏的问题

0,前言 工作需要使用C制作一个ue4的视频插件,其中一个功能是能够选择 运行时是否自动播放 视频的功能。 在实现时遇见了一个问题,取消自动播放之后,运行时首帧是没有取到的,在场景里面看是黑色的。就这个问题我想到了使…

Kubernetes k8s 笔记

核心功能 容器编排和管理:Kubernetes可以自动化容器的部署、管理和扩展,使得应用程序可以在多个容器之间进行平滑的切换。自动化负载均衡:Kubernetes可以通过将请求分配到不同的容器来平衡负载,以确保应用程序的高可用性和性能。…

【大数据离线开发】8.4 Hive的查询、操作以及自定义函数

8.5 Hive的查询 执行SQL(HQL)。HQL是SQL的一个子集 案例:创建部门表,对数据进行查询 创建部门表 create table deptno(deptno int,dname string,loc string ) row format delimited fileds terminated by ,;导入数据 load data…