时序图和协作图常常被合称为交互图,它们描述的主要元素都是两个,即消息和对象角色。实际上,这两种图的语法和语义极为相似,在Rational Rose中甚至提供了在两种图之间进行切换的功能。
时序图和协作图的相同点主要有3个:
(1)规定责任。两种图都直观地规定了发送对象和接收对象的责任。将对象确定为接收对象,意味着为此对象添加一个接口,而消息描述成为接收对象的操作特征标记,由发送对象触发该操作。
(2)支持消息。两种图都支持所有的消息类型。
(3)衡量工具。两种图还是衡量耦合性的工具。耦合性被用来衡量模型之间的依赖性,通过检查两个元素之间的通信,可以很容易地判断出它们的依赖关系。查看对象的交互图,可以看见两个对象之间消息的数量以及类型,从而简化或减少消息的交互,提高系统的设计性能。
时序图和协作图之间有如下区别:
(1)协作图的重点是将对象的交互映射到它们之间的链接上,即协作图先以对象图的方式绘制各个参与对象,然后将消息和链接平行放置。这种表示方法有助于通过查看消息来验证图中的关联或者发现添加新的关联的必要性。但是时序图却不把链接表示出来。在时序图的对象之间,即使没有相应的链接存在,也可以随意绘制消息,不过这样做的结果是有些逻辑交互根本就不可能实际发生。
(2)时序图可以描述对象的创建和撤销情况。新创建的对象被放在对象生命线上对应的时间点,而在生命线结束的地方放置一个“×”符号表示该对象在系统中不能再继续使用。而在协作图中,对象要么存在要么不存在,除了通过消息描述或约束外,没有其他的方法可以表示对象的创建或撤销。由于协作图表现的结构被置于静止的对象图中,所以很难判断约束什么时候有效。(www.xing528.com)
(3)时序图可以表现对象的激活和去激活情况,但对于协作图来说,由于没有对时间的描述,所以除了通过对消息进行解释外,它无法清晰地表示对象的激活和去激活情况。
时序图与协作图都表示对象之间的交互作用,只是它们的侧重点有所不同。时序图描述了交互过程中的时间顺序,但没有明确地表达对象之间的关系;协作图描述了对象之间的关系,但时间顺序必须从顺序号获得。两种图的语义是等价的,可以从一种形式的图转换成另一种形式的图而不丢失任何信息。
如图6-15所示的用户用ATM系统查询余额的时序图可以转换成如图6-16所示的协作图。
图6-15 用户用ATM系统查询余额的时序图
图6-16 用户用ATM系统查询余额的协作图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。