UML设计系列(3):时序图

动态的建模

在前面,初步了解了UML及其中之一:java之类图。

类图可以视为是一种静态的建模,时序图则是一种动态的建模。

一般根据时间的先后顺序,包括一组对象及它们之间的消息。比如一个很普通的用户登陆时序图

UML设计系列(3):时序图_第1张图片

时序图

从上面的图可以看到,一个时序图包括涉及到的对象:用户,登陆系统,数据库,会员界面。

以及对应的消息:用户发起的登陆操作,系统发起的数据库查询及页面跳转等。

参加者对象

可以把所有涉及到的系统统一称为参加者对象或者直接叫对象。比如用户对象,数据库对象,用户系统对象。

生命线

其中对应的竖线称为生命线。从上面看到,不同的对象参与的时机是不一样的,用户对象参与了整个登陆操作,而数据库只在查询时才参与。而且一个对象可以在一个时序图中多次参与,比如用户登陆成功之后,进行会员信息查看,也会再次发生在数据库对象上。如图下红色部分

UML设计系列(3):时序图_第2张图片

消息

上面的对象间的操作传递,发送消息-Send Message:实线+实心箭头,箭头指向消息接收方。

接收方回传消息-Replay Message:虚线+箭头。上面的第3步,其实画的并不准确,应该是replay message,而不应该是Send message。

同步/异步消息

有时候消息还是有区别的。多线程或者消息中间件的时候,可能会突出消息的类型。(可惜我用的VP上未能找到连续的区别,其它工具是可以的)

比如上面的例子,用户登陆之后,会给用户发送站内信。既用户可以执行其它操作,但是不会由于发送站内信而阻塞等待。如下紫色表示

UML设计系列(3):时序图_第3张图片

站内信的返回时机是不定的,因为是异步的,可能返回在4-7步的之间的任何时候,但是都不会影响其它操作的进行。

条件/循环等

alt

上面流程里面有一个alt框选项,表示如果用户合法(用户存在+通过检查等),就会跳转到会员页面;否则就会返回前端错误信息(框中虚线下面部分),这就是一个条件操作:

UML设计系列(3):时序图_第4张图片

这有点类似if...else,if条件为真,则走到虚线上面,else否则就走虚线下面

opt

opt是一种特殊的alt选项,它只有一条线路,可以理解为if条件,没有else;如果条件为真就,就走到里面执行。比如如果用户登陆时,密码安全性不够,就提示用户进行修改,如下绿色背景图

UML设计系列(3):时序图_第5张图片

循环

循环也是一个很重要的操作,顾名思义,只要符合条件,可多次执行。

比如用户查看相册,取出图片地址,前端进行渲染(只是为了作说明,例子不一定恰当)

UML设计系列(3):时序图_第6张图片

除了上面几个以外,还有其实的操作符,下面的解释来自网上

操作符 含义
par 并行;每一片段都在运行
alt 提供多重片段;根据条件执行
opt 只有一个片段的alt选项,条件为真时执行
loop 循环;在条件内,片段可以执行多次
region 临界区域;片段只能有一个线程对它立即执行
neg 否定;片段示明一次无效交互
sd 顺序图;可以用它来围绕整个顺序图

其中,要说明一下sd,它表示整个顺序图,比如上面的登陆

UML设计系列(3):时序图_第7张图片

VP工具

如果你和我一样,用的VP,前面一个文章有介绍,并附下载地址

时序图

UML设计系列(3):时序图_第8张图片

对象及消息

UML设计系列(3):时序图_第9张图片

操作符

UML设计系列(3):时序图_第10张图片

这里面可以设置操作符类型及条件

UML设计系列(3):时序图_第11张图片

UML设计系列(3):时序图_第12张图片

你可能感兴趣的:(UML,uml)