通信图主要用于表现生命线之间的相互作用,其中生命线之间的结构与消息传递过程的对应关系是核心。消息的顺序是通过序列给出的编号方案表达。通信图相当于不使用任何结构机制的简单序列图。
创建通信图
选择适当的Package节点,鼠标右键启动上下文菜单并选择【New Diagram】菜单项。
分类选择【UML Behavioral】,类型选择【Communication】。
添加生命线
可以通过工具栏中的Object图标添加生命线。
生命线这个说法来自序列图(Sqeuence Diagram)。同样,Boundary,Control,Entity也和序列图中一样,分别代表MVC中的View,Control和Model。可以根据需求使用。这里统一使用Object。
接下来我们以某公司管理活动为例对通信图进行说明。
上图中我们通过Object图标添加了3个生命线,分别是Project Manager,Leader和Programer。他们是接下来说明的通信过程的参与者。
添加关联关系
我们使用Associate图标添加生命之间的关联关系。这种关系可以理解为不同生命线之间的沟通渠道,它们是通信的基础。
也可以根据需求为关联关系设置多重度等信息。
添加消息
在关联关系上按下鼠标右键启动上下文菜单。
根据消息的方向选择菜单项,这里我们选择从ProjectManager到Leader。
可以看到响应的关联关系旁边出现了一个向下的箭头和形式如【1:<call>()】的消息签名。最前面的1就是消息的编号。
鼠标选中消息之后可以通过属性对话框对其进行编辑。
上图中我们修改了消息的名称为SendnNotification。由于这是发通知的第一个动作,因此需要确保【Start New Group】被选中。
Leader收到通知以后需要将通知转发给每个Programer,我们以同样的方式添加Leader到Programer的消息:
可以看到消息编号变成了1.1,表示这个消息是1:SendNotification的后续动作。继续编辑这个消息:
可以看到【Start New Group】处于非选中状态。保存之后的通信图状态如下:
明天继续!