【UML】时序图

本文深入解析了时序图的基本概念,介绍了其四大核心元素:对象、生命线、激活和消息,以及如何通过这些元素描述系统中类与类之间的交互过程。

定义
时序图:(Sequence Diagram)描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图。

作用
时序图描述类系统中类与类之间的交互,将各类之间交互建模成消息互换,类与类间相互交换完成期望行为的消息,当执行一个用例行为时,时序图中的每一条消息对应了一个类操作或状态机中引起转换的触发事件。

理解
时序图就像是一条蚂蚁搬家一样,蚂蚁为什么不会迷路呢?它们会散发出一种气味,它们依靠这种气味就不会迷路,然后大家团结协作把食物搬回巢中,如果途中“道路”被破坏也可以找到家,这个好像蚂蚁有着超强的记忆力。
对象是蚂蚁;蚂蚁走的路就像是一条生命线;散发的气味就是之间传递的消息;激活就是“迷路”再次找到回家的路。
小蚂蚁回家的路并不是一番风顺的接下来详细是怎么回家的吧。

详细介绍
时序图包括四个元素:对象(Object)、生命线(Lifeline)、激活(Activation)、消息(Message)

1、对象(Object)
对象代表时许图中的对象在交互中所扮演的角色。时序图中对象的 符号和对象中对象所用的符号一样,都是使用矩形将对象名称包含起来,并且对象名称下有下划线,将对象置于时序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示是在交互的过程中被创建的。

2、生命线(Lifeline)
生命线是一条垂直的虚线,表示时序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从时序图的顶部一直延伸到底部,所用的时间取决于交互持续的时间。对象和生命线结合在一起称为对象的生命线。对象的生命线包含矩形的对象图标以及图标下面的生命线。

3、激活(Activation)
时序图可以描述对象的激活(Activation)和去激活(Deactivation)。激活代表时序图中的对象执行一项操作的时期。激活和可以被理解为C中的一对"{}"中的内容。
激活表示该对象被占用以完成某个任务;去激活指的是对象处于空闲状态,在等待消息。
在UML中,为了表示对象是激活的,可以将对象的生命线扩展成矩形,矩形称为激活条或控制期,对象就是在激活条的顶部被激活的。
对象的就是在激活条的顶部被激活的。对象在完成自己的工作后被去激活,这通常发生在一个消息箭头离开对象生命线的时候。

4、消息(Message)
消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模。
消息用于在实体间传递消息。允许实体请求其他的服务,类角色通过发送或接受消息进行通信。消息可以激发某个操作,唤起信号或导致目标对象的创建或撤销。
消息序列可以用两种图来表示,时序图和协作图。时序图强调消息的传递顺序,协作图强强调交换信息的对象间的关系。
消息是两个对象间的单路通信,从发送到接收方的控制信息流。消息可以用于在对象间传递参数。消息可以是信号,即明确的、命名的、对象间的异步通信;也可以是调用,即具有返回控制机制的操作的同步调用。

符号含义
在这里插入图片描述绘制两个对象之间的异步消息
在这里插入图片描述在两个对象之间绘制消息
在这里插入图片描述绘制反身消息
在这里插入图片描述显示过程调用返回的消息
在这里插入图片描述绘制两个对象之间的过程调用

建模规则
(1)设置交互的语境,这些语境可以是系统、子系统、操作、类、用例和协作的一个脚本。
(2)通过识别对象在交互中扮演的角色,根据对象的重要性,将其按从左到右的方向放在是时序图中。
(3)设置每个对象在交互中扮演的角色,根据对象的重要性,将其按从左到右的方向放在时序图中。
(4)从引发某个交互的信息开始,在生命线之间从上向下的顺序画出随后的消息。
(5)设置对象的激活期,这可以可视化实际计算发生时的时间点、可视化消息的嵌套。
(6)如果需要设置时间或空间的约束,可以为每个消息附上合适的时间和空间约束。
(7)给某个控制流的每个消息附上前置或后置条件,这可以更详细的说明这个控制流。

### UML时序图的绘制方法 UML时序图是一种用于描述系统中对象之间交互行为的图形化工具,尤其适用于展示用例的详细流程。在绘制时序图时,首先需要明确参与交互的对象和参与者[^4]。这些对象通常包括用户、订单系统、库存系统和支付系统等实际组件。 接下来,按照时间顺序将这些对象从左到右排列,并为每个对象绘制一条垂直的生命线,表示该对象在整个交互过程中的存在状态。生命线是一条虚线,从对象符号向下延伸,贯穿整个图表[^1]。 然后,在生命线上添加消息传递的过程。消息通过水平箭头表示,箭头的方向指示了消息的发送方向。例如,“创建订单”、“检查库存”、“发起支付”等操作可以通过不同的箭头来表示[^4]。此外,激活条(Activation)可以用来表示某个对象正在执行某个操作,它通常是一个矩形块,覆盖在生命线上,表明该对象在此时间段内处于活跃状态。 根据需求,还可以在图中添加约束条件或注释,以提供更多的上下文信息。这有助于理解复杂的交互逻辑并确保设计意图被准确传达。 ### 使用场景 UML时序图广泛应用于软件开发的不同阶段,特别是在需求分析和设计阶段。它可以用来展示用例的详细流程,帮助团队更好地理解和实现业务规则。对于复杂交互过程的分析,时序图能够清晰地揭示各个组件之间的依赖关系和调用顺序[^4]。 在系统设计方面,时序图支持对系统组件间的协作进行建模,从而促进模块化设计和接口定义。同时,它们也是文档化系统行为的有效手段,便于后期维护和知识传递[^4]。 ### 工具推荐 为了更高效地创建和编辑UML时序图,有许多专业的绘图工具可供选择。ProcessOn 是一个在线作图工具聚合平台,支持多种类型的图表制作,包括但不限于流程图、思维导图、UI原型图以及UML图等。使用 ProcessOn 可以轻松地在线绘制时序图,而且无需担心下载和更新问题,只要有浏览器就能随时随地工作[^3]。 除了ProcessOn之外,还有其他一些流行的UML绘图工具,如StarUML、Visual Paradigm 和 Enterprise Architect 等,它们都提供了强大的功能集来支持高级建模活动。这些工具不仅允许用户绘制静态结构模型,还支持动态行为模型的构建,比如时序图、通信图等。 ```mermaid sequenceDiagram participant User participant OrderSystem participant InventorySystem participant PaymentSystem User->>OrderSystem: 创建订单 OrderSystem->>InventorySystem: 检查库存 InventorySystem-->>OrderSystem: 库存可用 OrderSystem->>PaymentSystem: 发起支付 PaymentSystem->>PaymentSystem: 处理支付 PaymentSystem-->>OrderSystem: 支付成功 OrderSystem-->>User: 订单确认 ``` 上述Mermaid语法示例展示了如何构造一个简单的时序图,其中包含了四个参与者:用户、订单系统、库存系统和支付系统。通过这种方式,开发者和技术团队成员能够直观地看到系统的运作流程,并据此做出相应的设计决策。
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值