UML--交互图(时序图、协作图)

前言

在建好系统用例图以及类图的基础上,接下来需要分析和设计系统的动态图(结构行为图),并且建立相应的动态模型了。动态模型描述了系统随时间变化的行为,这些行为是用从静态视图中抽取的瞬间值得变化来描述的。在UML的表现上,动态模型主要是建立系统的交互图以及活动图和状态图。

时序图用来显示对象之间的关系,并强调对象之间消息的时间顺序,同时显示对象之间的交互,
协作图用来描述对象见的交互关系。

一、时序图

(一)概念
定义:
时序图(Sequence Diagram):描述了对象之间传递消息的时间顺序,用来表示用例中的行为顺序,是强调消息时间顺序的交互图;
时序图描述的事物:系统中类和类之间的交互,将这些交互建模成消息交换,时序图描述了类以及类之间的交换以完成的期望行为的消息,时序图中每条消息都代表了类的一个操作 或者 引起状态机改变的触发事件。

表示:
参与交互的对象在时序图顶端水平排列,每个对象的地段绘制了一条垂直虚线,对象A向对象B发送消息,用一条带箭头的视线表示,该实线起始于对象A底部的虚线,终止于对象B底部的虚线;实线箭头水平放置,越靠近顶端越早被发送。

轨迹:
时序图提供了随时间推移的、清晰的可视化的轨迹。

( 二 )组成

时序图=对象+生命线+激活+消息

(1)对象(Object)
这里写图片描述
对象创建时机:可以在交互开始时创建,也可以在交互过程中创建
→处于顶部:如果对象的位置在时序图顶部,说明在交互开始时对象已经存在
→不在顶部:如果对象的位置不在顶部,说明对象是在交互过程中创建的

(2)生命线(Lifeline)
这里写图片描述
生命线:是一条垂直虚线,表示对象的存在。在时序图中,每个对象的地步都有生命线
作用:生命线是一个时间线,从时序图顶部一直到底部都存在,其长度取决于交互时间
对象的生命线:对象与生命线结合在一起就是对象的生命线,这个概念包含对象图标以及对象下面的生命线图标,如上图

(3)激活(Activation)
这里写图片描述
激活:表示时序图中对象执行一项操作时的时期,激活期可以理解为语义中{}中的内容,表示该对象被占用以完成某个任务

去激活(Deactivation):指对象处于空闲状态,在等待消息激活这个对象

激活表示:当对象处于激活时期,生命线可以拓宽为矩形,这个矩形条成为激活条

激活去激活的时机:

- 激活:对象激活是在激活条顶部
- 列表内容去激活:激活条的底部去激活,通常发生在一个消息离开对象生命线

(4)消息(Message)

消息:定义交互和协作中交换信息的类,对对象之间的通信内容建模

消息动作:

- 动作种类:消息允许在实体间船体信息(参数),允许实体请求其他服务,对象之间通过发送和接受消息进行通信;
- 产生结果:消息可以触发操作,唤起信号,或是目标对象创建或销毁

消息的异步和同步通信 :
– 异步通信 : 消息是信号的时候, 发送信号之后, 等待对方触发相应方法, 这是明确的 命名的 对象间的异步通信;
– 同步通信 : 直接调用对象的方法, 执行方法返回结果, 这种具有返回控制机制的操作是同步通信;

时序图和协作图中消息的区别 : 时序图中的消息强调顺序, 协作图中的消息强调交换消息的对象间的关系;

消息类型:
这里写图片描述:两个对象间绘制消息
这里写图片描述:两个对象之间的过程调用
这里写图片描述:两个对象间的异步消息
这里写图片描述:过程调用中返回的消息
这里写图片描述:绘制反身消息

  • 简单消息:指标是控制如何从一个对象发给另一个对象,并不包含控制信息。
  • 同步消息:意味着阻塞和等待
  • 异步消息:意味着非等待

@机房收费系统时序图
这里写图片描述


二、协作图

(一)概念

定义:
协作图(Collaboration Diagram)是一种类图,包含类元角色关联角色,不仅仅是类元关联

- 强调:强调参与交互的各个对象的结构信息和组织

协作图建模对象:对有交互的对象和这些对象之间的关系建模,不参与交互的对象及它们的关系忽略;

协作图内容: 协作图中表现了类操作中用到的参数,布局变量,操作中的永久链

对象图扩展: 协作图可以看做对象图的扩展,该图展示了对象之间的关联,显示出了对象间的消息传递

(一)组成元素

协作图=对象+链+消息

(1)对象(Object)
对象:代表协作图交互中的主体,和时序图汇总对象的概念类似
协作图和时序图中对象区别:协作图中对象无法创建和撤销,因此,对象在协作图的位置没有限制

(2)链(Link)
链的表示:链的符号和对象图中链所用的符号是一样的,用来连接两个类角色的实线
这里写图片描述:创建对象之间的通信路径;
这里写图片描述:显示对象可以调用自己的属性;
这里写图片描述:在两个对象之间或一个对象本身增加消息;
这里写图片描述:在两个对象之间或一个对象本身从反方向增加消息;
这里写图片描述:显示两个对象之间的信息流;
这里写图片描述:在反方向显示两个对象之间的信息流;

(3)消息(Message)
消息:对象间通过链接发送的就是消息

- 消息传递方向*:*对象之间的箭头表明对象间交换的信息流,一个对象发出消息,链指向的对象接收消息,链用于实现消息传输;
- 消息标识:消息流标有消息的序列号和对象间发送的消息名称;
- 消息结果:每条消息是否会出发接收对象的一系列操作;

@机房收费系统协作图
这里写图片描述

感谢阅读,欢迎指正,请顶!

猜你喜欢

转载自blog.csdn.net/xumuyang_/article/details/80163996