满纸荒唐言,一把心酸泪,都云作者痴,谁解其中味。 技术博客 心情随笔 登录
UML时序图-UML Sequence Diagram
2024/8/22 602

导航

1前言

2UML时序图中的基本元素

2.1对象

2.2消息

2.3激活框

2.4生命线

3UML时序图中的消息

3.1同步消息

3.2异步消息

3.3返回消息

3.4自关联消息

3.5创建消息

3.6删除消息

3.7发现消息

3.8丢失消息

4组合片段

4.1循环

4.2抉择

5约束

5.1持续时间约束

1 前言

我们在日常生活中处理一项复杂的事务时,首先需要考虑“谁在什么时候该干什么,以及先干什么后干什么”,如果办事前没有这个时序逻辑,那么事情就会办得一团糟。同样在软件设计开发中,时序也是编写代码前需要提前考虑清楚的重要环节,UML时序图以可视化的方式,帮助软件开发人员快速的描述基于时间顺序和参与对象之间的先后逻辑关系,其核心价值并不在于描述静态结构,而在于分析和设计系统的动态行为,尤其是在分布式/并发等复杂软件系统中,时序图可以做到剥丝抽茧,一目了然,是软件构架师和高级开发人员的必备技能之一。

2 UML时序图中的基本元素

UML时序图-基本元素

2.1 对象

参与交互的成员,通常为类的实例,用矩形表示。

2.2 消息

表示对象之间的通信,可为操作、调用或信号,消息是时序图的核心所在。

2.3 激活框

表示对象在生命线上持续一段时间的活动。

2.4 生命线

每个对象下的垂直虚线,由上至下表示时间的先后顺序。

3 UML时序图中的消息

在面向对象的分析和设计中,对象之间的行为交互可视为对象之间的消息传递,比如当一个对象调用另一个对象中的行为时,即完成了一次消息传递。

3.1 同步消息

UML时序图-同步消息

同步消息的特征是需要等待消息处理完成后才能进行下一个动作行为。比如一位家庭主妇,必须在洗衣完成后才能炒菜,因此洗衣就是一个同步行为。在实际软件开发场景中,普通函数调用,阻塞式的网络通信均属于同步消息,同步消息使用实心箭头表示。

3.2 异步消息

UML时序图-异步消息

异步消息的特征是无需等待消息处理完成即可进行下一个动作行为,比如更聪明的家庭主妇会先打开电饭锅煮饭,在饭煮熟的一个小时内,还完成了洗衣和炒菜。她并不需要等一个小时饭煮熟后才去洗衣炒菜,因此煮饭就是一个异步行为。在实际软件开发场景中,线程的执行,一些高级语言中的异步函数调用均属于异步消息,异步消息使用分叉箭头表示。

3.3 返回消息

UML时序图-返回消息

返回消息使用分叉虚线箭头表示。

3.4 自关联消息

UML时序图-自关联消息

自关联消息用于表示同一个对象中的调用,或递归调用。

3.5 创建消息

UML时序图-创建消息

位于顶部的对象表示交互前已存在,不在顶部的对象表示在交互过程中创建。

3.6 删除消息

UML时序图-删除消息

删除消息通常对应对象的销毁/释放。

3.7 发现消息

UML时序图-发现消息

发现消息是指来自未知对象的消息。

3.8 丢失消息

UML时序图-丢失消息

丢失消息是指已发送但未到达目标对象的消息,或是发送给当前未列出对象的消息。

4 组合片段

组合片段是UML顺序图中用于描述复杂控制流、条件逻辑和交互的特殊结构。它通过操作符(loop、alt等)和交互区域(实线或虚线框起来的区域)来定义,能大大增强顺序图的表达能力。

4.1 循环

UML时序图-循环

用loop表示,通常对应编程语言中的for、while等各种循环。

4.2 抉择

UML时序图-抉择

用alt表示,通常对应条件分支,比如编程语言中的if...else、switch...case等。

5 约束

约束是施加在消息、生命线或组合片段上的条件,用于限定其行为。它定义了在何种条件下某事件会发生、消息会传递或状态会改变。约束通常用大括号 {} 括起来,放在相关的元素附近。

5.1 持续时间约束

UML时序图-持续时间约束

约束两条消息之间的持续/间隔时间。

<全文完>

赞同 0
反对 0
登录注册会员 后发表评论。
评论列表