UML时序图知识

UML时序图知识1.时序图(SequenceDiagrams)时序图描述对象之间消息的发送顺序,强调时间顺序。时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。用箭头表示消息、用竖虚线表示对象生命线。2.时序图的作用展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展示对象之间的交互;相对于其他UML图,时序图更强调交互的时间顺序;可以直观的描述并发进程。3.时序图组成元素角色(Actor)系统

大家好,又见面了,我是你们的朋友全栈君。

前言

在java开发中,最重要的两种UML图:UML类图,以及UML时序图。学会这两张图的画法,基本上可以用一辈子。下面开始介绍

1. 时序图(Sequence Diagrams)

时序图描述对象之间消息的发送顺序,强调时间顺序。时序图是一个二维图,横轴表
示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。用箭头
表示消息、用竖虚线表示对象生命线。

2. 时序图的作用

  1. 展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在
    对象间发送和接收的来动态展示对象之间的交互;
  2. 相对于其他 UML 图,时序图更强调交互的时间顺序;
  3. 可以直观的描述并发进程。

3. 时序图组成元素

  • 角色(Actor)
    系统角色,可以是人、机器、其他系统、子系统;
  • 对象(Object)
    1、对象的三种命名方式
    第一种方式包括对象名和类名,例如:直播课时:课时,在时序图中,用“对象:类”
    表示;
    第二种方式只显示类名,即表示它是一个匿名对象,例如: :课程;在时序图中,用
    “:类”表示;
    第三种方式只显示对象名不显示类名,例如:讲师;在时序图中,用“对象”表示。
    2、命名方式的选择
    三种命名方式均可,哪种最容易让阅读该时序图的人理解,就选择哪种。
    3、对象的排列顺序
    对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:把交
    互频繁的对象尽可能的靠拢;把初始化整个交互活动的对象放置在最左端。
  • 生命线(Lifeline)
    在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。
  • 控制焦点(Focus of Control)
    又称为激活期,表示时间段的符号,在这个时间段内对象将执行相应的操作。可以理
    解为 Java 语言中一对大括号{ }中的内容;用小矩形表示。
  • 消息(Message)
    消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous
    Message)和返回消息(Return Message)。
    1、消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放
    弃或者返回控制。用来表示同步的意义;
    2、消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接
    受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。
    3、返回消息表示从过程调用返回。
  • 自关联消息
    表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。
  • 组合片段
    组合片段用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用
    于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。
    组合片段共有 13 种,名称及含义如下:
片段类型 名称 说明
Opt 选项 包含一个可能发生或可能不发生的序列。可以在临界中指定序列发生的条件。
Alt 抉择 包含一个片段列表,这些片段包含备选消息序列。在任何场合下只发生一个序列。可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所有临界都为 False 并且没有 else ,则不执行任何片段。
Loop 循环 片段重复一定次数。可以在临界中指示片段重复的条件。Loop 组合片段具有“Min”和”Max”属性,它们指示片段可以重复的最小和最大次数。默认值是无限制。
Break 中断 如果执行此片段,则放弃序列的其余部分。可以使用临界来指示发生中断的条件。
Par 并行 并行处理。片段中的事件可以交错。
Critical 关键 用在 Par 或 Seq 片段中。指示此片段中的消息不得与其他消息交错。
Seq 弱顺序 有两个或更多操作数片段。涉及同一生命线的消息必须以片段的顺序发生。如果消息涉及的生命线不同 ,来自不同片段的消息可能会并行交错。
Strict 强顺序 有两个或更多操作数片段。这些片段必须按给定顺序发生。
Consider 考虑 指定此片段描述的消息列表。其他消息可发生在运行的系统中,但对此描述来说意义不大。
在”Messages”属性中键入该列表。
Ignore 忽略 此片段未描述的消息列表。这些消息可发生在运行的系统中 ,但对此描述来说意义不大。在”Messages”属性中键入该列表。
Assert 断言 操作数片段指定唯一有效的序列。 通常用在 Consider 或 Ignore 片段中。
Neg 否定 此片段中显示的序列不得发生。通常用在 Consider 或 Ignore 片段中。

4. 示例

1、抉择(Alt)
抉择在任何场合下只发生一个序列。 可以在每个片段中设置一个临界来指示该片段
可以运行的条件。else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所
有临界都为 False 并且没有 else,则不执行任何片段
在这里插入图片描述

2、选项(Opt)
包含一个可能发生或不发生的序列;
在这里插入图片描述
3、循环(Loop)
片段重复一定次数,可以在临界中指示片段重复的条件。
在这里插入图片描述
4、并行(Par)
在这里插入图片描述

5. 时序图画法及实践

时序图的绘制步骤可简单总结如下:
1、划清边界,识别交互的语境;
2、将所要绘制的交互场景中的角色以及对象梳理出来;
3、从触发整个交互的某个消息开始,在生命线之间从上到下依次画出所有消息,并注明
每个消息的特性(如参数等)。

在这里插入图片描述

6. 用户注册时序图

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150075.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月18日 下午9:36
下一篇 2022年6月18日 下午9:36


相关推荐

  • Code For Better 谷歌开发者之声—-谷歌云基于TensorFlow高级机器学习

    Code For Better 谷歌开发者之声—-谷歌云基于TensorFlow高级机器学习谷歌云基于 TensorFlow 高级机器学习

    2026年3月17日
    3
  • 静态方法与非静态方法的区别

    静态方法与非静态方法的区别区别就是静态只能被静态调用 而非静态可以调用静态和非静态

    2026年3月26日
    2
  • 莫比乌斯反演详解

    莫比乌斯反演详解莫比乌斯反演的基本思想考虑求函数 我们可以构造一个比较好求函数 g x 使 然后用 g x 来求 f x 怎么用 g x 来表示 f x 呢 稍微列举一下 g x g 1 f 1 g 2 f 1 f 2 g 3 f 1 f 3 g 4 f 1 f 2 f 4 g 5 f 1 f 5 g 6 f 1 f 2 f 3 f 6 我们经过一番拼凑发

    2026年3月19日
    2
  • 查看数据库里阻塞和死锁情况.sql

    查看数据库里阻塞和死锁情况.sql

    2021年4月25日
    241
  • 动态路由协议的归纳总结

    动态路由协议的归纳总结文章目录引言一 动态路由协议的分类二 动态路由协议的优缺点三 RIP 路由协议 1 工作原理 2 RIP 的防环机制 3 RIPv1 和 RIPv2 的区别 4 RIP 的配置四 OSPF 路由协议 ospf 的概念 ospf 工作过程 RouterIDospf 包类型 ospf 路由器类型 ospf 网络类型 ospf 区域类型 ospf 的基本特点 ospf 建立邻居关系的条件邻居状态机 OSPF 与 RIP 区别五 OSPF 的配置单区域多区域总结引言在工作中 面对众多的动态路由协议 我开始思考 这么多的路由协议在不同的网络中应该如何选择呢 为了解决这个疑

    2026年3月18日
    3
  • 解决解压含有中文的文件名乱码问题

    解决解压含有中文的文件名乱码问题解决解压含有中文的文件名乱码问题解决方法安装 WinRAR 软件 7zip 没找到相关的功能 只在这个软件上找到了 打开压缩包 选择 选项 gt 名称加密 gt 选择 936 最后一步选择的编码也许会有些差异 有些小伙伴可能要试一下其他编码 比如 65001 但是不用尝试其他语言的编码 因为这里只解决中文的乱码问题 切换编码之后 压缩包里的文件名就可以正常显示了 解压之后的文件名也可以正常显示了 原因推测造成这种现象的原因可能是 制作压缩包的用户电脑的系统编码和解压压缩包使用的电脑

    2026年3月26日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号