协作图概述
来源:互联网 发布:三星拼接软件 编辑:程序博客网 时间:2024/05/22 09:06
协作图在很多方面都与顺序图相同。二者都用来记录对象的交互方式。但是,顺序图基于时间,而协作图显示对象及相应关联,不强调时间。协作图显示实现交互的消息序列。二者的区别仅在于此,因此,顺序图的相关内容也适用于协作图。这两类图仅是表达事物的两种不同方式。协作图用来查看系统的动态内容。因为协作图中的消息不强调时间,所以要编号,以便了解它们的出现顺序。
协作图包含三个基本元素:
● 对象
● 链接(对象之间)
● 消息
4.3.1 对象
对象包含名称、状态和行为。图中的每个对象指示类的实例,这就是对象的分类器需要指向类的原因。必须通知VEA对象是哪个类的实例。在构建协作图时,可右击需要插入协作图的包,并从弹出菜单中选择New | Collaboration Diagram。两个形状表示对象:Classifier Role(分类器角色)和Multi-Object(多对象)形状。在图4-28中,可以看到Classifier Role形状Object1和Multi-Object形状Object2。
图4-28 协作图上的Classifier Role形状和Multi-Object形状
Classifier Role形状和Multi-Object形状表示的对象,其区别在于:Classifier Role形状表示单个对象;而Multi-Object形状表示一组对象,这些对象是同一个类的实例。从分类器到类的连接,以及属性设置与上一节介绍的顺序图相同。
4.3.2 链接
链接由Association Role(关联角色)形状表示,指示对象相互依赖。关系经常指示对象互换消息。
要添加链接,将Association Role形状拖放到图中,并将两个连接点联到两个Classifier Role形状的各个点。如果没有将Association Role与Classifier Role指向的两个基本类之间的已有关联进行关联,就会出现错误。原因在于,需要使链接指向实际关联(分类器)。
在练习4-15中,将构建一个协作图,并添加对象和链接。
练习4-15
(1) 在VEA中,新建一个UML模型。
(2) 在Top Package包新建一个协作图。
(3) 在Top Package包新建一个静态结构图。
(4) 将两个Class形状拖到静态结构图。默认情况下,将它们命名为Class1和Class2,这符合本练习的需要。
(5) 将Binary Association(二元关联)形状从Model Explorer的UML Static Structure选项卡拖到静态结构图,连接前一步骤构建的两个类。不要显示关联的终端名或重数(右击并选择Shape Display Options。取消选择First、Second终端名和End重数),如图4-29所示。
图4-29 包含关联的静态结构图
(6) 将两个Classifier Role放在协作图上。默认情况下,它们被命名为Object1和Object2,这符合本练习的需要。将Object1和Object2的分类器分别设置为Class1和Class2。
(7) 从Model Explorer的Collaboration选项卡,将Association Role拖到协作图,连接前一步构建的两个对象。
(8) 将Association Role的基本(Base)关联设置为第5步构建的二元关联(Association1)。双击Association Role,打开UML Association Role Properties对话框,如图4-30所示,在Base association(关联列表)中选择Association1。
在图4-30中,可看到协作图中Association Role形状的属性。注意,基本关联被设置为当前关联Association1 (在练习4-15的类图的类之间构建)。
图4-30 UML Association Role Properties对话框
图4-31显示没有错误的协作图,因为已经将基本关联设置为静态结构图的当前关联。如果未设置Association Role的基本关联,将附带显示一个红色标记,Output窗口将显示一个错误。
图4-31 包含关联的协作图
4.3.3 消息
消息是在对象之间流动的信息,导致动作的发生。如前所述,协作图中的链接(关联)可携带多条消息。通过双击Association Role形状(见图4-31),在UML Association Role Properties对话框(如图4-30)选择Messages类别,以构建消息,如图4-32所示。
图4-32 为协作图构建消息
注意图4-32的顺序表示(Seq. Expr.column)设置。在查看最终协作图时,有必要了解哪些消息先发生,如图4-33所示。
图4-33 包含消息的协作图
4.3.4 协作图小结
协作图与顺序图类似。区别仅在于:顺序图基于时间,但协作图不强调时间。在记录过程涉及的任务时,将构建协作图。与顺序图相比,协作图更面向对象,因为它强调的是消息和对象;而在顺序图中,因为按基于时间的方式记录过程,所以强调的是过程路径。
- 协作图概述
- 协作图
- 协作图
- 协作图
- 协作图
- 协作图
- 协作图
- 序列图、协作图
- 顺序图&协作图
- UML协作图
- UML 协作图
- UML---协作图
- UML之协作图
- UML之协作图
- UML之协作图
- UML之协作图
- UML之协作图
- U006 UML 协作图
- 优化你的js
- 数据结构回顾版-java数据结构-数组
- 关于session的销毁问题
- PHP中使用Filter进行数据安全过滤
- MD5 with Javascript
- 协作图概述
- Happy 3rd Birthday, jQuery
- 嵌入式GIS
- jQuery对下拉框、单选框、多选框的处理
- 尝试抛弃验证码吧~
- Publishers require that PDF font are embedded so that documents can be printed everywhere...
- 尝试抛弃验证码吧~(理论+实例)
- jQuery对象与DOM对象
- 使用WinInet向 ASP.Net Web服务器 多线程上传文件