UML——时序图

1. 时序图

按时间顺序显示对象交互的图。顺序图的交互关系表示为一张二维图。其中纵向是代表时间维度,时间向下延伸,按时间依次列出各个对象所发出和接收的消息。水平方向是代表对象的维度,排列着参与交互的各个独立的对象。

2. 构成元素

时序图主要由以下7种元素组成:

  • 角色(actor)
  • 对象(object)
  • 生命线(LifeLines)
  • 消息(Message)
  • 控制焦点
  • 自关联消息
  • 组合片段

下面我将具体展开介绍每一种元素:
1. 角色
系统角色。可以是人或者其它系统和子系统,以一个小人图标表示。
2. 对象
对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:

(1)对象名和类名。例如:华为手机:手机、loginServiceObject:LoginService;

(2)只显示类名,不显示对象,即为一个匿名类。例如::手机、:LoginSservice。

(3)只显示对象名,不显示类名。例如:华为手机:、loginServiceObject:

3. 生命线
时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表示。
4. 消息
表示对象之间发送的信息。消息分为三种类型:

(1)同步消息(Synchronous Message):消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条实线和实心箭头表示。
(2)异步消息(Asynchronous Message):消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条实线和大于号表示。
(3)返回消息(Return Message):返回消息表示从过程调用返回。以小于号和虚线表示。

5. 控制焦点
控制焦点代表时序图中在对象时间线上某段时期执行的操作。以一个很窄的矩形表示。
6. 自关联消息
表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。以一个半闭合的长方形+下方实心剪头表示。
在这里插入图片描述

7. 组合片段
组合片段用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片段共有13种,名称及含义如下:

组合名称组合含义
ref引用其他地方定义的组合片段
alt在一组行为中根据特定的条件选择某个交互
opt表示一个可选的行为
break提供了和编程语言中的break类拟的机制
par支持交互片段的并发执行
seq强迫交互按照特定的顺序执行
strict明确定义了一组交互片段的执行顺序
neg用来标志不应该发生的交互
region标志在组合片段中先于其他交互片断发生的交互
ignore明确定义了交互片段不应该响应的消息
consider明确标志了应该被处理的消息
assert标志了在交互片段中作为事件唯一的合法继续者的操作数
loop说明交互片段会被重复执行

3. 画图推荐

processon
ProcessOn是一个在线作图工具的聚合平台,它可以在线画流程图、思维导图、UI原型图、UML、网络拓扑图、组织结构图等等,您无需担心下载和更新的问题,不管Mac还是Windows,一个浏览器就可以随时随地的发挥创意,规划工作。
在这里插入图片描述

4.应用场景

1. 梳理业务流程
软件开发都是为了支撑某个具体的业务。有时候业务的流程会比较复杂,涉及到多种角色,这时就可以使用时序图来梳理这个业务逻辑。这样会使业务看起来非常清晰,代码写起来也是水到渠成的事情了。
在这里插入图片描述

2. 梳理开源软件
成熟框架的源代码调用深度都比较深,类之间的调用关系也比较复杂,此时便可以用时序图来梳理框架中这些对象之间的关系。如下图为Tomcat启动流程,通过梳理各个组件之间的关系,更便于记忆。
在这里插入图片描述

参考

  • 7
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值