本文主要是介绍6-交互作用图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
6-交互作用图
6.0 交互作用图
包括顺序图和通信图,为系统的动态方面建模。交互作用图描述了对象间的交互作用,由对象、对象间的关系组成
顺序图和通信图以不同的方式表达了类似的信息。顺序图描述消息的时间顺序,适合于描述实时系统和复杂的脚本;通信图描述对象间的关系。两者在语义上相当,彼此转换而不损失信息。
6.0.1交互作用图主要组成元素
- 对象
- 连接
- 消息
- 包含注释和约束
6.0.1交互图示例
顺序图
通信图
6.1 顺序图
存在两个轴,水平轴表示不同的对象,垂直轴表示时间。
顺序图标识元素
顺序图的五要素是:活动者、对象、生命线、控制焦点、消息
- 对象:带垂直虚线的矩形框
- 垂直虚线:对象的生命线
- 对象间通信:对象的生命线间画消息
消息(重要)
可以是信号、操作调用等。当收到消息,接收对象执行相应的活动,对象生命线上细长矩形框表示对象激活。
消息以带标签的箭头表示,省去序列号,可带条件表达式,即互斥的分支。
- 简单消息是从一个对象到另一个对象的控制流的转移。
- 同步消息是消息发出了以后,发送对象必须等到接收对象的应答,才能继续自己的操作。
- 异步消息是消息发出了以后,发送对象不必等到接收对象的应答,就可以继续自己的操作。
对象生命线
垂直的虚线,对象生命线代表对象创建直到结束的生命周期,生命线的终端标一个“X”。
有控制中心(激活)(重要)
细长的矩形,表示对象直接或通过子过程执行一个动作的时间段。矩形的顶端和动作的开始对齐,矩形的底部和动作的完成对齐(可以用返回消息来标记)。
顺序图实例
模拟一下三国演义的赤壁之战的时序图
6.2 顺序图应用
客户端发消息给PrintService,Service接着发消息给Image创建工资单,在建立工资单的打印图象时,需要雇员的信息,及工资数,而后建立打印图象。最后,Service发消息到打印接口,打印工资单。
6.3 通信图
强调参与交互作用的对象的组织。描述了交互作用的对象的静态结构(上下文),对象间交换的消息的时间顺序(交互作用) 。
区别于顺序图的特点(重要)
- 有路径:表示对象间如何连接
- 有序列号:表示消息的时间顺序,如1、1.1、2、3.4,可以是任意深度的嵌套。
通信图示例
语义等价
顺序图与通信图在语义上是等价的,因而它们可以相互转换而不损失信息。但它们显式地可视化描述了不同的信息,通信图显式描述对象间如何连接,顺序图显式描述对象间交互消息的时间顺序。
前面描述打印工资单的顺序图和通信图是等价的,可以相互转换而不损失信息。
6.6 交互作用图应用
为系统的动态方面建模,上下文(建模环境)可以是整个系统、一个子系统、一个操作或一个类,还可为用例的一个脚本建模。
按时间顺序为控制流建模
- 确定交互作用的上下文
- 确定参与交互作用的对象,按重要性从左至右放在时序图中
- 确定每个对象的生命线
- 按消息发生的时间从上到下放置在生命线间
- 如需规定时间或空间约束,可为消息附加适当的时间或空间约束
- 如想更正式地描述这个控制流,可为每个消息添加前置条件和后置条件
按组织结构为控制流建模
- 确定交互作用的上下文
- 确定参与交互作用的对象,按重要性由中间到四周放在协作图中
- 确定每个对象的初始特性,显示对象在交互作用期间发生的变化,用复制对象表示变化后的对象以区别于原对象(体现对象随时间的变化)
- 确定对象间的连接
(i) 先布置关联连接
(ii) 再布置其他的连接:按消息发生的时间顺序确定消息序列号,可为消息附加适当的时间或空间约束,可为消息添加前置条件和后置条件。
单个顺序图只描述一个控制流。通常,采用多个交互作用图来描述系统的动态特性,一部分描述主要过程,其它的描述备选过程或例外过程。
随堂测试
示例简介 :
-- 使用场景 : 汽车租赁公司;
-- 使用的对象 : Customer (客户), Worker (工作人员), Order (请求), Record (记录), Car (汽车);
-- 工作流程 : ① 客户 向 工人 提出租车要求, ② 工人 检查 请求, ③ 客户 付款,④ 工人 填写 记录,⑤ 工人 取车;
绘制相应的时序图? 并将所绘制的时序图转换为协作图?
这篇关于6-交互作用图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!