EA&UML日拱一卒--序列图(Sequence Diagram)::交互概述图

之前的两篇文章分别介绍了时序图中交互和门的概念并进行了简单的比较。相信门的用途比较好理解,但是交互的应用场景恐怕就不是一下子可以想到的了。


今天稍微跳跃一下,通过交互概述图进一步说明交互的使用场景。


复习


先看看【EA&UML日拱一卒-时序图::交互和交互使用】一文(以下简称【交互】)中的例子,SpeedControl交互的实例ConstantSpeedControl指定了实参和返回值以后,可以实现参数,结果的传递。

EA&UML日拱一卒--序列图(Sequence Diagram)::交互概述图_第1张图片


但是如果想根据结果再进行一些判断或处理的话,就会比较麻烦。虽然也可以做,但是时序图会很难看。这里UML提供了另一种解决方案:交互概述图。


概念


交互概述图是活动图的变体,它合并了序列图片段和控制流构造。


画法


EA&UML日拱一卒--序列图(Sequence Diagram)::交互概述图_第2张图片


分类选择【UML Behavioral】,图面类型选择【Interaction Overview】即可。


示例


我们直接将【交互】一文中创建的各个交互使用拖到绘图区即可。具体就是下图红框中的各个节点。它们是定义了实参的交互使用。

EA&UML日拱一卒--序列图(Sequence Diagram)::交互概述图_第3张图片



拖动操作完成后,可以得到下图。

EA&UML日拱一卒--序列图(Sequence Diagram)::交互概述图_第4张图片



当然也可以用【交互】中同样的步骤进行交互使用的添加。对,完全一样的步骤。这里就不再赘述了。


接下来可以向Activity图一样在交互使用之间连线,增加判断环节等。下面就是完成以后的样子。

EA&UML日拱一卒--序列图(Sequence Diagram)::交互概述图_第5张图片



是不是很强大?


理所当然,在图中出现的每一个交互必须是完整的,因为没有什么可以从外部传送消息。内部带有消息门(gate)的交互是不应该出现在这里的。


重要的事情再说一遍


使用门来导入导出信息也就意味着:交互本身不是完整的,被设计成和外部的利用者配合来完成某项工作。这时交互的功能就相当于一个零件。


如果没有定义门来导入导出信息就意味着:交互本身的角色以及角色的关系是完整的。调用者把交互看作完整的处理使用,参数的作用是指定交互的动作方式。


以上就是今天的文章,如果它能给您带来些许收获,欢迎点赞并推荐给朋友!

阅读更多更新文章,请扫描下面二维码,关注公众号【面向对象思考】

EA&UML日拱一卒--序列图(Sequence Diagram)::交互概述图_第6张图片

你可能感兴趣的:(UML)