0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UML时序图详解

码农爱学习 来源:码农爱学习 作者:码农爱学习 2023-05-16 09:09 次阅读

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

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

1 时序图简介

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

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

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

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

**

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

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

2 时序图元素介绍

2.1 参与者

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

2.2 对象

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

2.3 生命线

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

2.4 激活

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

2.5 消息

2.5.1 (同步)消息

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

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

2.5.2 返回消息

以小于号和虚线表示。

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

2.5.3 异步消息

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

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

2.5.4 自关联消息

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

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

2.6 片段

2.6.1 选择片段

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

2.6.2 循环片段

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

2.6.3 并向片段

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时序图编辑的基本元素,将这些元素拖拽到右侧的编解面板中,可以看到这些元素的基本结构形式:

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

3.2 时序图实例

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

这是一个嵌入式开发中,常见的对物联网设备进行配网的操作流程,配网的方式有很多,这个是时序图是其中的一种配网方式——设备热点配网。

解读一下此时序图:

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

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

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

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

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

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

4 总结

本篇介绍了UML时序图的基础知识,并通过visio绘制一个物联网设备WIFI配网的UML时序图实例,来介绍UML时序图的画法与所表达的含义。
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5056

    文章

    18955

    浏览量

    301685
  • 物联网
    +关注

    关注

    2900

    文章

    43994

    浏览量

    369877
  • UML
    UML
    +关注

    关注

    0

    文章

    122

    浏览量

    30837
  • 时序图
    +关注

    关注

    2

    文章

    57

    浏览量

    22424
收藏 人收藏

    评论

    相关推荐

    UML中类详解

    UML
    电子学习
    发布于 :2023年01月14日 10:12:47

    请问UML用例的创建方法是什么?

    UML用例的创建方法及其用例的描述
    发表于 11-06 07:10

    有人可以详解一下imx6q的eim时序

    有人可以详解一下下图中,imx6q的eim时序
    发表于 01-07 07:22

    UML状态在回归测试中的应用

    基于UML 状态的测试是一种系统测试技术,也是基于需求的回归测试方法的扩展。该文通过依赖性分析,生成基于依赖性分析的UML 状态和依赖
    发表于 03-23 08:46 14次下载

    基于UML的考试管理系统设计

    文中着重解决UML在完成各阶段任务中的应用、分析设计流程等问题,就类时序两者设计次序进行探讨。UML有利于各类人员之间的沟通,提高了系
    发表于 12-22 17:14 35次下载
    基于<b class='flag-5'>UML</b>的考试管理系统设计

    plc时序怎么看_plc时序指令详解

    时序是描述设备工作过程的时间次序,也是用于直观分析设备工作过程的一种图形。如电子技术中的触发器、定时器、计数器等均用时序来描述其工作原
    发表于 10-23 08:40 8.9w次阅读
    plc<b class='flag-5'>时序</b><b class='flag-5'>图</b>怎么看_plc<b class='flag-5'>时序</b><b class='flag-5'>图</b>指令<b class='flag-5'>详解</b>解

    什么是时序?教你如何看懂时序

    时序(Sequence Diagram),又名序列、循序、顺序,是一种UML交互
    发表于 10-29 10:08 7.1w次阅读
    什么是<b class='flag-5'>时序</b><b class='flag-5'>图</b>?教你如何看懂<b class='flag-5'>时序</b><b class='flag-5'>图</b>

    时序和类的关系

    时序是在软件系统设计中直接和程序代码相关联的,准确地说,程序代码是由类直接产生,而时序
    发表于 10-29 11:21 6758次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>图</b>和类<b class='flag-5'>图</b>的关系

    时序怎么画步骤教程_时序用什么工具画_时序的作用是什么

    时序(Sequence Diagram),亦称为序列、循序或顺序,是一种UML交互
    发表于 12-11 19:22 4.5w次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>图</b>怎么画步骤教程_<b class='flag-5'>时序</b><b class='flag-5'>图</b>用什么工具画_<b class='flag-5'>时序</b><b class='flag-5'>图</b>的作用是什么

    基于UML依权限有序的Web链接测试用例生成方法

    针对传统Web测试用例生成方法因缺少权限性和时序性考虑而产生的误判断问题,提出结合基于统一建模语言(UML)活动与状态,根据不同用户权限及交互活动流程分析Web页面链接而生成测试用
    发表于 01-07 12:25 0次下载
    基于<b class='flag-5'>UML</b><b class='flag-5'>图</b>依权限有序的Web链接测试用例生成方法

    UML的分类_UML的基本模型

    UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。
    的头像 发表于 09-25 09:43 6213次阅读

    什么是UML?常见的UML工具有哪些?

    UML是统一建模语言,又称标准建模语言。是对软件设计开发过程可视化建模的一种语言。多应用在一些软件系统工程上,有时在应用在机械系统和业务流程上有所应用。这种模型通常以图表方式呈现。 UML状态图
    的头像 发表于 06-22 14:10 4572次阅读
    什么是<b class='flag-5'>UML</b><b class='flag-5'>图</b>?常见的<b class='flag-5'>UML</b><b class='flag-5'>图</b>工具有哪些?

    UML简介与类详解

    本篇介绍了UML的基础知识,包括2种和6种关系,并通过visio软件,演示如何画出一个UML
    的头像 发表于 05-05 09:07 3965次阅读
    <b class='flag-5'>UML</b>简介与类<b class='flag-5'>图</b><b class='flag-5'>详解</b>

    解析UML时序

    这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类所表达的含义和最终的代码对应起来; 有了这些知识,看后面章节的设计模式结构图就没有什么问题了;
    的头像 发表于 05-05 11:03 638次阅读
    解析<b class='flag-5'>UML</b>类<b class='flag-5'>图</b>和<b class='flag-5'>时序</b><b class='flag-5'>图</b>

    UML状态详解

    本篇介绍了UML状态的基础知识,并通过visio绘制一个全自动洗衣机的UML状态实例,来介绍UML状态
    的头像 发表于 05-09 09:00 2986次阅读
    <b class='flag-5'>UML</b>状态<b class='flag-5'>图</b><b class='flag-5'>详解</b>