1.什么通信图
通信图(在UML 1.x中称为协作图)是一种UML交互图,它以自由形式的排列使用序列消息显示对象和/或部件(表示为生命线)之间的交互。
通信图与简单的序列图相对应(可以相互转换或替代),但没有交互使用和组合片段等结构化机制。同时,通信图假设不会发生或不相关的消息超越(即,接收顺序与发送给定一组消息的顺序不同)。
通信图与顺序图的共同点主要有如下3点:
- 主要元素相同。两种图中的主要元素都是对象与消息,且都支持所有的消息类型。
- 表达语义相同。两种图都是对系统中的交互建模,描述了系统中某个用例或操作的执行过程,二者的语义是等价的。
- 对象责任相同。两种图中的对象都担任了发送者与接收者的角色并承担了发送与接收消息的责任。通过对象之间消息的传递来实现系统的功能。
两种图之间的不同点也有如下3点:
- 通信图偏重于将对象的交互映射到连接它们的链上,这有助于验证类图中对应的类之间关联关系的正确性或建立新的关联关系的必要性。然而顺序图偏重描述交互中消息传递的逻辑顺序。因此通信图更适用于展示系统中的对象结构,而顺序图则擅长表现交互中消息的顺序。
- 顺序图可以显式地表现出对象创建与撤销的过程,而在通信图中,只能通过消息的描述隐式地表现这一点。
- 顺序图还可以表示对象的激活情况,而对于通信图来说,由于缺少表示时间的信息,除了对消息进行解释,无法清晰地表示对象的激活情况。
2.startuml通信图标含义
- Connector
表示对象或组件之间的消息或信号交换。用于在序列图或通信图中描述生命线之间的交互。
-
Self Connector
自身的信号交换
-
Forward Message
通信图中的转发消息(Forward Message)表示消息从一个生命线(或对象)传递到另一个生命线。它表示一个交互或通信由一个生命线发起并被另一个生命线接收。
转发消息用实线箭头表示,起点是发送消息的生命线,指向接收消息的生命线。箭头可能带有正在传输的消息的名称。
转发消息用于说明生命线之间的消息交换的时间顺序,并表示在交互过程中控制或数据的流动。
任何类型的交互图都可以以内联形式出现作为调用动作。内联交互图可以是匿名的或具有名称的。
-
Reverse Message
通信图中的反向消息(Reverse Message)表示对先前发送的消息的回复或响应。它表示接收消息的生命线对来自另一个生命线的消息作出回应。
反向消息用虚线箭头表示,起点是接收消息的生命线,指向发送消息的生命线。它表示响应消息回到原始发送者。
反向消息通常用于显示消息交换的时间顺序,并说明在交互过程中控制或数据的流动。
-
Frame
通信图可以在一个矩形框架内展示,框架的左上角有一个包含名称的隔间。
通信图的标题类型没有特定的长格式名称。可以使用常用的交互(interaction)作为长格式名称,用于表示交互图。
通信图也没有特定的短格式名称。可以使用短格式名称"sd"(通常用于交互图),尽管这可能会引起混淆,因为它看起来像是序列图的缩写。
3.例子
分享到: