Python设计模式 - UML - 交互概述图(Interaction Overview Diagram)
简介
交互概述图是将不同交互图衔接在一起的图,属于UML2.0的新增图。交互概述图并没有引入新的建模元素,其主要元素来自于活动图和时序图。交互概述图侧重从整体上概览交互过程中的控制流,包括交互图之间的事件或消息流。
当前交互概述图主要应用于活动图与时序图之间的协作,主要有两种形式:交互和交互应用,前者适用于控制流相对简单的场景,后者适用于控制流相对复杂的场景。
交互概述图建模步骤
- 熟悉系统业务流程,确定交互概述图中需要覆盖的重要交互控制流
- 确定作为主线的交互图以及作为细化的另一种交互图
- 确定主线交互图中的主要交互节点,根据复杂度和重要性需要细化哪些节点
交互概述图主要元素
交互概述图中未引入新增元素,所有元素都来自于活动图和时序图,参见活动图主要元素部分和时序图主要元素部分
交互概述图主要形式
交互概述图理论上可以应用于不同交互图之间的整合及衔接,但在实际项目中应用并不是很广,常见场景为在活动图和时序图的协作。根据场景的复杂度采取两种不同的协作形式:
- 交互(Interaction):活动图控制流中内嵌具体时序图的交互过程
适用于相对简单的交互概述图场景,在以一种交互图为主线的图中内嵌另一种交互图的具体实现。比如以活动图的控制流为主线,同时内嵌时序图细化活动图中重要活动节点或分支。
UML表示法

操作指引
- 打开Visual Paradigm,切换到Diagram菜单

- 点击“New”按钮,在弹出的对话框Search栏中输入"Interaction Overview Diagram",如果你最近使用过该Diagram就会默认显示在最前面(LRU算法)

- 选中"Interaction Overview Diagram",点击"Next"进入下一个页面,输入Diagram Name,也可以使用默认设置,然后点击"OK"

- 进入Interaction Overview Diagram编辑页面,点击左侧"Interaction"按钮,在右边的编辑框中创建新的Frame

- 交互应用(Interaction Use):活动图控制流中以ref的方式引用时序图中的交互过程
适用于相对复杂的交互概述图场景,在以一种交互图为主线的图中复用ref格式的交互节点。比如以活动图的控制流为主线,同时ref另一种交互图中的节点达到整体概览不同交互图之间协作过程的目的。
UML表示法

操作指引
- 参见交互(Interaction)处步骤
- 进入Interaction Overview Diagram编辑页面,点击左侧"Interaction Use"按钮,在右边的编辑框中创建新的Frame

交互概述图示例
以网购为例
主线活动图

细节时序图


交互概述图注意事项
- 交互概述图中的流程应详简得当,既能够体现出交互控制的主要过程,又能够覆盖到关键的逻辑判断
- 对于重要的交互控制流,如果内部流程不是太复杂的话,建议在概述图中以交互(Interaction)格式完整展示,便于阅读
- 对于内部流程较为复杂的交互节点可以考虑使用ref格式引用到交互概述图中,同时把ref引用到的详细流程在另一个子图中展示出来
- 使用交互概述图的目的是使系统从整体上看更直观、更清晰,如果一些比较复杂的场景使用了交互概述图之后反而让系统看起来更繁杂,不如不用
Python设计模式 - UML - 交互概述图(Interaction Overview Diagram)的更多相关文章
- UML精粹5 - 状态图,活动图,通信图,组合结构,组件图,协作,交互概述图,时间图
状态机图state machine diagram 下面是状态图的一个例子(一个城堡中的秘密保险箱的控制面板). 转换transition包括3个部分:trigger-signature [guard ...
- Python设计模式 - UML - 总览
说到设计模式就不得不涉及建模思想,说到建模思想自然而然会应用UML,目前业界开源的UML工具很多,用起来也非常便捷.近几年来随着软件应用领域开发模式转向快速迭代试错,UML在敏捷开发,尤其是web及m ...
- 【UML】NO.52.EBook.5.UML.1.012-【UML 大战需求分析】- 交互概览图(Interaction Overview Diagram)
1.0.0 Summary Tittle:[UML]NO.52.EBook.1.UML.1.012-[UML 大战需求分析]- 交互概览图(Interaction Overview Diagram) ...
- Python设计模式 - UML - 对象图(Object Diagram)
简介 对象图和类图的基本概念是类似的,可以看作类图在系统某一时刻的镜像,显示了该时刻系统中参与交互的各个对象以及它们之间的关系. 对象图的元素包括对象.链接.包,元素之间的关系和类图相似. 对象图建模 ...
- Python设计模式 - UML - 类图(Class Diagram)
简介 类图是面向对象分析和设计的核心,用来描述系统各个模块中类与类之间.接口与接口之间.类与接口之间的关系,以及每个类的属性.操作等特性,一般在详细设计过程中实施. 类图本身就是现实世界的抽象,是对系 ...
- Python设计模式 - UML - 时序图(Sequence Diagram)
简介 时序图表示参与者与对象之间.对象与对象之间的动态交互过程及时序关系. 时序图详细而直观地展示了对象随时间变化的状态.调用关系和消息时序,时序图中的主要元素有:参与者(Actor), 对象(Obj ...
- Python设计模式 - UML - 通信图(Communication Diagram)
简介 通信图表示对象之间的消息往来,是表述时序图中信息交互的另一种UML图,介绍完时序图就要对照学习一下通信图,二者是一体两面的. 通信图和时序图可以相互转换,二者的侧重点不同,通信图侧重哪些对象发送 ...
- Python设计模式 - UML - 定时图(Timing Diagram)
简介 定时图也是一种交互图,用来描述对象或实体随时间变化的状态或值,及其相应的时间或期限约束.定时图应用较广,并不局限于软件工程领域. 定时图侧重与时间线相关的值或状态的改变,这些改变可能来自于收到消 ...
- Python设计模式 - UML - 组件图(Component Diagram)
简介 组件图又称构建图,用于显示系统各组件及各组件关系的物理视图. 组件图通常包括组件.接口.关系.端口和连接器,用来显示程序代码中相应的模块.源文件或源文件集合之间的依赖和泛化关系. 组件图中的组件 ...
随机推荐
- ignoreDependencyType(Class class)方法使用
该方法字面意思是忽略依赖类,注释给出的解释是在自动装配时忽略指定类型的依赖注入. 经过我在网上查的资料,发现自动装配有两种方式: 一种是在xml配置文件中的<beans>标签中配置一个属性 ...
- meter命令行模式运行,实时获取压测结果 (没试过 说不定以后要用)
jmeter很小,很快,使用方便,可以在界面运行,可以命令行运行.简单介绍下命令行运行的方式 上面一条命令应该可以满足大部分需求. 使用-R指定节点时,当然要首先在这些节点上启动jmeter-serv ...
- matlab画台风轨迹图小tip
<写在前面> 关于台风轨迹图,这次由于作业需要就画了一幅轨迹图,参考原图选自论文: LIU Zenghong, XU Jianping, SUN Chaohui, WU Xiaofen. ...
- Mysql在sql中截取时间类型字段的年月日
//显示年月日 select date_format(date ,'%Y-%m-%d' ) from talbe_a //根据年月日分组 select date_format(date ,'%Y-%m ...
- [UE4]抓取准备
一.引擎的VR实例工程是使用手柄进行抓取的.我们需要加上可以使用鼠标进行抓取操作. 二.将左右手保存到全局变量. 三.左右手分别调用抓取和扔方法
- piggy.lzo
编译内核的时候出现错误:arch/arm/boot/compressed/piggy.lzo.S:4: Error: file not found: arch/arm/boot/compressed/ ...
- 极速认识RSS!
在解释RSS是什么之前,让我先来举个栗子. 大家都能在街道看到许多海报栏.在那里,会贴出各种各样最新的消息,比如哪个系要开讲座了.星期二晚上的电影放什么.二手货转让等 等.只要看一下海报栏,就会对学校 ...
- eShopOnContainers 看微服务⑤:消息通信
1.消息通信 传统的单体应用,组件间的调用都是使用代码级的方法函数.比如用户登录自动签到,增加积分.我们可以在登录函数调用积分模块的某个函数,为了解耦我们使用以来注入并放弃new Class()这种方 ...
- 【HDFS API编程】jUnit封装-改写创建文件夹
首先:什么是jUnit 回顾: https://www.cnblogs.com/Liuyt-61/p/10374732.html 上一节我们知道: /** * 使用Java API操作HDFS文件系 ...
- jersey 用FastJson替换掉默认的Jackson
@Bean public ResourceConfig resourceConfig() { ResourceConfig resourceConfig = new ResourceConfig(); ...