入门PM了解UML之产品经理面试必问什么是时序图(4) - 图1

引言:

  • 本期文章主要给小白的产品经理以及即将入门的同学讲解UML模型的第三种图,——时序图。
  • 本来这一期准备讲活动图的,但是由于最近刚好公司项目里面用到了时序图,就直接拿来讲了。
  • 下一期我会写产品经理需要掌握的第四种UML——活动图。

时序图有些小伙伴有可能把他称之为顺序图或者序列图等等,说法有可能不一样,但是概念和用法以及语法定义都是一样的,很多小伙伴不明白活动图泳道图和这一期讲的时序图有什么不一样呢?看画法好像都是表明各个对象的功能流程,在活动图中,虽然流程较为清晰,但我们很难清晰地定义角色的具体职责边界和通信交互,而序列图则帮助我们补充到了这一点。

时序图的概念和目的

定义:

UML序列图是详细说明如何执行操作的交互图。它们捕获协作上下文中对象之间的交互。序列图是时间焦点,它们通过使用图表的垂直轴来表示发送消息的时间和时间来直观地显示交互的顺序。

顺序图是一种面向对象的动态图形,显示用例中参与交互的所有对象之间消息传递的时间顺序。

  • 在实现用例或操作(实例图或通用图)的协作中发生的交互
  • 系统用户与系统之间、系统与其他系统之间或子系统之间的高级交互(有时称为系统序列图)
  • 在用例图中,我们只关心用户如何使用系统的各个功能(用例),但并不关心功能(用例)的具体实现。而顺序图通过引入时间的概念,展示了用例中各个对象的行为顺序以及对象之间的消息交互过程,所以顺序图也叫做时序图。

我们构建类图的目的:

  1. 对系统中活动对象之间的高级交互进行建模
  2. 在实现用例的协作中对对象实例之间的交互进行建模
  3. 对实现操作的协作中对象之间的交互进行建模
  4. 对通用交互建模(显示交互中的所有可能路径)或交互的特定实例(仅显示交互中的一个路径)

画法

顺序图是以对象和时间为维度的二维图形,图形中的对象是按照时间顺序排列。在了解其画法之前,先来看看顺序图中重要的元素

元素

元素 含义 图示 备注
角色 用户或系统或子系统 并不是用例图中的用户,注意区分
对象 参与交互的所有对象 命名方式:类名:对象名、:对象名、类名(匿名对象)
生命线 由对象向下延伸的一条虚线,表示其存在时间 生命线上有两种状态:休眠和激活,生命线的长度为交互对象的全部生命周期
激活期 一段矩形表示对象的活跃时间 也被称为控制焦点
消息 对象之间的通信方式 见下表

关系类型

消息 含义 图示
同步消息 发送者通过消息把信号传递给接收者并停止活动,等待接受者放弃、返回或控制。
异步消息 发送者通过消息把信号传递给接收者,并继续活动,不等待接受者返回或控制。
返回消息 发送者发送消息后的反馈
自关联消息 对象给自身发送消息,一般为相同对象中方法之间的调用

入门PM了解UML之产品经理面试必问什么是时序图(4) - 图2

特别注意
  • 顺序图必须是两个或两个以上对象间进行交互
  • 顺序图的阅读是从上到下、从左到右进行
  • 消息的传递代表的是责任分配,不代表数据传递

语法

  1. 循环(loop)
    在条件满足时,重复发出消息序列。(相当于编程语言中的 while 语句。)

image.png

  1. 选择(alt)

    在多个条件中作出判断,每个条件将对应不同的消息序列。(相当于 if 及 else if 语句。)

image.png

  1. 可选(opt)
    在某条件满足时执行消息序列,否则不执行。相当于单个分支的 if 语句。

image.png

  1. 并行(Par)
    将消息序列分成多个片段,这些片段并行执行。

image.png

示例

Eg1:尝试一下从顺序图的角度来描述审批流程

入门PM了解UML之产品经理面试必问什么是时序图(4) - 图7

从上图中能够很明显的看出销售负责什么、系统负责什么、而管理员又负责什么,同时也能清晰看出这3个角色各自的输入输出;由此可见,顺序图能够帮助我们逐层拨开一个复杂业务的内部运作。


Eg2:结合上述画法,继续来看一个具体案例。该案例为用户在购物平台上从挑选商品到下单最后成功支付的过程,先来分析一下需求(个别需求为了迎合上述画法而刻意说明,真实场景可能略有差异):

  • 用户登录购物网站,并进行搜索并确认商品,最后进行下单操作
  • 创建订单后进入第三方支付平台进行支付操作
  • 支付结果会反馈给平台
  • 购物结果会反馈给用户
    入门PM了解UML之产品经理面试必问什么是时序图(4) - 图8

从上图可以清晰的看到随着时间变化,用户与用例中其他对象的消息交互顺序,这也为产品经理与开发之间提供了更加简洁有效的沟通方式。

Eg3:结合上述画法,继续来看一个具体案例,仍然是SV30沉降系统时间设置用例
image.png
入门PM了解UML之产品经理面试必问什么是时序图(4) - 图10

从图中可以清晰的看到各个对象之间的生命周期以及激活时序状态

  • 管理员通过安装登录SV30软件,同步消息至SV30等待返回是否登录成功。
  • SV30开始自身效验是否登录成功,若登录成功后返回至用户对象,开始配置时间
  • 用户登录后通过SV30配置时间后异步消息至上位组态软件。此时SV30正常运行
  • 配置的时间由SV30传达至上位组态软件接收后返回时间同步到SV30确认执行
  • SV30收到返回消息后开始并行par时间记录及时间可视化
  • 最后由SV30返回提示给用户告知配置完成且应用。

我的公众号:菜菜的PM

如果还有不明白的同学可以关注一下我的公众号↑↑↑↑
下一期会写一个产品经理面试基本都会问到的活动图