协作图

协作图包含一组对象和以消息交互为联系的关联,用于描述系统的行为是如何由系统的成分合作实现的。在协作图中,类元角色描述了一个对象,关联角色描述了协作关系中的链,并通过几何排列表现交互作用中的各个角色。

协作图的含义

所谓协作,是指在一定的语境中一组对象以及用以实现某些行为的这些对象间的相互作用。它描述了这样一组对象为实现某种目的而组成相互合作的“对象社会”。在协作中,它同时包含了运行时的类元角色(Classifier Roles)和关联角色(Association Roles)。类元角色表示参与协作执行的对象描述,系统中的对象可以参与一个或多个协作;关联角色表示参与协作执行的关联的描述。

协作图就是表现对象协作关系的图,它表示了协作中作为各种类元角色的对象所处的位置,在图中主要显示了类元角色和关联角色。类元角色和关联角色描述了对象的配置和当一个协作的实例执行时可能出现的连接。当协作被实例化时,对象受限于类元角色,连接受限于关联角色。

  • 从结构方面来讲:
    协作图和对象图一样,包含了一个角色集合和它们之间定义行为方面的内容的关系,从这个角度来说,协作图也是类图的一种,但是协作图与类图这种静态视图不同的是,静态视图描述了类固有的内在属性,而协作图则描述了类实例的特性,因为只有对象的实例才能在协作中扮演自己的角色,它再协作中起了特殊的作用。

  • 从行为方面来讲:
    协作图和序列图一样,包含了一系列的消息集合,这些消息在具有某一角色的各对象间进行传递交换,完成协作中的对象则为达到的目标。可以说在协作图的一个协作中描述了该协作所有对象组成的网络结构以及相互发送消息的整体行为,表示潜藏于计算过程中的三个主要结构的统一,即数据结构、控制流和数据流的统一。

协作图的作用

协作图作为一种在给定语境中描述协作中各个对象之间组织交互关系的控件阻止结构的图形化方式,在使用其建模时,可以将其作用分为以下三个方面。

  • 通过描绘对象间消息的传递情况来反映具体的使用语境的逻辑表达。一个使用情境的逻辑可能是一个用例的一部分,或是一条控制流,这个序列图的作用类似。
  • 显示对象及其交互关系的控件阻止结构。协作图显示了在交互过程中各个对象之间的阻止交互关系以及对象彼此之间的连接。与序列图不同,协作图显示的是对象之间的关系,并不是侧重交互的顺序,它没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序。
  • 协作图的另外一个作用是表现一个类操作的实现。协作图可以说明类操作中使用到的参数、局部变量以及返回值等。当使用协作图表现一个系统行为时,消息编号对应了程序中的嵌套调用结构和信号传递过程。

组成协作图的元素

对象(Object)、消息(Message)和链(Link)这三个元素构成了协作图。协作图通过各个对象之间的组织交互关系以及对象彼此之间的连接表达对象之间的交互。

对象:
协作图中的对象和序列图中的对象的概念相同,同样都是类的实例。对象的角色表示一个或一组对象在完成目标的过程中所应起的那部分作用。对象是角色所属类的直接或者间接实例。在协作图中,不需要关于某个类的所有对象都出现,同一个类的对象在一个协作图中也可能要充当多个角色。

协作图中对象的表示方式也和序列图中对象的表示方式一样,使用包围名称的矩形框来标记,所显示的对象及其类的名称带有下划线,两者用冒号隔开,使用“对象名:类名”的形式,与序列图不同的是,对象的下部没有一条被称为“生命线”的垂直虚线,并且对象存在多对象的形式。

消息:
在协作图中,可以通过一系列的消息来描述系统的动态行为。和序列图中的消息概念相同,都是从一个对象(发送者)向另一个或几个其他对象(接收者)发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作,并且都由三部分组成,分别是发送者、接收者和活动。

在协作图中,消息使用带有标签的箭头表示,它附在连接发送者和接收者的链上。链连接了发送者和接收者,箭头的指向便是接收者。消息也可以通过发送给对象本身的方式,依附在连接自身的链上。在一个连接上可以有多个消息,它们沿着相同或不同的路径传递。每个消息包括一个顺序号以及消息的名称。消息的名称可以是一个方法,包含一个名字、参数表和可选的返回值表。消息的各种实现的细节也和“交付商品”两步。


链:
协作图中的链与对象图中的链的概念和表示形式都相同,都是两个或多个对象之间的独立连接,是对象引用元组(有序表),也是关联的实例。在协作图中,关联角色是与具体语境有关的暂时的类元之间的关系,关联角色的实例也是链,其寿命受限于协作的长短,就如同序列图中对象的生命线一样。

在协作图中,链的表示形式为一个或多个相连的线或弧。在自身关联的类中,链是两端指向同一对象的回路,是一条弧。为了说明对象是如何与另外一个对象进行连接的,可以在链的两端添加上提供者和客户端的可见性修饰。

UML--协作图详解相关推荐

  1. UML概述及UML图详解

    ​ UML概述 一.UML简介 (一)UML (Unified Modeling Language)为面向对象软件设计提供统一的.标准的.可视化的建模语言.适用于 描述以用例为驱动,以体系结构为中心的 ...

  2. UML图详解(四)对象图

    一.概念 对象图是一个系统的详细状态在某一时刻的快照. 是对象类图的实例,也称为"实例图". 对象图描述系统的某一瞬间,表达系统的对象在该时刻的具体状态(属性和操作). 二.详解 ...

  3. UML图详解(七)——交互图(时序图与协作图)

    一.概念 交互图描述对象之间的动态合作关系以及合作过程中的行为次序. 交互图常常用来描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况,即一个用例的实现过程. 交互图有顺序图和 ...

  4. 【UML 建模】UML入门 之 交互图 -- 时序图 协作图详解

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 . 动态图概念 : 从静态图中抽取瞬间值 ...

  5. UML交互图 -- 时序图 协作图详解

    作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 . 动态图概念 : 从静态图中抽取瞬间值的变 ...

  6. SVG与UML图详解

    一.SVG 可缩放矢量图形(SVG)是W3C的推荐标准,它使用XML描述两维图形结构和图形应用,可以在Web浏览器.手持设备或移动电话等多种上显示.目前稳定版本为1.1版,最新的版本是以草案形式存在的 ...

  7. 常用的UML建模详解

    UML主要包括图表中的十一种,那在本次的介绍中,只讲解活动图.状态机图.顺序图. 种类 UML图 作用 结构图 类图 主要用来业务概念模型分析,在需求分析中必不可少 对象图 一般开发人员会使用,产品经 ...

  8. UML建模详解(1)—初识UML建模

    UML建模简介:       UML(Unified Modeling Language的缩写),也称统一建模语言.是用来做软件建模的.不光是在软件的设计阶段用到,在软件的测试,部署阶段都要用到.用于 ...

  9. oracle的uml图,详解Oracle中XMI开发UML图表技术

    描述 XML是面向机器的数据格式,虽然手工编写困难,但处理效率高.当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴.有史以来第一次,这个世界拥有了一种用 ...

  10. UML图详解(五)组件图

    一.概念 组件图(Component Diagram)又称为构件图,他描述的是在软件系统中遵从并实现一组接口的物理的.可替换的软件模块. 构件图 = 构件(Component) + 接口(Interf ...

最新文章

  1. Sangfor_AC用户不在线但在“在线用户管理”里有显示
  2. markdown怎么输入指数、幂、次方、上下标?(2^8^=256、a~0~=1)
  3. 缓存redis的整合
  4. C语言试题四十七之程序定义了N×M的二维数组,并在主函数中自动赋值。请编写函数function(int a[N][M], int m),该函数的功能是:将数组右上半三角元素中的值乘以m。
  5. 前端学习(1720):前端系列javascript之生命周期下
  6. asp.net core利用DI实现自定义用户系统,脱离ControllerBase.User
  7. 在SQL Server 2016中使用动态数据屏蔽来保护敏感数据
  8. 使用Eclipse查看反编译后的代码(Decompiler 插件)
  9. 从今天起开始进一步学习前端
  10. python 函数篇(2)
  11. socket学习之电脑手机通信
  12. 简化版WIN7安装打印机时提示“打印机无法安装,打印处理器不存在。”正确处理方法...
  13. Spring学习02-Spring中的设计模式(一)
  14. 中国主要山脉及山峰分布
  15. 手机修图软件测试,10款好用的手机图片编辑器软件排行榜
  16. Dissect Certificate
  17. 手把手教你5G时代Webview的正确使用姿势,小白也能看明白
  18. PHP cdata 处理
  19. 计算机桌面怎么全屏显示,电脑显示器如何设置全屏 把电脑屏幕调成满屏的方法有哪些...
  20. 基于spring boot 的学生科研项目共享平台毕业设计源码271611

热门文章

  1. 记录周三12.8的刷题心得ODAY
  2. 虹科分享 | 带您了解太赫兹成像技术及系统方案
  3. Switch statement can be replaced with enhanced ‘switch‘
  4. VMWare之——安装Windows Server 2012 后安装VMWare Tools报错
  5. 【锐捷交换】交换机Private Vlan配置
  6. 巡更巡查系统QY-LY51
  7. IE阻止了此网站安装ActiveX控件
  8. 通达信交易系统接口是不是免费的?
  9. 如何给U盘或移动硬盘分配固定盘符
  10. CocosCreator制作小游戏之单机斗地主