EA&UML日拱一卒 通信图基本操作

面向对象思考

共 1556字,需浏览 4分钟

 ·

2023-01-05 15:23

13c82f6827c2ae76976ec64b6da25eb2.webp

什么通信图

通信图主要用于表现生命线之间的相互作用,其中生命线之间的结构与消息传递过程的对应关系是核心。消息的顺序是通过序列给出的编号方案表达。通信图相当于不使用任何结构机制的简单序列图。

创建通信图

选择适当的Package节点,鼠标右键启动上下文菜单并选择【New Diagram】菜单项。

6dc0765eaf4c95d2ecc3a9401a649c70.webp

分类选择【UML Behavioral】,类型选择【Communication】。

添加生命线

可以通过工具栏中的Object图标添加生命线。

4022a6446c06dbb7782a98e2609831d6.webp

生命线这个说法来自序列图(Sqeuence Diagram)。同样,Boundary,Control,Entity也和序列图中一样,分别代表MVC中的View,Control和Model。可以根据需求使用。这里统一使用Object。

接下来我们以某公司管理活动为例对通信图进行说明。

66317b818b64a96922302fa0bdfdea34.webp

上图中我们通过Object图标添加了3个生命线,分别是Project Manager,Leader和Programer。他们是接下来说明的通信过程的参与者。

添加关联关系

我们使用Associate图标添加生命之间的关联关系。这种关系可以理解为不同生命线之间的沟通渠道,它们是通信的基础。

0f79dbbdc3dec91e92ae3ff13dd3d11f.webp

也可以根据需求为关联关系设置多重度等信息。

添加消息

在关联关系上按下鼠标右键启动上下文菜单。

7cdad156af4f04ee7caebbed6ae78e6b.webp

根据消息的方向选择菜单项,这里我们选择从ProjectManager到Leader。

5409d61e43c7ab23428b38b5b2782cc6.webp

可以看到响应的关联关系旁边出现了一个向下的箭头和形式如【1:<call>()】的消息签名。最前面的1就是消息的编号。

鼠标选中消息之后可以通过属性对话框对其进行编辑。

c3bf37ee5a825e2d042c3ddd4db64237.webp

上图中我们修改了消息的名称为SendnNotification。由于这是发通知的第一个动作,因此需要确保【Start New Group】被选中。

Leader收到通知以后需要将通知转发给每个Programer,我们以同样的方式添加Leader到Programer的消息:

56413c0a02e4ff78f12539d9598ea97f.webp

可以看到消息编号变成了1.1,表示这个消息是1:SendNotification的后续动作。继续编辑这个消息:

3d986d98f83b0cf9147c8d543bf6dd3f.webp

可以看到【Start New Group】处于非选中状态。保存之后的通信图状态如下:

1484c1429c2c2647ec26e763b45b6b8b.webp

明天继续!

作者著作介绍

《实战Python设计模式》是作者出版的技术书籍,该书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

98b1cb54f86574e43058b623eb3df0d1.webp

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛; 希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考; 使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。




觉得本文有帮助?请分享给更多人。

关注微信公众号【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!


浏览 86
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报