UML时序图(Sequence Diagram)学习笔记

原创 SuperMan-zhang 最后发布于2018-07-04 14:37:25 阅读数 94844 收藏
发布于2018-07-04 14:37:25
分类专栏: UML
文章标签: UML时序图 UML序列图
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/fly_zxy/article/details/80911942

展开

什么是时序图

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

让我们来看一看visio2016对时序图的的解释。

时序图的元素

我们在画时序图时会涉及7种元素:角色(Actor)、对象(Object)、生命线(LifeLine)、控制焦点(Activation)、消息(Message)、自关联消息、组合片段。其中前6种是比较常用和重要的元素,剩余的一种组合片段元素不是很常用,但是比较复杂。我们先介绍前6种元素,在单独介绍组合片段元素。

角色(Actor)

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

对象(Object)

对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:
    1 对象名和类名。例如:华为手机:手机、loginServiceObject:LoginService。
    2 只显示类名,不显示对象,即为一个匿名类。例如::手机、:LoginSservice。
    3 只显示对象名,不显示类名。例如:华为手机:、loginServiceObject:。

生命线(LifeLine)

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

控制焦点(Activation)

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

消息(Message)

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

同步消息(Synchronous Message)

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

异步消息(Asynchronous Message)

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

返回消息(Return Message)

返回消息表示从过程调用返回。以小于号+虚线表示。

自关联消息

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

认识时序图六种元素

我们来使用Visio2016来画一个用户打开微信扫描二维码支付流程时序图,通过这个时序图来认识刚刚介绍的6种时序图元素。

时序图解释
1,用户输入手机密码
2,打开手机
3,打开微信扫一扫
4,返回微信扫一扫界面
5.1 扫描商家收款码
5.2 商家生成收款二维码
5.3 返回收款二维码
5.4 识别商家收款码
6,提示用户输入微信支付密码
7.1 输入微信支付密码
7.2 微信验证用户输入密码正确
7.3 向商家汇款

7.4 汇款成功
8,提示用户支付成功

组合片段

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

常用组合片段举例

抉择(Alt)

抉择在任何场合下只发生一个序列。 可以在每个片段中设置一个临界来指示该片段可以运行的条件。else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所有临界都为 False 并且没有 else,则不执行任何片段。Alt片段组合可以理解为if..else if...else条件语句。

我们还拿微信支付的时序图举例,如果7.3向商家汇款的成功或失败流程需要在时序图中体现出来,可以这么使用Alt片段组合。

选项(Opt)

包含一个可能发生或不发生的序列。Opt相当于if..语句。

循环(Loop)

片段重复一定次数,可以在临界中指示片段重复的条件。Loop相当于for语句。

并行(Par)

并行处理,片段中的事件可以并行交错。Par相当于多线程。

时序图的绘制工具

画时序图的工具有很多,但是个人只用过微软visio工具,感觉很好用,可以满足需要。

时序图的绘制步骤

时序图的绘制步骤可以总结为:

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

所谓划清边界是是指要确定好绘制时序图的范围。在微信支付例子中省略列商家打开微信、输入收款金额等交互消息,这些不是我们需要体现的,我们主要体现的是用户的扫码支付流程。

所谓识别交互语境就是要知道自己绘制时序图的前提和背景。在微信支付的例子中用户登录了微信、开通了支付功能是前提,背景是用户需要扫描付款买东西。

2,梳理时序图中的角色和对象都有哪些

微信支付的例子中角色只有一个,即用户。对象有华为手机:手机、安卓版微信:微信、:商家。

3,对象之间有哪些交互消息

对象之间交互的消息详见以上时序图。

时序图的绘制技巧

时序图的绘制技巧:

1,从初始消息开始画,依次画出随后消息,并给每个消息分配序号,方便理解。

2,角色和对象用名词,消息用动词。

3,角色放在时序图的开始位置,对象重要程度或使用频率从左到右排列。这就要根据时间的流程考虑了,是一个比较主观的事情。

4,控制焦点两端要以消息元素封顶,控制焦点不要超过消息元素。

正确示范


错误示范


最后的技巧就是多联系绘制时序图,熟能生巧,自然而然就会画了。

练习事例

用户登录系统时序图

参考资料

https://baike.baidu.com/item/%E6%97%B6%E5%BA%8F%E5%9B%BE/3659178?fr=aladdin

http://baijiahao.baidu.com/s?id=1561926824533534&wfr=spider&for=pc


http://www.taodudu.cc/news/show-2864565.html

相关文章:

  • uml sequence diagram
  • UML时序图(Sequence Diagram)
  • UML之顺序图(时序图)
  • Linux系统在线安装和查看git版本
  • 根证书,解决win7 sp1 64位系统在线安装VS2017 或VS2019的失败
  • 重装Win10系统有教程吗?如何在线一键重装Win10系统?
  • ubuntu安装java_如何在Ubuntu系统上安装Java
  • CentOS7.6系统安装步骤
  • QT 5.15 最新安装指南(针对不同系统)
  • 在线客服系统安装教程,附源码
  • 树莓派安装双系统
  • Redhat8.4系统安装
  • win8.1系统在线安装VS2017出现Internet连接问题的解决办法
  • MacOs在线重装系统教程
  • MAC 在线安装系统
  • 苹果电脑mac os+win双系统在线安装回macos
  • 西门子RS485通信笔记
  • 485通信偶尔失败
  • 通信协议学习-485通信(1)
  • C#RS485通信
  • C++实现RS485通信
  • 485通信不正常
  • 如何通过Java实现485通信
  • STM32F103 485通信开发实例
  • DSP RS232 RS485通信
  • RS485 通信电路 PCB
  • MSP430的485通信
  • 通信协议学习-485通信(2)
  • 485通信要点
  • 照片太大了怎么改小kb?图片压缩在线处理方法

UML时序图(Sequence Diagram)学习笔记相关推荐

  1. 【工具】-10 UML时序图(Sequence Diagram)学习笔记

    为什么要绘制时序图? 我们编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开.这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按照怎么样 ...

  2. UML时序图(Sequence Diagram)

    什么是时序图 时序图(Sequence Diagram),又名序列图.循序图,是一种UML交互图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作. 让我们来看一看visio2016对时 ...

  3. UML时序图(Sequence Diagram)讲解

    什么是时序图 时序图(Sequence Diagram),又名序列图.循序图,是一种UML交互图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作. 时序图的元素 我们在画时序图时会涉及 ...

  4. 【UML】时序图Sequence diagram(交互图)(转)

    前言 UML时序图是UML动态图之一,它是强调时间顺序的交互图. 定义 时序图是显示按时间顺序排列的对象之间交互的图. 组成元素 对象 包括三种命名方式:第一种方式包括对象名和类名:第二中方式只显示类 ...

  5. 程序时序图 Sequence Diagram(序列图) UML图(数据流程图)的绘制

    参考视频教程:1.时序图的绘制 描述数据的流动 上面教程看起来还是有点懵逼 来看百度百科吧! 时序图中包括如下元素:角色,对象,生命线,控制焦点和消息. 1.角色(Actor) 系统角色,可以是人或者 ...

  6. UML 顺序图(时序图) sequence diagram

    1. 什么是顺序图 是强调消息时间顺序的交互图.时序图描述类系统中类和类之间的交互,它将这些交互建模成消息交换.时序图是一个模型,用于描述对象间如何随着时间在某些行为方面进行协作.(强调的是消息的时间 ...

  7. UML顺序图(sequence diagram)

    顺序图用于表达实体之间的动态调用顺序,例如对于骰子游戏这个需求,对应的顺序图如下所示: 注意上面的顺序图中只表达出了骰子游戏的正常逻辑,没有表达异常逻辑.这也是顺序图的主要用法,顺序图一般只用来表达实 ...

  8. UML时序图和流程图介绍

    文章目录 UML时序图参考 UML流程图参考 UML类图讲解 一.整体图 二.属性讲解 类 接口 继承(泛化) 实现 关联 聚合 合成 依赖 参考资料 UML时序图参考 类图.用例图.时序图.状态图. ...

  9. uml 时序图_设计模式-UML

    定义 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言.UML是面向对象设计 ...

最新文章

  1. '*','*args','**','**kwargs'
  2. 用计算机算出90除以6.28,用计算器计算:sin51°30′+ cos49°50′-tan46°10′的值是 .——青夏教育精英家教网——...
  3. [YTU]_1998( C语言实验——删除指定字符)
  4. 【ruoyi若依】引入activiti 模块
  5. mysql的存储过程正负数的变化_《转》mysql存储过程语法及范例
  6. 在SD/MMC卡中可读写的FAT文件系统
  7. 免费LInux主机资源
  8. 现代软件工程 作业 4 个人作业
  9. 限制UI只能在屏幕内移动(放大或缩小屏幕同样适用)
  10. Fedora 18在ASUS N6系列电脑上以太网卡驱动的安装
  11. Selenium3+python 加载Firefox配置
  12. 在软件开发者灵魂深处的三种角色
  13. JS判断手机浏览器是横屏or竖屏
  14. less文件的样式无法生效的一个原因,通过WEB浏览器访问服务器less文件地址返回404错误...
  15. VS解决方案目录和工程目录
  16. 计算机任务栏的透明颜色设置,教你电脑任务栏透明设置教程
  17. 窄带Vs宽带 MIMO
  18. 通过Calendar来判断今天星期几以及获取当前时间前几天等
  19. android 使用signingConfigs进行打包
  20. 分享到微信,qq空间,微博

热门文章

  1. HDU 5238 线段树+数论
  2. 怎样从一个手机上安两个不同版本的软件_一部手机上怎么安装两个不同版本的微信?一部手机安装两个不同版本微信的方法...
  3. 熊猫的python小课_老熊的三分地-Oracle及数据恢复
  4. php九宫格图片合成,php实现微信中的图片合并-九宫格图片
  5. C++11特性《 右值引用-<完美转发>、lambda表达式》
  6. 关于Office365邮箱附件大小限制问题
  7. 92_特殊方法(魔术方法)和运算符重载
  8. 在java中用log4j写日志文件
  9. 塑造成功性格的15种方法
  10. 【SemiDrive源码分析】【Yocto源码分析】02 - yocto/meta-openembedded目录源码分析