协作图
显示某组对象,如何为了由一个用例描述的一个系统事件而与另一组对象进行协作的交互图。
协作图的组成部分
协作图强调参与一个交互对象的组织,基本元素包括:活动者(Actor)、对象(Object)、连接(Link)和消息(Message)
对象:用长方形框表示对象。
连接:使用实线标记两个对象之间的连接。
消息:由标记在连接上方的带有标记的箭头表示。
当两个对象间有消息传递时用带箭头的有向边连接这两个对象,在UML中,协作图的语义与序列图是等价。
协作图与序列图的关系
协作图用于表示对象间的消息往来。
虽然序列图在某种定义上也能表示对象的协作动作,但能明确描述对象间的协作关系的还是协作图。
使用协作图可以显示对象角色之间的关系,如为实现某个操作或达到某种结果而在对象间交换的一组消息,如果需要强调时间和序列,最好选择序列图,如果需要强调上下文相关,最好选择协作图。
协作图用于显示对象之间如何进行交互以执行特定用例或用例中特定部分的行为,设计员使用协作图和序列图确定并阐明对象的角色,这些对象执行用例的特定事件流,它们是主要的信息来源,用于确定类的职责和接口。
与序列图不同,协作图显示了对象之间的关系,序列图和协作图表述的是相似的信息,但表述的方式却不同,协作图显示对象之间的关系,它更有利于理解对给定对象的所有影响,也更适合过程设计。
协作图的格式决定了它们更适合在分析活动中使用。
它们特别适合用来描述少量对象之间的简单交互,随着对象和消息数量的增多,理解协作图将越来越困难,此外,协作图很难显示补充的说明性信息,例如时间、判定点或其他非结构化的信息,而在序列图中这些信息可以方便地添加到注释中。