当前位置: 首页 > news >正文

如何画时序图、流程图

如何画时序图、流程图

  • 流程图
    • 符号
    • 约定
  • 时序图
    • 元素
    • 交互框
    • 最佳实践

在研发或者写技术方案的时候,我们经常会画各种图。图比文字更加容易理解一些,那么如何画出优秀好看的图呢

下面简单介绍一些画图时需要注意的点

流程图

流程图是流程的图形化。所谓流程,IS09000 系列国际标准中将流程定义为一组将输入转化为输出的相互群或相互作用的活动。流程有六个要素构成,分别是流程的输入资源、流程中的若干活动、活动的相互作用、输出结果、顾客、最终流程创造的价值

一个流程会将这6个要素有序串联起来,而流程图则是承载上述程序的图形载体

符号

流程图中的每个符号都有着特定含义:
在这里插入图片描述

约定

除了符号规划、结构规划,绘制流程图过程中还要注意一些约定俗成的路径规划,比如

1,绘制流程图时,为了提高流程图的逻辑性,应遵循从左到右、从上到下的顺序排列

2,一个流程从开始符开始,以结束符结束。开始符号只能出现一次,而结束符号可出现多次。若流程足够清晰,可省略开始、结束符号

3,同一流程图内,符号大小需要保持一致,同时连接线不能交叉,连接线不能无故弯曲

4,流程处理关系为并行关系的,需要将流程放在同一高度

5,处理流程须以单一入口和单一出口绘制,同一路径的指示箭头应只有一个

一个简单的示例
在这里插入图片描述

时序图

时序图,又名序列图、循序图,是一种 UML 交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作,时序图可以清晰的说明在多个系统、多个对象中的交互逻辑

元素

我们在画时序图时会涉及7种元素:角色、对象、生命线、控制焦点()、消息(Message)、自关联消息、组合片段。其中前6种是比较常用和重要的元素,剩余的一种组合片段元素不是很常用,但是比较复杂。我们先介绍前6种元素,在单独介绍组合片段元素。

角色(Actor):系统角色,可以是人或者其他系统,子系统。以一个小人图标表示

对象(Object):

对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:

  • 对象名和类名。例如:华为手机:手机
  • 只显示类名,不显示对象,即为一个匿名类。例如::手机
  • 只显示对象名,不显示类名。例如:华为手机:

生命线(LifeLine):时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线
在这里插入图片描述

活动条(Activation):在生命线的虚线上可以用活动条来表示某种行为的开始和结束,一般用小矩形来表示
在这里插入图片描述
消息(Message):表现代表对象之间发送的信息。消息分为三种类型

  • 同步消息(Synchronous Message):消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条实线和实心箭头表示
  • 异步消息(Asynchronous Message):消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条实线加大于号表示
  • 返回消息(Return Message):返回消息表示从过程调用返回。以小于号加虚线表示
    在这里插入图片描述

交互框

UML 在2.0时在时序图中加入了交互框。交互框用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片段共有13种,这里只展示一些常用的
在这里插入图片描述

最佳实践

1,从初始消息开始画,依次画出随后消息,并给每个消息分配序号,方便理解
2,角色和对象用名词,消息用动词
3,角色放在时序图的开始位置,对象重要程度或使用频率从左到右排列。这就要根据时间的流程考虑了,是一个比较主观的事情
4,活动条两端要以消息元素封顶,控制焦点不要超过消息元素,错误示例:
在这里插入图片描述

http://www.xdnf.cn/news/1447687.html

相关文章:

  • android集成unity后动态导入 assetsBundle
  • Android创建demo脚本
  • CSS中使用 HSL(Hue, Saturation, Lightness) 动态生成色值
  • Linux 对目录授予用户读写权限的方法
  • 信创MySQL到达梦数据库的SQL语法转换技术解析
  • AWK命令完全指南:从理论到实战的文本处理利器
  • Spring Boot + Nacos 配置中心示例工程
  • tcpdump用法
  • Best Video网页官网入口 – 免费在线网页视频解析下载器
  • 认识HTML
  • 用资产驱动方法构建汽车网络安全档案
  • VPS云服务器安全加固指南:从入门到精通的全面防护策略
  • TypeScript 内置工具类型大全(ReturnType、Omit、Pick 等)
  • 【Unity项目经验分享】实现左右分屏裸眼3D程序
  • 数据结构之加餐篇 -顺序表和链表加餐
  • 从 0 到 1 实现 PyTorch 食物图像分类:核心知识点与完整实
  • 基础看门狗--idf开发esp32s3
  • PNP具身解读——RSS2025论文加州伯克利RLDG: 通过强化学习实现机器人通才策略提炼。
  • 基于物联网的智慧用电云平台构建与火灾防控应用研究
  • 复杂网络环境不用愁,声网IoT多通道传输实战经验丰富
  • Coze使用教程-插件
  • 袋鼠云产品功能更新报告14期|实时开发,效率再升级!
  • Kafka面试精讲 Day 6:Kafka日志存储结构与索引机制
  • 浏览器插件开发--通过调用本地nmap实现nmap插件扫描
  • python如何解决html格式不规范问题
  • Android使用内存压力测试工具 StressAppTest
  • [嵌入式embed][Qt]Qt5.12+Opencv4.x+Cmake4.x_用Qt编译linux-Opencv库 测试
  • 显存与内存
  • 【甲烷数据】MethaneSAT 卫星遥感数据
  • 使用DCGAN实现动漫图像生成