首页 > 其他分享 >流程图 泳道图 UML交互图

流程图 泳道图 UML交互图

时间:2024-10-16 14:11:28浏览次数:6  
标签:片段 流程图 泳道 时序 程序员 消息 UML 交互

 

程序员这生必须掌握的两种图形

 

 

目录

 

背景

  • 从客观上来看,程序员经常会碰到这样的情况:很简单的一个需求用文字罗列了很大篇幅,词不达意,讲不到重点,且逻辑混乱。

  • 从主观上来讲:程序员是一项需要终身学习的职业:包括学习各种技能、工具、训练自身思维、提升创造能力等,在学习过程中各种各样的知识需要厘清脉络。

图解思考

图解思考已经成为了技术人员的一项基础技能。何谓图解思考:就是用画图的方式来直观表示出我们思考的内容,这有利于我们对所思考问题的解答。
常言道,一图胜千言,在表达技术逻辑上,我们必须要掌握以下两种图形:流程图与结构图。

流程图

流程图是一个动态关系,描述的是固有规律的活动个体,通过一系列特定逻辑的设定,完整体现价值的过程。

基本流程图

“流程”+“图”,能够让我们直观上看到重点信息及其中的逻辑关系:

泳道图属于流程图
比如在理清敏捷开发的脉络这篇文章中,通过流程图可以清晰地将多个个体的活动与前后逻辑关系表达清楚。
在这里插入图片描述

程序时序图

再比如:SpringBoot实现微信小程序登录这篇文章中引用到了微信小程序官方的登录交互流程图,通过该图,开发者可以根据图中的时序及逻辑关系,顺利地完成架构设计与程序开发。
在这里插入图片描述

流程图工具

除了我们经常用的mircosoft office visio客户端工具外,再介绍一个网站:processOn,利用该网站无需担心下载和更新的问题,不管Mac还是Windows,一个浏览器就可以随时随地的作图。
在这里插入图片描述

结构图

流程图帮我们理清了价值流,程序时序、数据流等动态关系。那结构图就是让程序员进行头脑风暴,把某项事物进行分层分解,形成结构化思维。
比如在Java集合架构常用类与Iterator迭代器文章中,通过结构图可以清晰表达了架构的层次关系及常用类型,这里的图形表示比文字描述更能达意。

层次结构图

在这里插入图片描述

思维导图

结构图的作用不止如此,比如我们一直用到的思维导图:思维导图,不止是一个整理和记忆工具,而是思考工具。
比如java程序员经常整理地技术栈的思维导图, 通过思维导图的推导,可以扩展出了更大的空间。
在这里插入图片描述
##### 生活中的应用
不光是在工作中,在生活中我们也可以运用结构化思维进行思考:
在这里插入图片描述

结语

思考问题的时候,如果只是在脑子里面想,那么只是反反复复围绕少数几个概念或者想法绕来绕去;如果这时你把想法随手画下来,边画边想的过程中可能会出人意料地诞生出许多新的思路。

绘制草图是建筑设计师、工业设计师的一项必备技能,设计师不仅用草图表现自己的思考,更用草图推进自己的思考。同理绘制流程图与结构图,也是程序员必备的一项技能,流程图与结构图的运用,能对思维进行特殊训练,对逻辑进行清晰表达。将思维转化为图像,让思考形成自己的形状是程序员这生必须掌握的技能。

https://www.cnblogs.com/zhuhuix/p/12970401.html#%E6%B5%81%E7%A8%8B%E5%9B%BE%E5%B7%A5%E5%85%B7

 

 

===================================================================================================================================================

程序员必备画图技能之——时序图

 

什么是时序图#

时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

使用场景#

时序图的使用场景非常广泛,几乎各行各业都可以使用。当然,作为一个软件工作者,我这边主要列举和软件开发有关的场景。

1. 梳理业务流程

一般的软件开发都是为了支撑某个具体的业务。有时候业务的流程会比较复杂,涉及到多种角色,这时就可以使用时序图来梳理这个业务逻辑。这样会使业务看起来非常清晰,代码写起来也是水到渠成的事情了。

2. 梳理开源软件

作为一个合格的程序员,阅读源代码的能力一定要过关。一般成熟框架的源代码调用深度都比较深,类之间的调用关系也比较复杂。我喜欢用时序图来梳理框架中这些对象之间的关系。比如再看Tomcat启动流程的过程中,我就时序图梳理了各个组件之间的关系,看起来层次非常清楚,也便于记忆。

img

时序图的角色#

我们在画时序图时会涉及下面7种元素:

  • 角色(Actor)

  • 对象(Object)

  • 生命线(LifeLine)

  • 控制焦点(Activation)

  • 消息(Message)

  • 自关联消息

  • 组合片段。

其中前6种是比较常用和重要的元素,最后的组合片段元素不是很常用,但是比较复杂。我们先介绍前6种元素,再单独介绍组合片段元素。

1. 角色(Actor)

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

2. 对象(Object)

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

  • 对象名和类名。例如:华为手机:手机、loginServiceObject:LoginService;

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

  • 只显示对象名,不显示类名。例如:华为手机:、loginServiceObject:。

3. 生命线(LifeLine)

时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表。

4. 控制焦点(Activation)

控制焦点代表时序图中在对象时间线上某段时期执行的操作。以一个很窄的矩形表示。

5. 消息(Message)

表示对象之间发送的信息。消息分为三种类型。

  • 同步消息(Synchronous Message)
    消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条实线和实心箭头表示。

  • 异步消息(Asynchronous Message)

    消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条实线和大于号表示。

  • 返回消息(Return Message)
    返回消息表示从过程调用返回。以小于号和虚线表示。

6. 自关联消息

表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。以一个半闭合的长方形+下方实心剪头表示。

下面举例一个时序图的列子,看下上面几种元素具体的使用方式。

7. 组合片段

组合片段用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片段共有13种,名称及含义如下:

组合名称组合含义
ref 引用其他地方定义的组合片段
alt 在一组行为中根据特定的条件选择某个交互
opt 表示一个可选的行为
break 提供了和编程语言中的break类拟的机制
par 支持交互片段的并发执行
seq 强迫交互按照特定的顺序执行
strict 明确定义了一组交互片段的执行顺序
neg 用来标志不应该发生的交互
region 标志在组合片段中先于其他交互片断发生的交互
ignore 明确定义了交互片段不应该响应的消息
consider 明确标志了应该被处理的消息
assert 标志了在交互片段中作为事件唯一的合法继续者的操作数
loop 说明交互片段会被重复执行

组合片段的功能平时用的不是很多,具体使用时可以参考本文最后关于组合片段的文章,这边不做深入介绍了。

画图工具推荐#

processon

  • ProcessOn是一个在线作图工具的聚合平台,它可以在线画流程图、思维导图、UI原型图、UML、网络拓扑图、组织结构图等等,您无需担心下载和更新的问题,不管Mac还是Windows,一个浏览器就可以随时随地的发挥创意,规划工作;
  • 您可以把作品分享给团队成员或好友,无论何时何地大家都可以对作品进行编辑、阅读和评论;
  • ProcessOn不仅仅汇聚着强大的作图工具,这里还有着海量的图形化知识资源我们尽可能的将有价值的知识进行梳理,传递到您的眼前。

参考#

https://www.cnblogs.com/54chensongxia/p/13236965.html

===================================================================================================================================================

 

 

 

 

 

参考:

https://www.cnblogs.com/zhuhuix/p/12970401.html#%E6%B5%81%E7%A8%8B%E5%9B%BE%E5%B7%A5%E5%85%B7

 

标签:片段,流程图,泳道,时序,程序员,消息,UML,交互
From: https://www.cnblogs.com/rebrobot/p/18469811

相关文章

  • 小帅和小美有容-UMLChina建模知识竞赛第5赛季第16轮
    DDD领域驱动设计批评文集做强化自测题获得“软件方法建模师”称号《软件方法》各章合集参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。只要最先答对前3题,即可获得本轮优胜。如果有第4题,第4题为附加题,对错不影响优胜者的判定,影响的是......
  • 可视化流程图的UI设计展示参考
              ......
  • draw 使用 基本流程图介绍
      https://www.cnblogs.com/youjianschool/p/14113383.html基本流程图介绍 一、什么是流程图流程图概念:流程图是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。二、为什么要画流程图那么,流程有哪些作用呢?我们为什么要画流程图呢?首先,流程图作为......
  • 比CesiumLab还好用的工具:免费的倾斜摄影OSGB/3Dtiles编辑转换发布平台
    GIS数据处理工具在现代技术与应用中扮演着至关重要的角色,它们不仅是连接原始地理信息与可分析、可视化数据的桥梁,更是推动地理信息系统(GIS)在各个行业领域深入发展与应用不可或缺的关键工具。选择一款合适的工具直接关系到数据处理、分析和展示的效率和精度,本文将对比GISBox、Ce......
  • 用文字“画出”流程图:用 AI+Mermaid.js 构建出你心中的可视化世界
    Mermaid介绍首先,什么是Mermaid?Mermaid.js是一款开源流程图/序列图的文本制作工具,它允许你使用简单的文本语法来创建各种类型的图表。无论你是开发者、学生还是普通用户,Mermaid.js都能帮助你将复杂的信息以直观、易懂的方式呈现出来。在AI技术的加持下,Mermaid现已支持......
  • 五款倾斜摄影与三维数据处理工具介绍:GISBox、Cesiumlab、OSGBLab、灵易智模、倾斜伴侣
    随着三维数据处理技术的广泛应用,尤其是在城市规划、地理信息系统(GIS)、工程监测等领域,处理倾斜摄影、三维建模以及大规模数据管理的需求日益增加。以下是五款我精心挑选的倾斜摄影和三维数据处理工具——GISBox、Cesiumlab、OSGBLab、灵易智模和倾斜伴侣,本文将详细介绍它们的功能、......
  • 构造器和UML类图
    1.构造器1.1详解类的成员:构造器构造器的作用初始化对象:构造器用于设置对象的初始值,确保对象在创建时是有效的。提供灵活性:可以重载构造器,以便在创建对象时提供不同数量或类型的参数,从而支持多种初始化方式。限制对象创建:通过构造器,可以控制对象的创建过程,例如通过私有构造......
  • 实验1:UML与面向对象程序设计原则
    [实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。1、关联关系   2、聚合关系  3、依赖关系  4、组合关系     [实验任务二]:单一职责原则登录模块在实际项目开发中很常见,......
  • 【Ubuntu】PlantUML工具 | 安装 | 语法 | 使用工具画序列图
    ......
  • 开源b2b2c商城系统流程 多用户商城系统流程图
    在选择多用户商城系统时,服务质量至关重要。商淘云多用户商城系统凭借其卓越的功能和强大的客户支持,成为了许多企业的首选。下面我们一起分析多用户商城的特性及b2b2c商城系统思维导图,文中的图大家需要的可评论“666”领取。首先,商淘云提供了全面的电商解决方案,通过配置可以满......