UML图 - 协作图
UML图 - 协作图
协作图(合作图,通信图)(Collaboration Diagram/Communication Diagram)描述对象与对象之间消息连接关系的,侧重于说明哪些对象之间有消息传递(着重描述系统成分如何协同工作).
协助图 = 交互的参与者 + 通信链 + 消息
协作图建模对象 : 对有交互的对象 和 这些对象之间的关系建模, 不参与交互的对象及它们的关系忽略;
协作图内容 : 协作图中表现了类操作中用到的参数, 布局变量, 操作中的永久链;
协作图内容
对象 : 代表协作图交互中的主体, 协作图中对象无法创建和撤销, 因此对象在协作图的位置没有限制
链的表示 : 链的符号用来连接两个类角色的实线;
-- : 创建对象之间的通信路径;
-- : 显示对象可以调用自己的属性;
-- : 在两个对象之间 或 一个对象本身增加消息;
-- : 在两个对象之间 或 一个对象本身 从反方向增加消息;
-- : 显示两个对象之间的信息流;
-- : 在反方向显示两个对象之间的信息流;
消息概念 : 对象间通过链接发送的就是消息;
-- 消息传递方向 : 对象之间的箭头表明对象间交换的消息流, 一个对象发出消息, 链指向的对象接收消息, 链用于实现消息传输;
-- 消息标识 : 消息流标有消息的序列号 和 对象间发送的消息名称;
-- 消息结果 : 每条消息否会触发接收对象的一系列操作;
消息序号 : 为了表明消息顺序, 需要为消息添加序号;
例子:汽车租赁流程;
对象 : Customer (客户), Order (订单), Worker (工人), Record (记录), Car (汽车);
流程简介 : 客户写好订单, 工人核对订单, 核对后订单存在, 允许客户取车, 工人填写记录, 并将车取出;
协作图建模策略
协作图使用场景 : 对系统动态行为建模, 按组织对控制流建模使用协作图;
协作图管理策略 :
-- 单个协作图 : 单个协作图 只能 显示一个控制流;
-- 多个协作图 : 描述复杂系统的时候, 需要许多协作图共同描述, 一些图是主干协作图, 还有许多分支路径的控制流的协作图, 使用包管理这些协作图;
协作图的建模策略 :
-- 设置语境 : 设置 协作图所在的环境 , 如 系统, 子系统, 类, 操作, 用例 或 用例脚本;
-- 对象顶点 : 识别对象在协作图中扮演的角色, 协作图中, 对象是图的顶点;
-- 变化修改 : 每个对象最初都会设置初始值, 如果期间对象发生了变化, 修改的方式是 : 协作图中放置一个复制对象, 更新复制对象, 同过后造型 become copy 连接二者;
-- 确定链接顺序 : 先确定关联链接, 哪些对象相互链接; 在确定消息链接, 路径构造型等 表示对象间如何连接;
-- 消息顺序 : 从引起交互的消息开始编号, 将编号信息 和 描述信息 附到链接上, 描述了对象之间的传递次序;
-- 时间空间约束 : 可以为每个消息附加 时间 和 空间 上的约束;
-- 前置后置条件 : 可以为每个消息附加 前置 和 后置 条件;