通信图和时序图都是UML交互图,可以相互转化,具备相似的责任主体,都是通过消息驱动,具有顺序性。
但也有明显区别,通信图表达的是对象之间的合作关系,时序图表达的是对象之间产生合作发生消息的时间顺序。
协作图又叫通信图,是一种UML交互图,显示对象与对象之间因为用例描述的系统事件而进行的协作,侧重于对象之间的合作关系。协作图关注对象在参与具体交互时,对象之间如何链接以及传递什么消息。
协作图主要由对象、消息和链三个元素构成,通过在对象之间建立链接并在链接上添加消息来表明对象间的交互,消息名称反映了引用对象的意图。
协作图以图或网格格式描述对象交互,其中对象可以置于图中任何位置。在使用协作图时,通过在对象之间建立链接并在其上附加信息来表明对象间的交互,消息名称反映了在与被引用对象交互时引用对象的意图。
自UML 2.0 之后,不再使用协作图,都统一使用通信图,下文统一称为通信图。
支持多人在线同屏创作,还可以设置分享链接,信息实时传递。
只需输入一句话,就自动生成所需图形,还可以对图形风格自动美化。
内置多种主题风格,也可以自由设计你喜爱的风格样式。
支持插入图标、图片、标签、备注LaTex公式、代码块、链接、附件等多种形式组件。
支持导出PNG、VISIO、PDF、SVG等格式,支持导入VISIO、Mermaid格式。
文件实时存储,多端设备云同步,历史版本可追溯,数据安全有保障。
通信图和时序图都是UML交互图,可以相互转化,具备相似的责任主体,都是通过消息驱动,具有顺序性。
但也有明显区别,通信图表达的是对象之间的合作关系,时序图表达的是对象之间产生合作发生消息的时间顺序。
通信图主要由对象、消息和链三个元素构成。
对象:协作图与时序图中对象的概念是一样,只不过在协作图中,无法表示对象的创建和撤销,所以对于对象在图中的位置没有限制。
消息:消息由发送者、接收者和消息名称三个部分构成,为了说明交互过程中消息的发送顺序,需要给消息添加序号。
链:链是对象之间的连接,也是类关联的一个实例,链使用实线或弧来连接两个对象。
消息一般分为同步消息、异步消息、返回消息、自关联消息。
同步消息:对象发送消息后,需要接收消息的对象响应完毕并返回消息时才会进行其余的工作,以“实线箭头”表示;
异步消息:对象发送消息后,不需要等待接收对象的返回消息可以继续执行其余的工作,以“实线+大于号”表示;
返回消息:从过程调用返回,以“虚线箭头”表示;
自关联消息:表示方法的自身调用,或者一个对象内的一个方法调用另外一个方法,以一个“半闭合的长方形+下方实线箭头”表示。
消息的编号有两种,一种是无层次编号(按顺序编号),简单直观;另一种是嵌套编号,更易于表示消息的包含关系。
1,设置交互的语境
2,设置交互的场景
3,对每个对象设置初始特性
4,描述对象之间可能有信息沿着它传递的链
5,设置消息的顺序号
对于用例:通过描述对象之间消息的传递情况来反映具体使用语境的逻辑表达
对于对象:显示对象及其交互关系的空间组织结构
对于类:表现一个类操作的实现
通信图和时序图在描述对象交互时,虽然都关注对象之间的消息传递,但各有侧重点,不能完全替代。
时序图强调对象之间消息传递的时间顺序,而通信图更关注对象之间的结构和消息的传递方式。
通信图中对象和时序图中的对象概念相同,命名方式一般有三种:
1)显示对象名和类名
2)只显示对象名,不显示类名
3)只显示类名,不显示对象名
这三种命名方式都符合标准,哪种最容易让阅读人理解,就选择哪种。
不能。每个消息都有一个编号,编号一般为整数,用以表明消息的发送顺序。
时序图的时间顺序是从上到下的顺序,通信图的时间顺序通过消息编号来表示。
链一般有两种形式。一种是链接两个不同的对象,通过直线表示,另一种是对象跟自己链接,通过弧来链接。
通信图用箭头表示消息方向,错误的箭头会颠倒控制流,所以要严格标注箭头方向,指向消息接收方。
通信图适合表达对象之间结构清晰的交互场景,不适合将整个系统流程画在一张图上,会导致对象和线条混乱难辨,所以每张图聚焦一个用例或模块交互,对象数量控制在 5~7 个。