开篇
交互图用来描述对象之间的交互关系。它又包括了序列图和协作图。序列图描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序;而协作图则描述对象之间的合作关系,更侧重于说明哪些对象之间有消息的传递。序列图和协作图两者是等价的,可以相互转化。
内容
一、序列图
序列图表示一个协作中的各种类元角色间的一组消息交换,重点在与强调时间顺序。
序列图所包含的元素
1、对象:类的实例。使用包围名称的矩形框来标记,所显示的对象和类名称下有一条下划线,二者用冒号隔开,即使用“对象名:类名”的形式。
2、生命线:是一条垂直的虚线,用来表示序列图中的对象在一段时间内的存在。对象和生命线结合在一起成为对象生命线。上图中的虚线便是生命线。
3、消息:对象之间互相通信的形式。消息由三部分组成:发送者,接受者和活动。
消息有三种形式:
简单消息:两个对象间的普通消息
同步消息:两个对象之间的过程调用
异步消息:客户发出消息后不管对方是否接受,继续其他事物。
返回消息:表示从调用过程返回
4、激活:激活是对象操作的执行,它表示一个对象直接或通过从属操作完成操作的过程。在UML图中通过一个窄长的矩形来表示,矩形的高度表示对象存在的过程。
机房收费系统序列图实例
二、协作图
协作图则描述对象之间的合作关系,更侧重于说明哪些对象之间有消息的传递。
协作图组成元素
1、对象
协作图中的对象和序列图中的对象概念相同,同样是类的实例。也是使用包围名称的矩形框来表示
2、消息
消息可以描述系统的动态行为
3、链
协作图中的链和对象图中的链的概念和表现形式相同,都是两个或多个对象之间的独立连接,是关联的实例。
机房收费系统的协作图实例
三、序列图和协作图之间的比较
相同点:
序列图和交互图都是用于描述模型动态特性的交互图。
序列图和交互图从语义上讲是相同的,只是从不同的方面描述一次交互。
不同点:
序列图强调消息的时间顺序,协作图强调参加交互的对象的组织。
两者可以相互转换。
四、序列图和协作图之间的转换
在rational rose中,可以很轻松的从序列图创建协作图或从协作图创建序列图。一旦我们拥有了一方,便可以很容易的在两种图之间切换。
切换步骤如下:
1、双击浏览器重要切换的序列图。
2、选择菜单栏中的“Browse(浏览)”-“Create Collaboration Diagram(创建协作图)”命令,或者直接使用“F5“快捷键。
3、这时在浏览器中创建来了一个名称与序列图相同的协作图,双击打开便可。
下面附上两张通过此方法转换过来的图:
小结
交互其实就是一个命令。就像驴拉磨一样,好好的磨在那里是不会动的.只有驴做出了拉磨这个动作后.这个"驴拉磨"过程才能够完全的实现.这样一个过程就称之为交互。交互图就是一系列这样的命令和动作的组合,然后实现一个过程。交互图可以让我们更清晰的认识一个黑盒子的内部过程。