UML_04_时序图
一、前言
时序图建模工具,推荐一个工具 https://www.zenuml.com/
时序图是一种强调消息时序的交互图,他由对象(Object)、消息(Message)、生命线(Lifeline) 和 Combined Fragments 组成,它主要描述系统中对象和对象之间的交互,它将这些交互建模成消息交换。
时序图将交互关系展示成了一个平面二维图,其中纵向标示时间轴,时间沿竖线从上向下进行。横向轴标示了交互中各各个对象。对象的的用生命线表示。消息从一个对象的生命线到另一个对象生命线的箭头表示,箭头以时间顺序在图中从上到下排列,从左到右排列。
二、时序图
1.对象(Object)和生命线(Lifeline)
生命线头上那个方正的框里面存放的就是对象,对象有自己的名字,生命线其实就是从上到下的一个虚线。生命线标示一个对象存在的生命周期,两条生命线中间通过消息连接起来,


对象名 :实例名
2.消息(Message)
消息用于对象间传递信息,对象之间的信息互通就是通过消息,消息按照分类可分为:同步消息(Synchronous Message)、异步消息(Asynchronous Message)、 返回消息(Return Message) 和 自关联消息(Self-Message)
| 消息类型 | 描述 |
|---|---|
| 同步消息 | 发送消息的对象在发送消息后会挂住,等消息接受对象接受消息返回后才会解除挂住的状态继续自己的工作 |
| 异步消息 | 发送消息的对象在发送消息后会继续自己的工作,而不等消息接受对象接受消息返回 |
| 返回消息 | 标示发送消息后返回的动作 |
| 自关联消息 | 一个对象内自调用的情况 |

3.Combined Fragments
标示有一定条件的消息发送
Alternative fragment(denoted “alt”) 标示 if…then…else
Option fragment (denoted “opt”) 标示Switch
Parallel fragment (denoted “par”) 标示同时发生
Loop fragment(denoted “loop”) 标示for
Break标示退出循环
3.1 loop
循环
当没有指定循环边界,默认范围为[0,无穷大]:

如果只指定了一个值,那么默认执行该值次数:

指定了循环边界,则最少执行最小值值,最多执行最大值次数:

实现dowhile方式,至少执行一次,如果size<0则退出:

3.2 alt
条件判断
如果n>0,则执行agree函数
否则,执行reject函数

3.3 opt
switch,当满足不同条件执行不同方法:

3.4 break
n=10时候执行save并退出循环

3.5 par
同时进行,比如多个线程同时执行任务

三、实例
1.示例1

四、参考资料
UML_04_时序图的更多相关文章
- [UML]UML系列——时序图(顺序图)sequence diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- 使用Astah制作UML时序图
Astah制作UML图--详解 时序图的制作 开篇语: 本文为光荣之路原创文章,欢迎转载,但请注明出处. 做测试的难免看到开发画出各种设计图,都很羡慕,比如: 帅么,漂亮么,其实我们测试人员也可以轻松 ...
- SPI总线协议及SPI时序图详解
SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚 ...
- GIT FLOW 时序图
git flow sequence md link: git branching model master->master branch: use default branch Note rig ...
- [转载]UML时序图总结
前言 在我的工作中,用的最多的就是时序图了.可能由于工作的原因,我也是最喜欢画时序图了,很清楚,很明了,什么时候发送什么消息,到达什么状态,一下子就展示在你的脑海里,对于消息驱动的程序来说,是再好不过 ...
- 看懂UML类图与时序图
看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...
- UML系列04之 UML时序图
概要 本章对UML的时序图进行介绍,主要内容包括:时序图介绍时序图组成 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3523355.html 时序图介绍 ...
- 使用网站websequencediagrams在线画时序图
在线画时序图的网站:https://www.websequencediagrams.com/ 该网站提供拖拉图形和编写脚本代码2个方式来制作时序图,同时提供多种显示风格. 实例: 1.脚本代码: ti ...
- 安装StarUML 及使用时序图(Sequence Diagram)和用例图(use case diagram)
时序图 用例图
随机推荐
- Javascript中的函数数学运算
1.Math函数与属性使用语法 Math.方法名(参数1,参数2,...); Math.属性; 说明 Math函数可以没有参数,比如Math.random()函数,或有多个参数,比如Math.max( ...
- 设置小窗口Activity
http://blog.csdn.net/xieyihua1994/article/details/52586270 我们知道Activity本身是没有界面的.所以activity类创建了一个窗口,开 ...
- 前端学习之NaN浅析
在学习Java集合的时候遇到了Float.isNaN(float)函数,点进去一看就不理解了,函数实现如下: public static boolean isNaN(float v) { return ...
- [.net基础]访问修饰符
标题:[.net基础]访问修饰符 一.前言 基础掌握不牢固啊,所以记录下来. 二.方法访问修饰符Internal (1).创建工程ParentAndSon (2).添加类ModelA namespac ...
- python之subprocess
官网介绍:https://docs.python.org/3/library/subprocess.html Popen(): [root@oracle scripts]# cat sub_popen ...
- keepalived结合lvs
ip划分: RS1:192.168.223.135 RS2:192.168.223.137 节点node1和node2的keepalived(node1:192.168.223.136,node2:1 ...
- 20145310 《Java程序设计》第7周学习总结
20145310 <Java程序设计>第7周学习总结 教材学习内容总结 本周主要进行第十二章和第十三章的学习. Lambda定义:一个不用被绑定到一个标识符上,并且可能被调用的函数. 在只 ...
- 【读书笔记】《深入浅出nodejs》第五章 内存控制
海量请求+长时间运行 -> 内存控制 -> 一切资源高效循环利用 1. V8的垃圾回收机制与内存限制 在Node中通过JavaScript使用内存时,只能使用部分内存(64位系统下约1.4 ...
- COGS314. [NOI2004] 郁闷的出纳员
★★★ 输入文件:cashier.in 输出文件:cashier.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] OIER公司是一家大型专业化软件公司,有着数 ...
- Commons Configuration之二基本特性和AbstractConfiguration
Configuration接口定义一大堆方法.一切从头开始实现这些方法非常困难.因为AbstractConfiguration类存在.该类在Commons Configuration中充当大多数Con ...