UML之协作图
2014-02-19 15:28
155 查看
一、基础概念
协作图强调发送和接受消息的对象之间的结构组织的交互图,显示对象、对象之间的链接以及对象之间的消息,还可以显示当前模型中的简单类实例和类实体实例。
协作图,它描述了系统中,对象间通过消息进行的交互,强调了对象在交互行为中承担的角色。下图就是一个典型的协作图。
从订单生成订货单的协作图。
二、作用
协作图常用来描述业务或软件系统中,每个对象在交互发生时承担的角色,即强调了交互发生时,每个对象承担的职责。
使用协作图可以显示对象相互协作时充当的角色。如果需要强调时间和序列,最好选择顺序图建模;如果需要强调上下文相关,最好选择协作图建模。
协作图用于显示对象之间如何进行交互,以实现特定用例或用例中特定部分的行为。设计员使用协作图和顺序图确定并阐明对象的角色,这些对象执行用例的特定事件流。这些图提供的信息主要用来确定类的职责和接口。
三、元素及标识
UML中,表示一个协作图,主要是标识系统中的对象、对象间交互的消息、对象间的链。
1.对象:
协作图与时序图中的对象的概念是一样,只不过在协作图中,无法表示对象的创建和撤销,所以对于对象在图中的位置没有限制。
2.链:
表示对象之间的语义关系,链是关联的一个实例。协作图中链的符号和对象图中链所用的符号是一样的,即一条连接两个对象的实线。
3.消息
协作图中的消息类型与时序图中的相同,只不过为了说明交互过程中消息的时间顺序,需要给消息添加顺序号。顺序号是在消息的前面加一个整数。每个消息都必须有唯一的顺序号。
4.消息编号:
消息的编号有两种,一种是无层次编号(按顺序编号),它简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系.
5.迭代标记和监护条件
(1)迭代标记
迭代标记用*号表示,表示循环,通常还有迭代表达式,用来说明循环规则。
迭代是通过在顺序编号前加上一个迭代符“*”和一个可选的迭代表达式来表示。对于迭代表达式,UML没有强制规定什么语法,因此可以使用任何可读的、有意义的表达式来表示。常用的迭代表达式如表所示。
(2)监护条件
监护条件通常是用来表示分支的,也就是表示“如果条件为true,才发送消息”的语义,在UML中,监护条件是以“【条件表达式】”的格式表示的。
现在来看一下它在交互图中的应用。
例如,在图中,消息“1.3:create(prddleryid)”的前面就添加了一个监护条件【peddeleryidnotexist】,它说明只有当peddeleryid不存在时才调用create方法来创建新的送货单。如果已经存在,那就不必创建,直接调用1.4方法,将订单项中的产品添加到相应的送货单即可。
相关阅读:
UML(5)——协作图
UML图之六——协作图
协作图强调发送和接受消息的对象之间的结构组织的交互图,显示对象、对象之间的链接以及对象之间的消息,还可以显示当前模型中的简单类实例和类实体实例。
协作图,它描述了系统中,对象间通过消息进行的交互,强调了对象在交互行为中承担的角色。下图就是一个典型的协作图。
从订单生成订货单的协作图。
二、作用
协作图常用来描述业务或软件系统中,每个对象在交互发生时承担的角色,即强调了交互发生时,每个对象承担的职责。
使用协作图可以显示对象相互协作时充当的角色。如果需要强调时间和序列,最好选择顺序图建模;如果需要强调上下文相关,最好选择协作图建模。
协作图用于显示对象之间如何进行交互,以实现特定用例或用例中特定部分的行为。设计员使用协作图和顺序图确定并阐明对象的角色,这些对象执行用例的特定事件流。这些图提供的信息主要用来确定类的职责和接口。
三、元素及标识
UML中,表示一个协作图,主要是标识系统中的对象、对象间交互的消息、对象间的链。
1.对象:
协作图与时序图中的对象的概念是一样,只不过在协作图中,无法表示对象的创建和撤销,所以对于对象在图中的位置没有限制。
2.链:
表示对象之间的语义关系,链是关联的一个实例。协作图中链的符号和对象图中链所用的符号是一样的,即一条连接两个对象的实线。
3.消息
协作图中的消息类型与时序图中的相同,只不过为了说明交互过程中消息的时间顺序,需要给消息添加顺序号。顺序号是在消息的前面加一个整数。每个消息都必须有唯一的顺序号。
4.消息编号:
消息的编号有两种,一种是无层次编号(按顺序编号),它简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系.
5.迭代标记和监护条件
(1)迭代标记
迭代标记用*号表示,表示循环,通常还有迭代表达式,用来说明循环规则。
迭代是通过在顺序编号前加上一个迭代符“*”和一个可选的迭代表达式来表示。对于迭代表达式,UML没有强制规定什么语法,因此可以使用任何可读的、有意义的表达式来表示。常用的迭代表达式如表所示。
迭代表达式 | 语义 |
[i:=1..n] | 迭代n次 |
[I=1..10] | I迭代10次 |
[while(表达式)] | 表达式为true时才进行迭代 |
[until(表达式)] | 迭代到表达式为true时,才停止迭代 |
[for each(对象集合)] | 在对象集合上迭代 |
监护条件通常是用来表示分支的,也就是表示“如果条件为true,才发送消息”的语义,在UML中,监护条件是以“【条件表达式】”的格式表示的。
现在来看一下它在交互图中的应用。
例如,在图中,消息“1.3:create(prddleryid)”的前面就添加了一个监护条件【peddeleryidnotexist】,它说明只有当peddeleryid不存在时才调用create方法来创建新的送货单。如果已经存在,那就不必创建,直接调用1.4方法,将订单项中的产品添加到相应的送货单即可。
相关阅读:
UML(5)——协作图
UML图之六——协作图
相关文章推荐
- UML 实践——用例图、顺序图、状态图、类图、包图、协作图
- UML系列图——交互图 InteractionDiagram(序列图和协作图)
- UML实践详细经典教程----用例图、顺序图、状态图、类图、包图、协作图
- 【UML】协作图Collaboration diagram(交互图)
- UML学习:机房收费系统-图集(协作,顺序,部署,构件)
- UML之行为图(活动图、状态图、序列图、协作图)
- UML基础--协作图
- (转)UML实践----用例图、顺序图、状态图、类图、包图、协作图
- UML实践----用例图、顺序图、状态图、类图、包图、协作图
- 浅谈UML学习笔记动态模型之序列图、协作图
- UML 用例图、顺序图、状态图、类图、包图、协作图
- UML实践详细经典教程----用例图、顺序图、状态图、类图、包图、协作图
- UML中的九种图及画图技巧——序列图、协作图
- UML实践----用例图、顺序图、状态图、类图、包图、协作图
- 【UML入门教程】——动态部分(下):顺序图、协作图
- UML 之 序列图和协作图
- UML之交互图(序列图与协作图)
- UML笔记(4):协作图、Collaboration Diagram
- UML--时序图、协作图