UML使用交互图来描述对象间通过消息的交互,交互图可以用于动态对象建模。
交互图在精化阶段中使用,用来描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况
CRC卡用于职责分配,是交互图和类图的极简版,在初始阶段使用
在这两种类型的交互图中,顺序图具有更丰富的符号标记,更容易查阅,但是通信图也有其独特的功能,尤其适用于在墙上画草图。
UML中定义了参与者框图的以下几种表达:
交互图展示了对象之间的消息,UML对于这些消息表达式具有标准语法:
return=message(parameter:parametreType):returnType没有返回值时,返回值可省略,没有参数时,圆括号可省略,类型信息不重要时也可省略,甚至可以只保留方法名
有条件框图,里面的方法都遵循该条件执行(if,for等等),moreitems代表保护消息,或者称作条件子句
下图左侧是以图框操作符opt表示的"“有条件消息”,右侧是以图框操作符alt表示的"互斥的有条件消息"。互斥的有条件消息的图框用虚线分为上下两部分,条件子句为真时,走上方的消息路径,否则走下方的路径。
下图是循环消息的两种表示法。
标记ref的框图,是引用其他顺序图来简化,命名其他顺序图只要打上sd标签
框图嵌套:
至于常见图框操作符的含义,如下表所示:
多态类,以这种方式对抽象类以及其每个实现画图
主动对象(activeobject)在生命线框图两侧加双竖线。即在其进行的执行线程中运行或控制自己的执行线程的实例
代码与图之间的关系如图所示,被指向的类B拥有箭头所示方法,发出箭头的类A调用方法
链(link)是连接两个对象的路径,它指明了对象间某种可能的导航和可见性,更正式地说,链是关联的实例
如图所示,从Register到Sale之间有一条链,消息会沿此链流转,例如makePayment消息。