记我第一次使用Visio2016画UML时序图(Sequence Diagram)_李阿昀的博客-程序员秘密

技术标签: UML  Java Web基础入门  

什么是时序图?

时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。让我们来看一看Visio2016对时序图的的解释。
在这里插入图片描述

时序图的元素

我们在画时序图时会涉及到7种元素,这7种元素如下:
在这里插入图片描述
其中前6种是比较常用和重要的元素,剩余的最后一种组合片段元素不是很常用,因为比较复杂。所以在此,我只介绍前6种元素,如果后面碰到需要用到组合片段元素的情况,再单独介绍组合片段元素。

角色(Actor)

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

对象(Object)

对象位于时序图的顶部,代表时序图中的对象在交互中所扮演的角色,以一个矩形表示。
在这里插入图片描述

生命线(LifeLine)

时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表示。对象与生命线结合在一起成为对象的生命线,对象的生命线包含矩形的对象图标以及图标下面的生命线。
在这里插入图片描述

控制焦点(Activation)

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

消息(Message)

代表对象之间发送的信息。消息分为三种类型。
在这里插入图片描述

自关联消息

表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。以一个半闭合的长方形+下方实心剪头表示。
在这里插入图片描述

用Visio建立时序图

时序图创建有如下步骤:

  1. 确定交互过程的上下文;
  2. 识别参与过程的交互对象;
  3. 为每个对象设置生命线;
  4. 从初始消息开始,依次画出随后消息;
  5. 考虑消息的嵌套,标示消息发生时的时间点,则采用FOC(focus of control);
  6. 说明时间约束的地点。

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yerenyuan_pku/article/details/88432304

智能推荐

浅谈Linux内核与线程的关系及线程调度_线程与内核的关系_For_zwb的博客-程序员秘密

首先,文章的开篇我们先看几个概念用户级线程用户级线程顾名思义就是用户态下的线程,用户线程的建立,同步,销毁,调度完全在用户空间完成,不需要内核的帮助。因此这种线程的操作是极其快速的且低消耗的。内核线程内核级线程,是指由内核管理的线程多线程模型多对一这种模型下创建的许多用户线程就会如下图所示。优点就是创建的代价非常小缺点也很明显,当一个线程阻塞住,该内核上的其它用户线程也会阻塞。...

win8文件共享服务器搭建,Win8系统开启公用文件夹共享的方法(图文)_星尤野的博客-程序员秘密

运行Win8系统时会对文件进行共享,在共享文件之前首先要开启公用文件夹共享,可是很多新手用户不知道如何开启win8系统公共文件夹共享,其实开启公用文件夹共享的方法很简单,为此,教程和大家分享Win8系统开启公用文件夹共享的方法。具体开启方法:1、在Windows8系统下同时按住键盘上“Windows徽标”键和“X” 键,在系统工具快捷入口打开“控制面板”;2、在“控制面板”中选择“网络和Inter...

string小数点取后n位_java 保留小数点后N位数(若干位),几种实现的方式总结_weixin_39796652的博客-程序员秘密

import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;/*** java 保留小数点后N位数(若干位)位,几种实现的方式总结* (1)常用的是1.DecimalFormat,和2.BigDecimal* (2)4.String .format("%.2f",dbstr);* ...

网络类型_多种类型的网络钓鱼攻击和诈骗_weixin_39629989的博客-程序员秘密

点击标题下「蓝色微信名」可快速关注网络钓鱼攻击每年都会对企业造成重大损失和损害谷歌和Facebook的损失总计超过1亿美元。比利时克里兰银行向网络犯罪分子交付了超过7500万美元。奥地利航空零部件制造商FACC损失了6100万美元。是什么导致了组织大规模损失?这些组织中的每个人都是不同类型的网络钓鱼攻击的受害者。什么是网络钓鱼攻击?一般来说,网络钓鱼诈骗是一种网络攻击,网络犯罪分子利用这...

arm-none-linux-gnueabi-gcc 和 arm-fsl-linux-gnueabi-gcc区别_gcc fsl_Hustudent20080101的博客-程序员秘密

arm-none-linux-gnueabi-gcc 和 arm-fsl-linux-gnueabi-gcc区别检举|2012-02-25 12:55CSlunatic | 分类:电子数码 | 浏览1502次我来帮他解答提问者采纳2012-02-25 13:18应该是没区别吧。none 和 fsl 这个段落的表示应该是 Hardware Platf

mongoDB 大于,小于,大于等于,小于等于_mongodb 大于小于_Apollo-0的博客-程序员秘密

转载自:http://blog.163.com/ji_1006/blog/static/10612341201311271384351/1 ) . 大于,小于,大于或等于,小于或等于$gt:大于$lt:小于$gte:大于或等于$lte:小于或等于例子:db.collection.find({ "field" : { $gt: value } } ); //

随便推点

通过ObjectOutputStream向一个文件中多次以追加方式写入object的解决方案_yingyingxiangshui的博客-程序员秘密

使用缺省的serializetion的实现时,一个ObjectOutputStream的构造和一个ObjectInputStream的构造必须一一对应。ObjectOutputStream的构造函数会向输出流中写入一个标识头,而ObjectInputStream会首先读入这个标识头。 因此,多次以追加方式向一个文件中写入object时,该文件将会包含多个标识头。所以用ObjectInputSt

mysql count函数判断是非为空_MySQL的COUNT函数秘密_快快跑起来的博客-程序员秘密

MySQL的COUNT语句数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,统计数量操作更是经常被用到。关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的...

python3.6安装scrapy时出现的Command "f:\python\python.exe -u -c"import setuptools,问题,已解决_我要养猪的博客-程序员秘密

在cmd里面输入pip install scrapy时出现下面的错误:解决办法:1、进入https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml,下载相应的lxml和twisted,下载好之后,打开cmd,然后运行:运行完这两次操作之后,最后运行pip install scrapy就能顺利安装成功了...

你们一直吐槽的12306,你知道他们的的架构有多牛X吗_互联网架构的博客-程序员秘密

每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!作者:绘你一世倾城来源:juejin.im/post/5d84e21f6fb9a06ac8248149虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上...

程序员欢乐送(第39期)_Jack-Cui的博客-程序员秘密

分享技术,乐享生活:“程序员欢乐送”系列文章,每周五推送,个人网站和个人公众号同步更新。 一直保持的追求有三点:技术、快乐、财富,这里记录每周值得分享的内容,周五把欢乐送达。

JAVA之多态_多态的三个必要条件_java中多态的条件_东海龙王Q的博客-程序员秘密

多态指的是同一方法的调用,由于对象的不同可能会有不同的行为。现实生活中,同一个方法,具体实现会完全不同。多态的要点:1、多态是方法的多态,不是属性的多态(多态与属性无关)。2、多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类的对象。3、父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。...

推荐文章

热门文章

相关标签