在面向对象的软件分析及设计中,UML时序图描述了系统中各个组成部分的信息交互关系。


定义

UML时序图(Sequence Diagrams)是一种面向对象分析和设计中,描述被分析系统中各个组成部分之间消息相互传递的图形。它表现了系统中各个对象在某一个用例场景的行为执行顺序。

概念

在时序图中,有如下几种概念需要了解:

  • 生命线
  • 执行
  • 同步/异步调用
  • 回复
  • 片段

生命线

生命线(lifeline)在序列图中,参与对象的生命周期。使用一个简单对象+竖直虚线表示

例如在一个餐馆中,顾客可以使用如下图形表示

1559386877305

执行

执行是指在指定对象上进行的操作,使用生命线上的矩形表示

例如顾客的点单过程就是一个执行单元

1559386988227

例如我们可以提取一个Person的接口,它有名字,能吃。

同步/异步调用

调用是信息在不同生命线的传递。调用分为同步调用和异步调用。同步调用使用实心三角直线表示,异步使用箭头实线表示。

同步调用后,需要等待被调用对象执行完成;异步调用,可以直接返回

例如一个名叫黄腾霄的顾客。

1559387467289

回复

回复指在同步调用完成后的返回,使用虚线箭头表示

1559387637862

片段

片段是指诸如,选择、循环、并行等带有逻辑状态的片段

使用如下图形圈出,并在左上角标明片段类型

1559387722853

实践

这里给出了一个餐厅的时序图。

顾客向服务员点单,如果菜品还有,则服务员将订单传递给厨师。厨师做完之后,让服务员上菜,顾客进行食用。

如果菜品已经卖完,服务员则直接告知顾客,顾客结束点单

其中菜单中的项目是菜单的组成,因此食用组合。而顾客需要依赖于菜单,才能完成点菜。

1559388099944

参考链接:


本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/UML%E6%97%B6%E5%BA%8F%E5%9B%BE.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系