【UML】活动图Activity Diagram、状态机图State Machine Diagram、顺序图Sequence Diagram

news2025/7/20 10:37:53

一、活动图

1、简述

活动图和流程图很相似,但是流程图不属于UML图的一种。
类图是一种静态图,属于结构建模;活动图是一个动态图,属于行为建模。

2、元素

2.1 开始、结束、判读、活动、合并

流程图的元素很简单:圆表示开始或结束、圆角矩形框表示一个行为节点(活动)、菱形表示判断分支、箭头线表示流程走向。如下图所示:

Created with Raphaël 2.3.0 开始 我的操作 确认? 结束 yes no

活动图的示例如下,和流程图的不同点:开始和结束的表示方法、用于判断的菱形中文字描述没有在菱形里面、和判断对应的有合并菱形。
在这里插入图片描述

2.2 泳道、分叉

泳道:将不同的角色使用类似游泳比赛的泳道划分到不同方格里,可以很好的区分参与者;
分叉:菱形判断分支一次只能走一个分支,使用“粗短棒”可以引出多个分支,对应的还有汇合
在这里插入图片描述

2.3 对象

活动图中也有对象的概念,即某个活动产生的结果,使用方框表示。对象可以是活动的输出、也会是下个活动的输入。活动使用动词短语表示、对象使用名词表示

3、使用活动图的建议

1)一张活动图无法表示整个项目流程;
2)一张活动图只表示一个事情;
3)思考一个活动的所有参与者,主角有哪些;
4)先画正常情况的主干,后补充异常情况;
5)主干中的活动对应的主角是谁
6)逐步增加分支,很复杂的分支可以使用文字描述来代替
7)适当控制活动的粒度
8)先画出当前情况的流程,再画优化后的流程,比对前后差异

二、状态机图

1、简述

活动图是对行为流程的描述;状态机图是对属性值(状态)变化的描述。

2、元素

开始:使用实心圆表示
结束:使用圆环表示
状态:使用圆角矩形表示
状态转换:使用箭头表示

状态机图没有泳道的概念
在这里插入图片描述

3、建议

1)可以同时使用活动图和状态机图,从不同角度分析问题
2)尝试用状态图表达出当前流程的情况
3)注意不要用活动图的思维去分析状态机图

三、顺序图

1、简述

顺序图也称为序列图。顺序图的每一竖表示一种角色,读顺序图时,从左到右、从上到下一次了解事情的发生过程。

2、元素

对象:每一竖表示一个对象,在上面用文字描述对象的名称,一般用“[对象名]:类名”的格式表达。
生命线:对象下面的虚线
激活框:生命线上的细高矩形,也称为会话
消息:实线箭头
返回值:虚线箭头
循环、条件、可选分支:使用框将这段顺序框住
在这里插入图片描述

在这里插入图片描述

四、活动图、状态机图、顺序图取舍

如果事情是围绕某个东西展开,优先尝试使用状态机图;
如果没有复杂的流程,优先考虑使用顺序图;
如果有复杂的流程,优先考虑使用活动图;

顺序图强调对象之间的信息传递、事情发生的时间顺序;
活动图强调某件事情的流程分支;
状态机图强调某件事情本身的状态变化。

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

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

相关文章

[附源码]java毕业设计社区新冠疫情防控网站

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

WebSocket 和 Socket 的区别

WebSocket 和 Socket 的区别就像Java和JavaScript,并没有什么太大的关系,但又不能说完全没关系。可以这么说: 1.命名方面,Socket是一个深入人心的概念,WebSocket借用了这一概念;2.使用方面,完全…

java项目-第148期ssm社区疫情防控管理信息系统-ssm毕业设计_计算机毕业设计

java项目-第148期ssm社区疫情防控管理信息系统-ssm毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm社区疫情防控管理信息系统》 该项目分为2个角色,管理员、用户。 用户可以浏览前台的疫情物资,进行申请领取。申请后可以在后台…

Windows Server 2019 - 辅助DNS

配置辅助DNS实现主DNS的备用 两台虚拟机;都安装了DNS服务器 一个作为主服务器,一个作为备用服务器 主服务器的配置: 固定IP DNS管理器 安装成功后打开DNS管理器 在正向查找区域新建区域

尝试搞懂 MySQL(一)

一、MySQL 基础架构 先上个 MySQL 逻辑架构图 可以看出,整个架构分为两层:server 层 和 存储引擎层。其中: server 层:连接器、查询缓存、分析器、优化器、执行器等;存储引擎层:插件式,支持 In…

与排序相关的STL模板

今天,深度学习了排序的我决定大展身手,将另我突发八十年脑血栓的STL排序全部列举出来. 本博客除了已在文章中说明的函数外,其他默认头文件为<algorithm>. qsort 在c标准库中,此函数被(收藏)于<cstdlib> qsort 与 bsearch 的比较函数 qsort 函数有四个参数&…

华清远见上海中心22071班--11.19作业

题目&#xff1a;实现开发板点灯操作 程序要求&#xff1a; 1&#xff09;分部实现注册字符设备驱动 2&#xff09;自动创建设备节点 3&#xff09;通过结构体对led灯地址进行映射 4&#xff09;次设备号完成私有数据传参 5&#xff09;在open函数中获取到次设备号&#xff0c…

Js逆向教程-10常见代码混淆

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; Js逆向教程-10常见代码混淆 一、常见代码混淆 eval混淆AA和OO混淆JSFuck 混淆就是将正常的代码进行语法上的改变或者变量名称上的改变…

基于javaweb,ssm学生宿舍系统(带论文)

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat8.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;非前后端分离 前端技术&#xff1a;vue.jselementUI等框架实现 服务端技术&#xff1a;springspringmvcmybat…

基于stm32单片机的输入捕获测量脉宽Proteus仿真

资料编号&#xff1a;109 下面是相关功能视频演示&#xff1a; 109-基于stm32的输入捕获测量脉宽Proteus仿真(源码仿真全套资料)功能介绍&#xff1a; 采用stm32单片机作为主控&#xff0c;采用单片机的GPIO进行输入捕获&#xff0c;可以测量按键按下的低电平脉宽时间&#x…

云原生系列七【轻松入门容器基础操作】

✅作者简介&#xff1a; CSDN内容合伙人&#xff0c;全栈领域新星创作者&#xff0c;阿里云专家博主&#xff0c;华为云享专家博主&#xff0c;掘金后端评审团成员 &#x1f495;前言&#xff1a; 最近云原生领域热火朝天&#xff0c;那么云原生是什么&#xff1f;何为云原生&a…

驱动——串口工具点灯实验

通过串口工具输入命令&#xff0c;操作LED灯的点亮与熄灭 要求&#xff1a; 1&#xff09;分部实现注册字符设备驱动 2&#xff09;自动创建设备节点 3&#xff09;通过结构体对led灯地址进行映射 4&#xff09;次设备号完成私有数据传参 代码实现&#xff1a; 1、头文件…

如何使用闲置的云服务器搭建一个属于自己的私人云网盘(可道云kodbox)

你是否有过网盘下载速度只有十几KB&#xff0c;时不时出现网盘的文件被删除的问题&#xff0c;不如自己搭建一个云网盘吧&#xff0c;只需要一云服务器&#xff0c;即可搭建一个跟某度云一样的云盘。可以自由下载&#xff0c;不限制网速&#xff0c;随时都可上传下载。这篇文章…

[附源码]SSM计算机毕业设计在线文献查阅系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Redis应用问题解决(缓存穿透、击穿、雪崩、分布式锁)

Redis应用问题解决(缓存穿透、击穿、雪崩、分布式锁) 缓存穿透 问题描述 当系统中引入redis缓存后&#xff0c;一个请求进来后&#xff0c;会先从redis缓存中查询&#xff0c;缓存有就直接返回&#xff0c;缓存中没有就去db中查询&#xff0c;db中如果有就会将其丢到缓存中&…

Dockerfile构建SpringBoot项目

【1】将SpringBoot项目打包 jar包-->用JDK运行(我们这里打成jar包)war包-->用Tomcat运行 MySQL的url配置 1.useSSLfalse MySQL 8.0 以上版本不需要建立 SSL 连接的&#xff0c;需要显示关闭 2.allowPublicKeyRetrievaltrue 允许客户端从服务器获取公钥。 3.serverTime…

git3:github的使用

1.github创建远程库 创建远程库 名字一般与本地库的名字相同推送远程库push poll https://github.com/likejin123/gitdemo.git 可以创建别名&#xff0c;因为连接太长git remote -v 查看别名 当前没有别名 git remote add gitdemo https://github.com/likejin123/gitdemo.gitg…

初阶数据结构学习记录——여덟 二叉树

树 顾名思义&#xff0c;结构即为树&#xff0c;由一个根节点分出多个节点&#xff0c;这几个节点再继续往下连接其他节点形成一个个子树。不过这棵树是根朝上&#xff0c;叶朝下的。一个根不限制连接多少个节点&#xff0c;把第二层的几个节点也看成根节点&#xff0c;最终形…

2011年408大题总结

2011年408大题第41题第42题第43题第44题第45题第46题第47题第41题 关键信息&#xff1a;有向带权、上三角、行为主序 就可以解决第一二小问 关键路径&#xff1a;最长 0 1 2 3 5&#xff0c;长度为16 第42题 一如既往的暴力 最简单的思路&#xff0c;合并取中位数 所以用数组就…

[附源码]java毕业设计拾穗在线培训考试系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…