知识卡片

通信图与序列图的表达取舍

结构图卡 · 1951

内容

通信图(communication diagrams,UML 1中称协作图)也是交互图的一种,但和序列图走的是相反的表达路线:序列图把参与者固定画成垂直生命线、靠位置传达消息的时间顺序;通信图则允许参与者自由摆放,靠画出的链接展示彼此如何连接,消息顺序改用编号标注而非空间位置。除了展示正式的关联实例链接,通信图还能展示只在这次交互里临时存在的瞬时链接,比如用«local»标注一个局部变量、«parameter»标注参数、«global»标注全局变量——这几个关键词在UML 1里有,UML 2里被移除了,但因为好用,作者预期它们会在习惯用法里继续留存。

结构图:

flowchart LR
    A[序列图] --> B[生命线纵向排列]
    B --> C[消息按位置从上到下表示时间顺序]
    D[通信图] --> E[参与者自由摆放, 画链接表连接]
    E --> F[消息按编号表示时间顺序]
    D --> G["瞬时链接: local/parameter/global (UML1有, UML2移除但仍常用)"]

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第12章《通信图》(源文件:_epub-src/EPUB/11.xhtml) - 结论依据:原文说明"通信图不像序列图那样,把每一个参与者画成生命线并按垂直方向展示消息序列,通信图允许自由放置参与者,通过画链接来展示参与者如何连接,并使用编号来展示消息序列",并列出«local»«parameter»«global»三个瞬时链接关键词的存废情况。 - 原始内容:通信图(communication diagrams)……不像序列图那样,把每一个参与者画成生命线并按垂直方向展示消息序列,通信图允许自由放置参与者,通过画链接来展示参与者如何连接,并使用编号来展示消息序列……这些关键词在UML 1中存在,但从UML 2中消失了。