什么是时序图,看了你就明白

目录

前言:

什么是时序图:

时序图的组成元素:

1. 角色(Actor)

2. 对象(Object)

3. 生命线(LifeLine)

4. 激活期(Activation)

5. 消息类型(Message)

6.组合片段(Combined fragment)

时序图的绘制规则:​

绘制时序图的3步:

1.划清边界,识别交互语境

2.梳理角色和对象

3.添加消息

单点登录时序图:

总结:


前言:

时序图作为常用的UML交互图,可以直观传达系统内外之间的交互过程,经常用在详细设计文档中。
经常有人玩笑说,想判断一个产品经理的逻辑能力,让他画一个流程图或时序图就知道了,原因是你必须在对业务了解的基础上,抽象出业务各个环节的交互,区分业务涉及的各个对象的边界,才能画出一张完整的流程图或时序图,所以时序图是产品经理,也是程序员的必备技能之一。
它的使用场景非常广泛,几乎各行各业都可以使用,用于梳理业务流程,使业务看起来非常清晰,也可以梳理开源软件,梳理各个组件之间的关系,层次非常清楚,便于记忆,也可以使用在更多场景。

什么是时序图:

时序图(Sequence Diagram)是一种UML(Unified Modeling Language)图表,用于描述系统中对象之间的交互行为。时序图可以显示对象之间的消息传递顺序,以及对象之间的协作和通信方式。时序图通常用于描述系统的动态行为,例如,用户与系统之间的交互、对象之间的交互等。

时序图的组成元素:

1. 角色(Actor)

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

2. 对象(Object)

2.1对象的三种命名方式:


1.对象名和类名。例如:(汉堡):(汉堡):。在时序图中,用"对象:类"表示:
2.只显示对象,不显示类名。例如::(汉堡),在时序图中,用“对象”表示。
3.只显示类名,不显示对象名。例如:(汉堡):,在时序图中,用“类名:”表示。

2.2命名方式的选择:

三种命名方式都可以,选择最容易让阅读该时序图的人理解的命名方式。

2.3对象的排序顺序

时序图中对象的左右顺序并不重要,但为了使时序图清晰简洁,应遵循以下两个原则:

  1. 将交互频繁的对象尽可能靠拢。

  2. 将初始化整个交互活动的对象放置在最左端。

3. 生命线(LifeLine)

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

4. 激活期(Activation)

表示一个对象执行一个动作所经历的时间段,一般情况下,当一个对象收到其它对象发送的消息称时时会被激活,在激活期内处理消息,激活结束时应发送一个消息

5. 消息类型(Message)

1.简单消息

简单消息可以泛指对象之间的任何消息的调用或发送,而不用关系是异步还是同步

2.同步消息

是指在发送消息时,程序必须等待接受者的相应,才可以执行。同步消息通常使用返回值或异常来表示相应的消息。

3.异步消息

是指发送消息之后,程序可以执行,不需要等待接收者的相应。异步消息通常使用回函数或事件来处理相应结果

4.自反消息

是简单消息的一种,只能是对象像自己发送消息,而不能给其它对象发送消息

6.组合片段(Combined fragment)

片段类型

名称

说明

Opt

选项

包含一个可能发生的序列。可以在临界中指定序列发生的条件

Alt

抉择

包含一个片段列表,这些片段包含消息序列,在任何情况下只发生一个序列

可以在每个片段中设置一个临界来指示该片段可以运行的条件,else的临界指示其他任何临界都不为True时运行的片段,如果所有临界都为False并且没有else,则不执行任何片段

LOOP

循环

片段重复一定次数,可以在临界中指示片段重复的条件

Loop组合片段具有"Min"和"Max"属性,它们指示片段可以重复的最小和最大次默认值是无限制的

Break

中断

如果执行此片段,则放弃序列的其余部分,可以使用临界来指示发生中断的条件

Par

并行

并行处理。片段中的时间可以交错

Critical

关键

用在Par或Sep片段中。指示片段中的消息不得与其他消息交错

Sep

弱顺序

有两个或更多操作数片段,设计用一生命线的消息必须以片段的顺序发生,如果消息设计的生命线不同,来自不同片段的消息可能并行交错

Strict

强顺序

有两个或更多操作数片段,这些片段必须按给定顺序发生

Consider

考虑

指定片段描述的消息列表,其他消息可发生在运行的系统中,但对此描述来说意义不大

在"Messages"属性来键入该列表

Ignorre

忽略

此片段未描述的消息列表,这些消息可能发生在运行的系统中,但对此描述来说意义不大

在"Messages"属性中不能键入该列表

Assert

断言

操作数片段指定唯一有效的序列,通常在Consider或Ignore片段中

Neg

否定

此片段中显示的序列不得发生。通常用来Consider或Ignore片段中

时序图的绘制规则:

绘制时序图的3步:

1.划清边界,识别交互语境

即界定好自己所要画的时序图的范围,了解所要画的时序图的前提和背景。
比如“学生信息管理”就是所要绘制的时序图的交互内容,就不需要往上延伸到学生注册并认证身份,不需要用户登录,也不需要往下延伸到查询课表、资料下载等无关的内容上。

2.梳理角色和对象

在”学生信息管理的时序图”中校色有学生/教务用户,对象有教务界面,学生信息界面、管理学生信息界面、数据库.
注意的是:角色和对象都是名词,动词不可以作为角色和对象

3.添加消息

从触发整个交互的某个消息开始,在生命线之间,从上到下一次画出所有消息,并注明每个消息的特性,如参数等

单点登录时序图:

总结:

时序图可以帮助我们更好地理解系统中各个对象之间的交互关系和消息传递顺序,以及对象之间的协作和通信方式。时序图可以用于描述系统中的动态行为,例如,用户与系统之间的交互、对象之间的交互等。在软件开发过程中,时序图通常用于设计和验证系统的交互行为,以及检查系统中的潜在错误和问题。

参考资料:​​​​​​产品经理&程序员技能提升之「时序图」,附9张实操案例! (qq.com)​​​​​​

参考资料:快速学习时序图:时序图简介、画法及实例 | 人人都是产品经理 (woshipm.com)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发直播商城APP:技术要点和最佳实践

在当今数字时代,直播商城APP正变得越来越受欢迎,成为了吸引消费者和促进销售的强大工具。这篇文章将探讨开发直播商城APP的技术要点和最佳实践,为开发者提供有价值的指导。 第一部分:项目准备 1.1定义项目目标 在开始开发直播商…

Typora(morkdown编辑器)的安装包和安装教程

Typora(morkdown编辑器)的安装包和安装教程 下载安装1、覆盖文件2、输入序列号①打开 typora ,点击“输入序列号”:②邮箱一栏中任意填写(但须保证邮箱地址格式正确),输入序列号,点击…

python:使用Scikit-image对遥感影像进行梯度特征提取(gradient)

作者:CSDN @ _养乐多_ 在本博客中,我们将介绍如何使用Scikit-Image来进行梯度特征提取(gradient),并且提供一个示例代码,演示了如何在单波段遥感图像上应用这些方法。 梯度特征是指用于表示图像中亮度或颜色变化的特征。它包括两个关键成分:梯度幅值和梯度方向。梯度幅…

CRM客户管理系统源码 带移动端APP+H5+小程序

CRM客户管理系统源码 带移动端APPH5小程序 开发环境: thinkphp mysql 功能介绍: 1、 办公管理:审批管理、工作报告、日程管理、办公审批、公告管理 2、 客户管理:我的客户、客户列表、成交客户、行业类别、预查、地区列表、客户状态、客…

【C语言】【goto语句】复习捡拾~

goto语句可以在同一个函数内跳转到设定好的位置&#xff1a; #include<stdio.h> int main() {printf("hello world\n");goto next;printf("hehe"); next:printf("leap here\n");return 0; }goto 语句如果使⽤的不当&#xff0c;就会导致在…

睿趣科技:抖音小店在哪里选品

随着抖音平台的日益火爆&#xff0c;越来越多的商家选择在抖音小店开设自己的店铺。然而&#xff0c;对于许多新手来说&#xff0c;如何选品却成为了一个难题。那么&#xff0c;抖音小店应该在哪里选品呢? 首先&#xff0c;我们可以从抖音平台上的热门商品入手。通过观察抖音上…

如何选择向量数据库|Weaviate Cloud v.s. Zilliz Cloud

随着以 Milvus 为代表的向量数据库在 AI 产业界越来越受欢迎&#xff0c;传统数据库和检索系统也开始在快速集成专门的向量检索插件方面展开角逐。 例如 Weaviate 推出开源向量数据库&#xff0c;凭借其易用、开发者友好、上手快速、API 文档齐全等特点脱颖而出。同样&#xff…

利用 Selenium 自动化 web 测试【步骤详解】

简介 Selenium 是一个健壮的工具集合&#xff0c;跨很多平台支持针对基于 web 的应用程序的测试自动化的敏捷开发。它是一个开源的、轻量级的自动化工具&#xff0c;很容易集成到各种项目中&#xff0c;支持多种编程语言&#xff0c;比如 .NET、Perl、Python、Ruby 和 Java™ …

【Html】交通灯问题

效果 实现方式 计时器&#xff1a;setTimeout或setInterval来计时。setInterval和 setTimeout 在某些情况下可能会出现计时不准确的情况。这通常是由于JavaScript的事件循环机制和其他代码执行所需的时间造成的。 问询&#xff1a;通过getCurrentLight将每个状态的持续时间设置…

mac安装并使用wireshark

mac安装并使用wireshark 1 介绍 我们在日常开发过程中&#xff0c;遇到了棘手的问题时&#xff0c;免不了查看具体网络请求情况&#xff0c;这个时候就需要用到抓包工具。比较著名的抓包工具就属&#xff1a;wireshark、fildder。我这里主要介绍wireshark。 2 安装 以mac安装为…

Echarts渲染不报错但是没有内容

&#x1f525;博客主页&#xff1a; 破浪前进 &#x1f516;系列专栏&#xff1a; Vue、React、PHP ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 问题&#xff1a;在开发项目的时候使用了Echarts但是好端端的忽然就不渲染了 感觉很无语啊&#xff0c;毕竟好好的就不渲染了&am…

浅谈分布式系统

文章目录 分布式系统应用数据分离架构应用服务集群架构读写分离 / 主从分离架构引入缓存--冷热分离架构数据库分库分表存储集群微服务架构小结 分布式系统 只有一台服务器负责所有的工作称为单机架构&#xff0c;但是一台主机的硬件资源是有上限的&#xff0c;当同一时刻主机收…