UML时序图详解

这篇具有很好参考价值的文章主要介绍了UML时序图详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上篇文章,介绍了UML状态图,并通过visio绘制一个全自动洗衣机的UML状态图实例进行讲解。

本篇,来继续介绍UML中的另一种图——时序图。

1 时序图简介

时序图(Sequence Diagram),也叫顺序图,或序列图,是一种UML动态图。

UML具有许多不同类型的图表,包括:

  • 静态图:用例图、类图、包图
  • 动态图:活动图、状态图、时序图、协作图

时序图通过描述对象之间发送消息的时间顺序显示多个对象之间的交互模式
UML时序图详解

时序图将交互关系表示为一个二维图

  • 纵向是时间轴,时间沿竖线向下延伸;横向轴代表了在协作中各独立对象的类元角色。
  • 类元角色用生命线表示。当对象存在时,角色用一条虚线表示;当对象的过程处于激活状态时,生命线是一个垂直矩形
  • 消息用从一个对象的生命线到另一个对象生命线的箭头表示。
  • 箭头以时间顺序在图中从上到下排列。

2 时序图元素介绍

2.1 参与者

UML时序图详解

参与者,或称为系统角色,以一个小人图标表示。

2.2 对象

UML时序图详解

对象,以一个矩形表示,在一个系统中可以有多个对象。

2.3 生命线

UML时序图详解

生命线就是一条垂直的虚线。

2.4 激活

UML时序图详解

激活,也叫会话,或控制焦点,代表时序图中对象执行一项操作的时期, 表示该对象被占用以完成某个任务,以一个垂直的窄的矩形表示。

2.5 消息

2.5.1 (同步)消息

UML时序图详解

以一条实线和实心箭头表示。

消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。

2.5.2 返回消息

UML时序图详解

以小于号和虚线表示。

返回消息表示从过程调用返回。

2.5.3 异步消息

UML时序图详解

以一条实线和大于号表示。

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

2.5.4 自关联消息

UML时序图详解

以一个半闭合的长方形+下方实心剪头表示。

表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。

2.6 片段

UML时序图详解

2.6.1 选择片段

选择片段,或称条件分支,可根据不同的条件,执行不同的交互,类似于if-else语句

UML时序图详解

2.6.2 循环片段

表明该片段会被重复执行,类似于while或for语句

UML时序图详解

2.6.3 并向片段

UML时序图详解

2.6.4 片段总结

片段的功能,除了上面介绍的选择、循环和并向、还有许多其它类型,这里详细列举一下,作为参考:

片段类型 名称 说明
Alt 选择 在一组行为中根据特定的条件选择某个交互
Loop 循环 交互片段会被重复执行
Par 并行 支持交互片段的并发执行
Opt 选项 表示一个可选的行为
Break 中断 提供了和编程语言中的break类拟的机制
Seq 弱顺序 有两个或更多操作数片段,如果消息涉及的生命线不同,会并行交错
Strict 强顺序 有两个或更多操作数片段,这些片段必须按给定顺序发生

默认情况下,序列图表明可能发生的一系列消息。在运行的系统中,可能会出现您未选择显示在关系图上的其他消息。

以下片段类型可用于更改此释义:

片段类型 名称 说明
Consider 考虑 明确标志了应该被处理的消息
Assert 断言 标志了在交互片段中作为事件唯一的合法继续者的操作数
Neg 否定 用来标志不应该发生的交互
Ignore 忽略 明确定义了交互片段不应该响应的消息

3 visio绘制UML时序图

3.1 visio创建时序图

新建一个visio文件,打开后会自动提示选择创建某种类型的图,这里选择"软件和数据库 ->UML序列"

UML时序图详解

点击确定之后,会进入UML时序图的编辑界面,左侧可以看到用于UML时序图编辑的基本元素,将这些元素拖拽到右侧的编解面板中,可以看到这些元素的基本结构形式:

UML时序图详解

注意visio中的生命线绘图元素,实际上包含了参加者元素或对象元素,所以命名为了参与者生命线和对象生命线

3.2 时序图实例

下面通过一个实例来介绍一下UML时序图的画法。

这是一个嵌入式开发中,常见的对物联网设备进行配网的操作流程,配网的方式有很多,具体可看之前的文章:【图解】物联网设备的N种Wi-Fi配网方式,这个时序图是其中的一种配网方式——设备热点配网。

解读一下此时序图:

  • 参与者(主角)是用户,因为是用户触发了整个流程的执行
  • 对象有3个:手机上的APP程序、待连网的物联网设备、WiFi路由器
  • 配网的时序逻辑为:
    • 用户按下设备的配网按钮,设备开启一个热点,并广播自己的热点信息(热点名称和密码)
    • 用户在APP上输入WiFi路由器的名称和密码(用于后续发给设备)
    • 用户操作APP,连接上设备的热点,然后把WiFi路由器的名称和密码发给设备
    • 设备收到WiFi路由器的名称和密码后,尝试连接路由器,配网成功

UML时序图详解

本时序图中,暂未体现出片段的用法,以后有能用到片段用法的例子再举例分析。

3.4 visio中框图不能调节宽度解决

在用Visio绘制UML时序图,使用“交互操作数”时,可能遇到宽度被锁定不能调节的问题,解决方法如下:

步骤一:文件----选项----高级----常规-----勾选“以开发人员模式运行”

UML时序图详解

步骤二:菜单栏出现“开发工具”选项,点击受保护框图,取消宽度的保护

UML时序图详解

4 总结

本篇介绍了UML时序图的基础知识,并通过visio绘制一个物联网设备WIFI配网的UML时序图实例,来介绍UML时序图的画法与所表达的含义。文章来源地址https://www.toymoban.com/news/detail-454660.html

到了这里,关于UML时序图详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软考:软件工程:面向对象技术与UML,时序图,用例图,类对象,封装,继承,多态

    提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1)自己的科研经历, 科研内容 ,学习的相关领域知识,要熟悉熟透了 (2)自己的实习经历,做了 什

    2024年02月11日
    浏览(54)
  • UML-状态图

    目录 状态图 状态图的图符 状态机 状态 ​转换 电话机状态图 活动图和状态图区别: 状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。通常我们创建一个UML状态图是为了以下的研究目的:研究类、

    2024年02月13日
    浏览(30)
  • IDEA生成ER图、UML类图、时序图、流程图等的插件推荐或独立工具推荐

    以下是几个常用的IDEA插件和独立工具,可以用于生成ER图、UML类图、时序图、流程图等: Visual Paradigm (独立工具) Visual Paradigm是一个强大的建模工具,可以生成UML类图、时序图、流程图等。它支持多种语言和框架,包括Java、Spring等。可以将生成的图形导出为多种格式,例如图

    2024年02月04日
    浏览(56)
  • 【UML建模】状态图(State Machine Diagram)

    状态图,又称为状态机图,是一种用于 描述对象的生命周期和状态转换 的UML图示,它是一种 行为图 ,用于描述对象的状态和状态之间的转换。这里的对象大多数情况是指的 类生成的对象 ,但是有时候也会代表 对象、参与者、用例、子系统等 。 通过状态图可以建立 对象状

    2023年04月27日
    浏览(37)
  • 【Linux】进程的状态(运行、阻塞、挂起)详解,揭开孤儿进程和僵尸进程的面纱,一篇文章万字讲透!!!!进程的学习②

    目录 1.进程排队 时间片 时间片的分配 结构体内存对齐 偏移量补充 对齐规则  为什么会有对齐 2.操作系统学科层面对进程状态的理解 2.1进程的状态理解 ①我们说所谓的状态就是一个整型变量,是task_struct中的一个整型变量 ②.状态决定了接下来的动作 2.2运行状态 2.3 阻塞状

    2024年04月14日
    浏览(46)
  • Java设计模式之行为型-状态模式(UML类图+案例分析)

    目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 五、总结 状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类,状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不

    2024年02月16日
    浏览(40)
  • 通过Eclipse来生成UML类图

    Eclipse生成UML图简单教程: 目录 第一种方法:下载UMLet  第二种方法:在Eclipse中安装AmaterasUML插件 第三种方法:下载和配置AmaterasUML插件 1.点击导航栏Help选择Eclipse Marketplace插件市场 2.搜索UML回车,找到UMLet点击install下载 3.下载完成后,点击我同意条款,最后点击Finish按钮 4

    2024年02月04日
    浏览(41)
  • zabbix企业级监控(监控第二台linux服务器安装部署)接上篇单台监控文章操作

    zabbix企业级监控监控linux主机 目录 【agent端配置】(监控第二台linux服务器) 1、源码安装zabbix(解包、编译、配置、安装) 2、改agent配置文件 3、启动服务 图形操作: yum -y install libxml2-devel libcurl-devel pcre-devel ntpdate  //安装依赖包 ntpdate s1a.time.edu.cn //联网时间同步清华大学源

    2024年02月17日
    浏览(43)
  • 时序逻辑电路的状态转移图

    步骤大致如下:1.根据逻辑电路图列出状态、驱动、输出方程 2.列出状态转移表 3.根据状态转移表画出状态转移图 以以下逻辑电路图为例:   注意:状态转移图的由来以00到01为例,00表示Q2=0,Q1=0(注意状态转移图中Q2在前),将Q2=0,Q1=0,A=0代入驱动、状态和输出方程,得到

    2024年02月11日
    浏览(42)
  • [架构之路-212]- 需求- UML需求建模:用例图、ER图/概念类图、流程图、序列图、状态机图

    目录 前言: 什么是需求建模 1. 用例图 1.1 用例图 1.1.1 组件 1.1.2 用例细化与用例关系 1.2 用例规约 2. ER图/概念类图 3. 跨角色流程图(串行、协同) 4. 活动图(并行、协同) 5. 状态机图 6. 时序图 需求规格说明书: 用户场景=》用例图 场景说明=》用例规约 领域模型=》实体关

    2024年02月09日
    浏览(99)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包