07 第九章 协作图

合集下载

协作图

协作图

组成协作图的元素
2. 消息



在协作图中,可以通过一系列的消息来描述系统的动态行为。 在协作图中,消息使用带有标签的箭头来表示,它附在连接发送者 和接收者的链上。 链连接了发送者和接收者,箭头的指向便是接收者。每个消息包括一 个顺序号以及消息的名称。 消息的名称可以是一个方法,包含一个名字和参数表、可选的返回值 表。消息的各种实现的细节也可以被加入,如同步与异步等。
创建协作图
3. 创建链中创建链的操作 相同,可以按照在对象图中创建链的方式进行创建。 同样我们也可以在链的规范对话框的“General”选项 卡中设置链的名称、关联、角色以及可见性等。 链的可见性是指一个对象是否能够对另一个对象可见 的机制。
创建协作图案例分析
组成协作图的元素
3. 链


在协作图中的链和对象图中链的概念和表示形式都相同,都是两 个或多个对象之间的独立连接,是对象引用元组(有序表),是 关联的实例。 在协作图中,链的表示形式为一个或多个相连的线或弧。在自身 相关联的类中,链是两端指向同一对象的回路,是一条弧。为了 说明对象是如何与另外一个对象进行连接的,我们还可以在链的 两端添加上提供者和客户端的可见性修饰。如下图所示,是链的 普通和自身关联的表示形式。
协作图的概念
2. 使用协作图的作用

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

顺序图和协作图

顺序图和协作图

协作图
消息(Message)



协作图中的消息类型与顺序图中的相同,只不 过为了说明交互过程中消息的时间顺序,需要 给消息添加顺序号。 顺序号是消息的一个数字前缀,是一个整数, 由1开始递增,每个消息都必须由唯一的顺序 号。可以通过点表示法代表控制的嵌套关系。 嵌套可以具有任意深度。与顺序图相比,协作 图可以显示更为复杂的分支。
顺序图
概念
顺序图
顺序图包含了4个元素:


对象(Object) 生命线(Lifeline) 消息(Message) 激活(Activation)
顺序图
对象(Object)


顺序图中对象的符号和对象图中对象所用的符 号一样。 将对象置于顺序图的顶部意味着在交互开始的 时候对象就已经存在了,如果对象的位置不在 顶部,那么表示对象是在交互的过程中被创建 的。

系统管理员添加书籍的顺序图
: Administrator
: Maintenance Window 1: add item( ) 2: find(String)
: Title
: Item
Check if corresponding title exist
3: return true
4: create(Integer, Title)
2: find(String)
1: identify borrower( ) 3: reserve title( ) : Borrower : Reservation Window
teacher
Req stu info Get stu data Load stu Return stu info Load grades

UML协作图

UML协作图

协作图包含的元素
3.消息(Messages) 通过在对象间的链接上标注带有消息标签 的消息,来表示对象间的消息传递。 :Elevator Control :Queue
1.1*[all queues]:len:= Length(){ broadcast } 1.3:lnvoke(job)
书写消息的语法规则:
协作图
王佳璐
协作图的定义
• 协作图用于描述相互协作的对象间的交互 关系和链接关系(链接是关联的实例)。 • 着重表现交互对象的静态连接关系。 • 协作图就是表现对象协作关系的图,它表 示了协作中作为各种类元角色的对象所处 的位置。 • 协作图从初始化整个过程的消息开始。
协作图的作用
• 通过描绘对象之间消息的传递情况来反映 具体的使用语境的逻辑表达。 • 显示对象及其交互关系的空间组织结构。 • 表现一个类操作的实现。
前缀[守卫条件] 序列表达式 返回值:=消息说明
前缀: 序列号,…/ 前缀是用于同步线程或路径的表达式,意 思是在发送该消息之前应该把指定序列号 的消息处理完。消息中可以没有前缀。
:Elevator Control
序列表达式
:Queue
1.1*[all queues]:len:= Length(){ broadcast } 1.3:lnvoke(job)
返回值
返回值表示操作调用(即消息)的结果。 消息说明由消息名和参数表组成。
End
协作图包含的元素
1.对象(Object) 用一个矩形框表示,框内标有对象名。
:Button
按钮对象
:Elevator Control
电梯控制器
协作图包含的元素
2.链(Link) 两个或多个对象之间的独立连接levator Control

第09章协作图

第09章协作图
从主顾(Patron)那里获得参考资料的信息,然后到数 据库里去查找这些参考资料,然后回复主顾提出的问
题,指派工人(Worker)进新书。一个图书馆管理员也
要和做同样事情的其他图书馆管理员交互。两个或者多
个主动对象同时工作时的情形被称为并发(concurrency)。
在协作图中,主动对象的表示法除了矩形框边界要 加黑加重外,其他方面与一般对象的表示法相同。
:Register
3.1Available 3:checkAvailability(selection) 5:releaseSoda(selection)
图10.9 用例“Buy soda(买饮料)”最理想场景的协作图
:Dispenser
下面再看“钱数不正确”场景的协作图。这个
协作图中要出现以下几个条件: 1.用户输入的钱数超过了所要购买的饮料价格。 2.饮料销售机中备有可找给顾客的零钱。 3.饮料销售机中没有可找给顾客的零钱。
需要为他们提供不同的图。
9.1 什么是协作图
对象图展示出对象和对象之间的静态关系。协作图是
对象图的扩展,除了展示出对象之间的关联,还显示出
对象之间的消息传递。通常在协作图中省略掉关联的多 重性,因为表示出多重性会使图变得混乱。
关联线附近的箭头线表示对象之间传递的消息,箭
头指向消息接收对象。消息名称和消息序号附在箭头线 附近。消息的一般作用是触发接收消息的对象执行它的 一个操作。消息名后面一般有一个双括号,说明它代表 的是操作。在双括号内可以指明操作需要的参数。
的点再接序号来区分它们。这叫做消息嵌套(nesting)。
如果机器中没有零钱可找会怎么样呢?
销售机必须显示一条“无零钱”信息提示给顾客,并
将顾客投入的钱币退出,提示顾客投入零钱。 要增加这个条件,就要增加控制流的分支。可以用嵌 套序号表示这个控制流的序号。因为它是第3个被嵌套的 消息,因此圆点后面的序号是3。最后,由于交易已经结

UML第9章-协作图-10-11

UML第9章-协作图-10-11
• 协作图展示了对象和对象之间的关联,还展示了对象 之间的消息传递。关联线旁的消息箭头代表一个消息 ,带有编号的标签显示出消息的内容,消息前的序号 代表消息发送的时间顺序。
协作图的创建和案例分析
1. 确定对象:根据系统的用例或具体的场景,确定协作 图中应当包含的类元角色
2. 添加对象间的链 :确定这些元素之间的关系,建立早 期的协作图,添加链接和关联角色等
UML系统建模-协作图
概述
用例图
捕获需求
类图 对象图
静态视图
序列图 协作图 状态图 活动图
交互图 行为图
动态视图
协作图
• UML的交互图有两种,一种是上一章我们学的序列 图,另一种就是本章要学习的协作图。
• 协作图着重于对系统成分如何协同工作进行描述。 • 要理解协作图,首先要了解什么是协作。所谓协作,
的返回值表。消息的各种实现的细节也可以被加入,如同步 与异步等。
协作图元素:消息
• 消息的名称可以是一个类的方法,包含一个名字 和参数表、可选的返回值表。
• 消息可能要求某个对象返回操作结果的值
UML提供了返回值的表示法。返回值的名字在最左,后跟 赋值号“:=”,接着是操作名和操作的参数。
16/48
信息。 6) 数据库访问层将学生信息和分数信息提供给用户界面。 7) 用户界面将学生信息和分数信息显示出来。
备选过程A:该名学生没有学科成 绩。
1)数据访问层返回学科成绩为空。 2)系统提示老师没有该学生的成绩。
备选过程B:系统没有该学生的信息。 1)数据访问层返回学生信息为空。 2)系统提示老师该学生不存在。
协作图元素:消息
• 消息类型:协作图的消息跟序列图一样,也可以细分 为以下几类: 1. 同步消息(过程调用) 2. 异步消息 3. 返回消息 4. 简单消息

协作图规范

协作图规范

9 协作图实例之间的交互模式由交互图来表达。

基于同样的由一个交互描述的基础信息,交互图分为两种,但每种都强调同一个交互的不同方面。

这两种交互图是顺序图和协作图。

协作图表示围绕着角色所组织的交互以及角色之间的链。

与顺序图不同,协作图表示扮演不同角色的对象之间的关系。

另一方面,协作图不表示作为单独维度的时间,所以交互的顺序和并发进程必须用顺序数决定。

因此,顺序图表示激励的显式顺序,最好用于描述实时系统和复杂的场景。

“第七部分顺序图”详细描述了顺序图。

由于这两部分有很多共同点,所以需要将两部分结合起来阅读。

可以按两种不同的形式给出协作图:规约级(图中表示类目角色、关联角色和消息)和实例级(图中表示对象、链和激励)。

前者表示定义在基础协作中的角色及其结构,而后者注重于协作中的遵从角色的实例。

在下文中使用术语对象,但任意一种实例都能使用。

9.1协作9.1.1 语义行为由在一个完整的交互中交换激励以完成一个目标的一组对象实现。

为了理解设计时使用的机制,只观察这样的对象及其交互是十分重要的:这些对象和交互是为了完成一个任务或这一组任务而包含进来的,并且是从一个大系统投影而来的(按其它目的,它们是其中的一部分)。

把这样的静态结构叫做协作。

协作定义一组参加者和关系,对于一组特定的目的而言,这些参加者和关系具有一定的含义。

参加者及其间的关系的标示不具有全局含义。

这些参加者定义对象相互交互时对象所扮演的角色。

因此,协作说明一组类目角色和关联角色。

遵从(或绑定)类目角色的对象扮演由类目角色所定义的角色,而对象之间的链将遵从协作的关联角色。

类目角色(关联角色)定义了对象(链)的用法,而类(关联)描述了对象(链)的所有性质。

在协作的上下文中定义交互。

它说明了角色间通讯的模式。

更精确的说,它包含了一组部分有序的消息,每个消息说明一个通讯(例如,发送什么样的信号,调用什么操作)以及发送者和接收者分别扮演的角色。

可以把协作附加到操作或象用况这样的类目上,以描述它们的行为发生时的上下文(也就是说,对象所扮演的角色执行由操作和用况说明的行为)。

协作图(Collaboration

协作图(Collaboration

• 6.2.5 UML的特点 • 众所周知,UML的目标如下: 为建模者提供现成的可用的,富有 表达力的,可视化的建模语言,以开发 和交换有意义的模型;提供可扩展性和 特殊化机制以延伸核心概念;支持独立 于编程语言和开发过程的规范;为理解 建模语言提供正式的基础;支持更高级 的开发概念,例如构件、协作、框架和 模式。


• •

其主要特点可以归纳几点如下: 1.统一的标准。UML已被OMG 接受为标准的建 模语言,赿来越多的开发人员开始使用UML进行 开发,越来越多开发厂商开始支持UML。 2.面向对象。UML是支持面向对象软件开发的 建模语言。 3.可视化、表达能力强大。 4.独立于过程。UML不依赖于特定的软件开发 过程,这也是UML能被众多软件开发人员接受的 一个原因。 5.概念明确,建模表示法简洁,图形结构清晰, 容易掌握和使用。
• 并发路径 活动图对表示并发行为也很有用。在 活动图中,使用一个称为同步条的水平粗 线可以将一条转移分为多个并发执行的分 支,或将多个转移合为一条转移。此时, 只有输入的转移全部有效,同步条才会触 发转移,进而执行后面的活动。
• 泳道 泳道是代表分区动作集合的图形构造。 泳道用于对一个或多个对象为整个活动中 的动作所承担的职责建模。也就是说,泳 道将活动状态划分成组,并把这些组分配 给必须执行这些活动的对象。泳道用矩形 框来表示,属于某个泳道的活动放在该矩 形框内,将对象名放在矩形框的顶部,表 示泳道中的活动由该对象负责。
• 协作图 协作图(Collaboration Diagram)用于 描述相互合作的对象间的交互关系。虽然 顺序图和协作图都用来描述对象间的交互 关系,但侧重点不一样。顺序图着重体现 交互的时间顺序,协作图则着重体现交互 对象间的消息传递关系。

7-图书管理系统--协作图

7-图书管理系统--协作图

可行性研究
领域分析
需求分析

设计
编码
测试
交付
软件工程实践
今天的工作任务
我们的进度,在这里
1. 完成系统行为交互建模——协作图建模
提交内容
1. 图书管理系统中的一个协作图
可行性研究
领域分析
需求分析
设计
编码
测试
交付
软件工程实践
我们的进度,在这里
工作任务1: 完成系统行为交互建模——协作图建模
提交内容:
需求分析
设计
编码
测试
交付
软件工程实践
协作图的用途
我们的进度,在这里
• 如果按组织对控制流建模,应该选择使用协作 图。协作图强调交互中实例间的结构关系以及 所传送的消息。协作图对复杂的迭代和分支的 可视化以及对多并发控制流的可视化要比时序 图好。 • 协作图有别于时序图的两点特性: (1)协作图有路径 ( 2)协作图有顺序号
领域分析需求分析设计编码测试交付可行性研究我们的进度在这里软件工程实践actorobject1objectnewclassobject3operation领域分析需求分析设计编码测试交付可行性研究我们的进度在这里软件工程实践协作图的用途如果按组织对控制流建模应该选择使用协作图
软件工程实践
• 软件工程的实质是什么? • 或者说,你怎么理解软件工程? • 或者说,软件工程可以帮助我们些什么?
可行性研究
领域分析
需求分析
设计
编码
测试
交付
软件工程实践
1.2 协作图的建模技术
我们的进度,在这里
• 对系统动态行为建模,当按组织对控制流建模时,一般使用协作图。 • 使用协作图对系统建模时,可以遵循如下策略。 (1)设置交互的语境,语境可以是系统、子系统、操作、类、用例或用例的脚 本。 (2)通过识别对象在交互中所扮演的角色,开始绘制协作图,把这些对象作为 图的顶点放在协作图中。 (3)在识别了协作图对象后,为每个对象设置初始值。如果某对象的属性值、 标记值、状态或角色在交互期发生变化,则在图中放置一个复制对象,并用 变化后的值更新它,然后通过构造型<<become>>或<<copy>>的消息将两者 连接。 (4)设置了对象的初始值后,根据对象间的关系开始确定对象间链接。一般先 确定关联的链接,因为这是最主要的,它代表了结构的链接。然后需要确定的 是其他的链接,用合适的路径构造型修饰它们,这表达了对象间是如何互相 联系的。 (5)从引起交互的消息开始,按消息的顺序,把随后的消息附到适当的链接上, 这描述了对象间的消息传递,可以用带小数点的编号来表达嵌套。 (6)如果需要说明时间或空间的约束,可以用适当的时间或空间约束来修饰每 个消息。 (7)在建模中,如果想更详细地描述这个控制流,可以为交互过程中的每个消 息都附上前置条件和后置条件。

协作图及其应用

协作图及其应用

22
6

消息规范与应用
6.1 消息规范
– 1)General标签
• Name:消息名 • Documentation:对消息的附加说明
23
6

消息规范与应用
选项 Simply 同步。客户(发送消息的对象)发出消息后, 等待供应者(即消息接收者,或操作提供 者)响应消息。客户等供应者执行完操作 Rose图标 默认值。 含义

消息规范与应用
6.1 消息规范
– 1)General标签
• Name:消息名 • Documentation:对消息的附加说明
25
6

消息规范与应用
6.1 消息规范
– 1)General标签
• Name:消息名 • Documentation:对消息的附加说明
26
6

消息规范与应用
6.1 消息规范
语义解释 当s和c都不是空对象时,才执行register方法 如果s是空对象,则说明没有指定的学生,返回 studentNotFound消息 如果c是空对象,则表示没有找到指定课程,返回 courseNotFound消息 如果s和c都是空对象,表示都没有找到,返回 allNotFound消息 如果s和c都不是空对象,式
迭代表达式 语义
[i:=1..n]
[I=1..10] [while(表达式)] [until(表达式)] [for each(对象集合)]
迭代n次
I迭代10次 表达式为true时才进行迭代 迭代到表达式为true时,才停止迭代 在对象集合上迭代
8


(2). 监护条件
监护条件通常是用来表示分支的,也就是表示“如果条件为true,才 发送消息”的语义,在UML中,监护条件是以“【条件表达式】”的 格式表示的。 现在来看一下它在交互图中的应用。 例如,在图中,消息“1.3:create(prddleryid)”的前面就添加 了一个监护条件【peddeleryid not exist】,它说明只有当 peddeleryid不存在时才调用create方法来创建新的送货单。如果已 经存在,那就不必创建,直接调用1.4方法,将订单项中的产品添加 到相应的送货单即可。

协作图

协作图
协作图
协作图概述
协作图也称为通信图,它描述了系统中, 协作图也称为通信图,它描述了系统中,对象间通过消息 进行的交互,强调了对象在交互行为中承担的角色。 进行的交互,强调了对象在交互行为中承担的角色。 协作图和顺序图之间的语义是等价的, 协作图和顺序图之间的语义是等价的,只是他们的关注点 有所不同而已 使用协作图可以显示对象相互协作时充当的角色。如果需 使用协作图可以显示对象相互协作时充当的角色。 要强调时间和序列,最好选择顺序图建模; 要强调时间和序列,最好选择顺序图建模;如果需要强调 上下文相关,最好选择协作图建模。 上下文相关,最好选择协作图建模。 对象图展示出对象和对象之间的静态关系。 对象图展示出对象和对象之间的静态关系。协作图是对象 图的扩展。协作图除了展示出对象之间的关系, 图的扩展。协作图除了展示出对象之间的关系,还显示出 对象之间的消息传递。 对象之间的消息传递。通常在协作图中省略掉关联的名字 因为表示出关联的名字会使图变得混乱。 ,因为表示出关联的名字会使图变得混乱。
ห้องสมุดไป่ตู้ 汽车和车钥匙的问题域
下面我们绘制一张对象图来对问题域类的实例建模
对类图的实例建模的对象图
上图是协作图的基础, 上图是协作图的基础,我们可以向图中添加消息
对上图中对象间消息建模得到的协作图
与之对应的顺序图
通信图的组成元素
通信图的组成元素包括对象、消息、 连接器 连接器)。 通信图的组成元素包括对象、消息、链(连接器 。消息表 示了对象间的通信,对象通过链连接在一起。 示了对象间的通信,对象通过链连接在一起。 对象:通信图与顺序图中的对象的概念是一样, 对象:通信图与顺序图中的对象的概念是一样,只不过 在通信图中,无法表示对象的创建和撤销, 在通信图中,无法表示对象的创建和撤销,所以对于对 象在图中的位置没有限制。 象在图中的位置没有限制。 链:表示对象之间的语义关系,链是关联的一个实例。 表示对象之间的语义关系,链是关联的一个实例。 通信图中链的符号和对象图中链所用的符号是一样的, 通信图中链的符号和对象图中链所用的符号是一样的, 即一条连接两个对象的实线。 即一条连接两个对象的实线。 消息:通信图中的消息类型与时序图中的相同,只不过 消息:通信图中的消息类型与时序图中的相同, 为了说明交互过程中消息的时间顺序, 为了说明交互过程中消息的时间顺序,需要给消息添加 顺序号。顺序号是在消息的前面加一个整数。 顺序号。顺序号是在消息的前面加一个整数。每个消息 都必须有唯一的顺序号。 都必须有唯一的顺序号。

协作图

协作图

4.3 协作图协作图在很多方面都与顺序图相同。

二者都用来记录对象的交互方式。

但是,顺序图基于时间,而协作图显示对象及相应关联,不强调时间。

协作图显示实现交互的消息序列。

二者的区别仅在于此,因此,顺序图的相关内容也适用于协作图。

这两类图仅是表达事物的两种不同方式。

协作图用来查看系统的动态内容。

因为协作图中的消息不强调时间,所以要编号,以便了解它们的出现顺序。

协作图包含三个基本元素:●对象●链接(对象之间)●消息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指向的两个基本类之间的已有关联进行关联,就会出现错误。

原因在于,需要使链接指向实际关联(分类器)。

UML系统建模基础教程课后习题答案

UML系统建模基础教程课后习题答案

UML 系统建模基础教程课后答案第一章面向对象设计与UML1.填空题(1)UML(2)封装继承多态(3)继承(4)瀑布模型喷泉模型基于组件的开发模型XP 开发模型2. 选择题(1)C(2)A B C D(3)A B C D(4)A B C(5)A1.试述对象和类的关系。

(1)类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。

类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性和相同行为的对象。

第二章UML 通用知识点综述(1)依赖泛化关联实现(2)视图图模型元素(3)实现视图部署视图(4)构造型标记值约束(5)规格说明修饰通用划分2. 选择题(1)D(2)C(3)A(4)A B(5)D(6)1)在UML 中面向对象的事物有哪几种?在UML 中,定义了四种基本的面向对象的事物,分别是结构事物、行为事物、分组事物和注释事物等。

(7)2)请说出构件的种类。

构件种类有:源代码构件、二进制构件和可执行构件。

(8)3)请说出试图有哪些种类。

在UML 中主要包括的视图为静态视图、用例视图、交互视图、实现视图、状态机视图、活动视图、部署视图和模型管理视图。

(9)4)请说出视图和图的关系。

视图和图是包含和被包含的关系。

在每一种视图中都包含一种或多种图。

(10)5)请简述UML 的通用机制。

UML 提供了一些通用的公共机制,使用这些通用的公共机制(通用机制)能够使UML 在各种图中添加适当的描述信息,从而完善UML 的语义表达。

通常,使用模型元素的基本功能不能够完善的表达所要描述的实际信息,这些通用机制可以有效地帮助表达,帮助我们进行有效的UML 建模。

UML 提供的这些通用机制,贯穿于整个建模过程的方方面面。

前面我们提到,UML 的通用机制包括规格说明、修饰和通用划分三个方面。

第三章Rational 统一过程(11)1 )角色活动产物工作流(12)2 )逻辑视图过程视图物理视图开发视图用例视图(13)3)设计开发验证(14)4 )二维(15)5)周期迭代过程里程碑(16) A B C D(17) A C D(18) A C D(19) A B C(20) A B C D(21)1 )请描述迭代过程有几个阶段。

协作图+顺序图

协作图+顺序图

学生宿舍管理系统——协作图协作图又名“通信图”。

即Communication Diagram,而“协作”作为一个结构事物用于表达静态结构和动态行为的概念组合,表达不同事物相互协作完成一个复杂功能。

协作图是一种交互图,强调的是发送和接收消息的对象之间的组织结构。

一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。

对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。

使用协作图来说明系统的动态情况。

协作图使描述复杂的程序逻辑或多个平行事务变得容易。

协作图显示某组对象如何为了由一个用例描述的一个系统事件而与另一组对象进行协作的交互图。

使用协作图可以显示对象角色之间的关系,如为实现某个操作或达到某种结果而在对象间交换的一组消息。

如果需要强调时间和序列,最好选择序列图;如果需要强调上下文相关,最好选择协作图。

画图步骤:(1)在双击打开软件start UML选择empty project,出现如图1.1所示。

(2)新建model1,然后新建一个协作图。

(3)在图中的工具栏选取协作图图 Object图标,在右边的图中添加一个Object,并输入名称。

(4)根据题目需求,在左边的工具栏中,选取其他协作图所需图标,在右边的图中画出。

添加开始和结束标志,然后用横线把它们连接起来。

即画出一个完整的协作图。

宿舍管理员学生基本信息表宿舍分配界面床位宿舍住宿情况表打开修改住宿信息查询空床位显示空床位基本信息确认学生信息学生显示学生具体信息输入学号查询学生信息图1 系统协作图学生宿舍管理系统——顺序图顺序图是将交互关系表示为一个二维图。

纵向是时间轴,时间沿竖线向下延伸。

横向轴代表了在协作中各独立对象的类元角色。

类元角色用生命线表示。

当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。

UML顺序图一般用于:确认和丰富一个使用情境的逻辑。

表示用例的实现,系统的动态分析.画图步骤:(1)在双击打开软件start UML选择empty project,出现如图1.1所示。

协作图 - 副本

协作图 - 副本

• Hierarchical编号
– 定义
• 即等级编号,Hierarchical 编号使用带小数点的号码,方便 显示消息嵌套。
– 举例
• 如1表示第一个消息,1.1表示嵌套在消息中的第一个消息, 1.2表示嵌套在消息中的第二个消息。注意:如果删除消息 1,则嵌套在消息1中的其他消息也将同时被删除。
1
1.1
1.2
2
2.1
2.1.1 2.1.2
2.2
2.2.1
消息的层次编号方式
(5)迭代标记和监护条件 迭代标记 • 迭代标记用*号表示,表示循环,通常还有迭代表达式,用 来说明循环规则。 • 虽然在UML2.0中顺序图已不采用迭代标记(用交互片段代替 迭代标记的功能),但在协助图中仍然使用迭代标记。 • 迭代是通过在顺序编号前加上一个迭代符“*”和一个可选 的迭代表达式来表示。对于迭代表达式,UML没有强制规定 什么语法,因此可以使用任何可读的、有意义的表达式来表 示。
:Order getStockLevel() return s
c:CatalogueEntry
[s<n]restock()
[s>=n]OrderLine(n,c)
:OrderLine
getCost() return cost
顺序图中的可选消息
• 当进行交互时,两个可选消息中只有一个会被发送, 这是通过让两个消息起源于同一个点来表示的
水平轴上的对象间的相互顺序并不重要。
图书管理系统——借书顺序图
协作图的例子:由借书顺序图转换来的协作图
1.协作图的组成
协作图包含了3个元素:
协作图(Collaboration Diagram)是由对象 (Object)、消息(Messages)和链(Link) 等构成的。

协作图

协作图
2: find_reservation() 1: identify_borrower() : Administrator : LendWindow 4: borrow() : Title 6: borrow() 7: check_if_max() 5: update() : Item
: Reservation
(1)从时序图转换成协作图 )
• 打开sequence 框图; • 选择Browse → Go To collaboration Diagram;或者,直 接按下F5键; • 浏览协作图并调整图中模型元素的位置。
2011-5-26
20
时序图与协作图的互换
时序图与协作图都表示对象之间的交互作用, 时序图与协作图都表示对象之间的交互作用, 只是它们的侧重点有所不同。 只是它们的侧重点有所不同。 在相同的语境中,两种图的语义是等价的, 在相同的语境中,两种图的语义是等价的,可 以从一种形式的图转换成另一种形式的图, 以从一种形式的图转换成另一种形式的图,而 不丢失任何信息。 不丢失任何信息。
为了说明一个对象如何与另一个对象连接, 为了说明一个对象如何与另一个对象连接,可 以在链的末路上附上一个路径构造型。 以在链的末路上附上一个路径构造型。 例如构造型<<local>>, 例如构造型<<local>>,表示指定对象对发送 <<local>> 方而言是局部的。 方而言是局部的。
object1
2011-5-26 18
时序图与协作图的比较
区别: 区别:
⑷ 关于消息的编号
2011-5-26
19
时序图与协作图的互换
时序图与协作图都表示对象之间的交互作用, 时序图与协作图都表示对象之间的交互作用, 只是它们的侧重点有所不同。 只是它们的侧重点有所不同。 在相同的语境中,两种图的语义是等价的, 在相同的语境中,两种图的语义是等价的,可 以从一种形式的图转换成另一种形式的图, 以从一种形式的图转换成另一种形式的图,而 不丢失任何信息。 不丢失任何信息。

第9章 协作图

第9章 协作图

9.4 协作图建模实例
9.4.2 需求分析
系统管理员添加图书用例的基本工作流程步骤描述如 下: 1. 系统管理员希望通过系统添加某些图书。 2. 系统管理员通过添加图书界面AddBookWindow添加图 书信息。 3. 系统管理员通过添加图书界面AddBookWindow选择图 书的书目信息。 4. 系统管理员通过添加图书界面AddBookWindow添加图 书的其它描述信息。 5. 添加图书界面AddBookWindow通过Book实例添加图书 信息到数据库中。 6. Book实例返回图书是否添加成功信息。 7. 添加图书界面AddBookWindow显示图书是否添加成功 信息。

9.2 协作图的组成
9.2.3 链
► 在协作图中的链和对象图中链的概念和表
示形式都相同,都是两个或多个对象之间 的独立连接,是对象引用元组,是关联的 实例。 ► 链的表示形式为一个或多个相连的线或弧。 在自身相关联的类中,链是两端指向同一 对象的回路,是一条弧。如下图所示,是 链的普通和自身关联的表示形式。
9.1 协作图的概念
协作图作为一种在给定语境中描述协作中各 个对象之间的组织交互关系的空间组织结构 图形化方式,在使用其进行建模时,可以将 其作用分为以下三个方面: 1. 通过描绘对象之间消息的传递情况来反映具 体的使用语境的逻辑表达。 2. 显示对象及其交互关系的空间组织结构。 3. 协作图的另外一个作用是表现一个类操作的 实现。
9.2 协作图的组成
9.2.2 消息
在协作图中,可以通过一系列的消息来描述系统的动态行为。 ► 消息使用带有标签的箭头来表示,它附在连接发送者和接收 者的链上。 ► 链连接了发送者和接收者,箭头的指向便是接收者。每个消 息包括一个顺序号以及消息的名称。 ► 消息的名称可以是一个方法,包含一个名字和参数表、可选 的返回值表。消息的各种实现的细节也可以被加入,如同步 与异步等。

07讲 协作图

07讲 协作图

27
组成协作图的元素
1. 对象
• • • 一个协作代表了为了完成某个目标而共同工作的一组对象。对象的角色表示一个或一组对象 在完成目标的过程中所应起的那部分作用。对象是角色所属的类的直接或者间接实例。 在协作图中,不需要关于某个类的所有对象都出现,同一个类的对象在一个协作图中也可能 要充当多个角色。 协作图中对象的表示形式也和序列图中的对象的表示方式一样,使用包围名称的矩形框来标 记,所显示的对象及其类的名称带有下划线,二者用冒号隔开,使用“对象名 :类名”的形 式,与序列图不同的是,对象的下部没有一条被成为“生命线”的垂直虚线,并且对象存在 多对象的形式。5需求捕获工作流6
制品
• ① ② ③ ④ ⑤ ⑥ 在需求捕获工作流,主要的UML制品: 用例模型(Use Case Model) 参与者(Actor) 用例(Use Case) 构架描述 术语表(Glossary) 用户界面原型
7
工作人员
• ① ② ③ 参与需求捕获阶段的工作人员: 系统分析人员(System Analyst) 用例描述人员(Use Case Specifier) 用户界面设计人员(User Interface Designer) ④ 构架设计师(Architect)
30
协作图与序列图的区别与联系
取100元人民币的时序图
31
协作图与序列图的区别与联系
取100元人民币的协作图
32
协作图与序列图的区别与联系
• • • • 都是交互图,描述对象之间的交互 都包含一系列消息集合 时序图强调消息传送的时间先后顺序 协作图中描述了该协作所有对象组成的网络结构 以及相互发送消息的整体形为
以下以“学生信息管理系统”的一个简单用例“教师 查看学生成绩”为例,介绍如何创建系统的协作图。

chapter09协作图.

chapter09协作图.

2019/5/12
Software School, Zhengzhou University
郑州大学软件学院
第9章 协作图
重点内容:
Review 什么是协作图 组成协作图的元素 使用Rose创建协作图 在项目中创建协作图及案例分析 协作图与序列图的区别与联系 协作图与序列图的相互转换
2019/5/12
Software School, Zhengzhou University
郑州大学软件学院
一、 什么是协作图 1、协作图的基本概念
类元角色(Classifier Roles)
※ 表示参与协作执行的对象的描述,系统中的对象可 以参与一个或多个协作
关联角色(Association Roles)
2019/5/12
Software School, Zhengzhou University
郑州大学软件学院
一、 什么是协作图 2、为什么要使用协作图
协作图作为一种在给定语境中描述协作中各个对象之间的组 织交互关系的空间组织结构图形化方式,在使用其进行建模时, 可以将其作用分为以下三个方面:
3 协作图的另外一个作用是表现一个类操作的实现。协作图 可以说明类操作中使用到的参数、局部变量以及返回值等。当使 用协作图表现一个系统行为时,消息编号对应了程序中嵌套调用 结构和信号传递过程。
2019/5/12
Software School, Zhengzhou University
郑州大学软件学院
二、组成协作图的元素
1、对象
协作图中对象的表示形式也和序列图中的对象的表示方式一样, 使用包围名称的矩形框来标记,所显示的对象及其类的名称带有 下划线,二者用冒号隔开,使用“对象名 :类名”的形式,与 序列图不同的是,对象的下部没有一条被成为“生命线”的垂直 虚线,并且对象存在多对象的形式。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 协作图的作用
协作图与序列图之间的异同: 相同点:都表示对象间的交互关系 侧重点不同:
序列图强调交互的时间顺序 协作图强调对象的整体组织与相互的连接 维度不同: 序列图按照时间维度布图 协作图按照空间组织维度布图
第九章 协作图
9.2 组成协作图的元素
对象、消息和 链这三个元素构成 了协作图。
创建协作图的下一步是确定这些对象之间的连 接关系,使用链和角色将这些对象连接起来
在这一步中,我们基本上可以建立早期的协作 图,表达出协作图中的元素如何在空间上进行 交互。
9.4 协作图的创建以及案例分析
在链上添加消息
9.4 协作图的创建以及案例分析
以下以“学生信息管理系统”的一个简单用例 “教师查看学生成绩”为例,介绍如何创建系 统的协作图。
进一步分析、建模
9.1 协作图的基本概念
1 协作图的含义
协作图是表现对象协作关系的图,它表示了协作中作为 各种类元角色的对象所处的位置,在图中主要显示了类 元角色(Classifier Roles)和关联角色(Association Roles)。
9.1 协作图的基本概念
1 协作图的含义
类元角色(Classifier Roles)
不同点 时序图强调消息传送的时间先后顺序 协作图中描述了该协作所有对象组成的网络结构以及 相互发送消息的整体行为(任务分配) 序列图的消息可以没有序号,协作图的消息必须有序 号
9.3 使用Rose创建协作图
实验部分
9.4 协作图的创建以及案例分析
(1)确定对象:根据系统的用例或具体的场景,确 定协作图中应当包含的类元角色
2链
协作图中的链和对象图中的链相同,都是两个或多个对象 之间的独立连接,是关联的实例。
关联是类与类之前的关系,对象为类的实例,链接为关联的实例
在协作图中,链的表示形式为一个或多个相连的线或弧。 一个链上可以有多个消息
在链上可以加一些修饰,如角色名、导航 但由于链是连接对象的,所以链的两端没有多重性标记
协作图包含一组对象和以消息交互为练习的关 联,用于描述系统的行为是如何由系统的成分合 作实现的。在协作图中,类元角色描述了一个对 象,关联角色描述了协作关系中的链,并通过几 何排列表现交互作用中的各个角色。
9.1 协作图的基本概念
1 协作图的含义
需求分析——用例图
静态分析——类/对象图
动态分析——序列图、 协作图…
消息可能要求某个对象返回操作结果的值
UML提供了返回值的表示法。返回值的名字在最左, 后跟赋值号“:=”,接着是操作名和操作的参数。
9.2 组成协作图的元素 3 消息——消息类型
协作图的消息跟序列图一样,也可以细分为以下几类:
各类消息的含义和表示方法都是序列图中的相同
9.2 组成协作图的元素 4 序列图转换为协作图
表示参与协作执行的对象的描述,系统中的对象可以参与一 个或多个协作
关联角色(Association Roles)
参与协作执行的关联的描述
类元角色和关联角色描述了对象的配置和当一个协作 的实例执行时可能出现的连接
一个协作图通常用来代表一个操作或用例的实现
9.1 协作图的基本概念
1 协作图的含义
9.2 组成协作图的元素
消息用来描述系统的动态行为 可以体现类的操作的调用
3 消息
消息使用带有标签的箭头来表示,它附在连接发送者和接 收者的链上
箭头指向接收者,每个消息包括一个顺序号及消息名
9.2 组成协作图的元素
3 消息
消息的名称可以是一个类的方法,包含一个名字和参数表、 可选的返回值表。
(2)添加对象间的链 :确定这些元素之间的关系, 建立早期的协作图,添加链接和关联角色等
(3)细化消息:将早期的协作图进行细化,在链上 添加消息并指定消息的序列。
9.4 协作图的创建以及案例分析
得 到 如 下 序 列 图
9.4 协作图的创建以及案例分析
确 定 协 作 元 素
9.4 协作图的创建以及案例分析
一个使用情境的逻辑可能是一个用例的一部分,或是一条控 制流。这和序列图的作用类似。
显示对象及其交互关系的空间组织结构。
协作图显示了在交互过程中各个对象之间的组消息编号对应了程序中调用结构和信号传递过程。
9.1 协作图的基本概念
第九章 协作图
主讲:秦嘉奇
交互图用于对系统行为 进行建模,但是协作图着重 于对系统成分如何协同工作 进行描述。
协作图与序列图是交互 行为的两种描述角度,可以 相互转化。
第9章 协作图
本1
章 内
2
容3
协作图的基本概念 协作图的组成 使用Rose创建协作图
4
案例分析
第九章 协作图
9.1 协作图的基本概念
9.2 组成协作图的元素
1 对象
一个协作代表了为了完成某个目标而共同工作的一组对象
同一个类的对象在一个协作图中也可能要充当多个角色
协作图中对象的表示形式也和序列图中的对象基本一致, 除了: 协作图的对象下部没有 “生命线” 协作图的对象存在多对象的形式
9.2 组成协作图的元素
9.4 协作图的创建以及案例分析
从用例描述中,可以确定需要“教师”、“学 生信息”、“学生成绩”等对象
通常还需要界面类
9.4 协作图的创建以及案例分析
确定链
9.4 协作图的创建以及案例分析
添加消息,细化协作图
课堂练习
待补充。。。
本章作业
1 序列图的含义
课后习题 160页 1. 填空题 2. 选择题 3. 简答题(4) 将上一章作业画的序列图转成协作图
第八章中的序列图
9.2 组成协作图的元素 4 序列图转换为协作图
第八章中的序列图 对应的协作图
9.2 组成协作图的元素 * 练习
在这个练习中,将通过对ATM机取款用例的行为描 述,比较顺序图与协作图。例如,客户Joe从ATM机 提取20美金的场景
协作图与序列图的区别、联系
相同点 都是交互图,描述对象之间的交互 都包含一系列消息集合
序列图与协作图:

序列图和协作图都可以表示对象间的交互关系,
但它们的侧重点不同。序列图强调的是交互的时间顺
序,协作图强调的是交互的语境和参与交互的对象的
整体组织。还可以从另一个角度来看两种图的定义:
序列图按照时间顺序布图,而协作图按照空间组织布
图。
9.1 协作图的基本概念
2 协作图的作用
通过描绘对象之间消息的传递情况来反映逻辑表达。
相关文档
最新文档