UML之交互图

来源:互联网 发布:131458淘宝买家查询 编辑:程序博客网 时间:2024/04/29 18:16

首先交互图分为时序图和协作图


写在前面

在建好系统用例图以及类图基础上,接下来需要分析和设计系统的动态图(结构行为图),并且建立相应的动态模型了。动态模型描述了系统随时间变化的行为,这些行为是用从静态视图中抽取的系统的瞬间值的变化来描述的。在UML的表现上,动态模型主要是建立系统的交互图以及活动图和状态图。
时序图用来显示对象之间的关系,并强调对象之间消息的时间顺序,同时显示对象之间的交互。协作图主要用来描述对象间的交互关系,在UML 2.0中,协作图被改成了通信图。 


一时序图

(一)、概念:时序图是按照时间顺序来描述对象之间的消息传递,是用来表示用例中的行为顺序,是强调消息时间顺序的交互图
(二)、内容
1、对象:对象是代表时序图中的对象,在交互中扮演的角色。时序图中的对象和对象图中的图符是一样的,都是使用矩形将对象名称包含起来并且对象名称下面有下划线。如图


2、生命线:生命线是一条垂直的虚线,表示时序图中的对象在一段时间中的对象在一段时间内的存在。对象的和生命线组合在一起为对象的生命线。如图


3激活:激活代表时序图中的对象执行一项操作的时期。时序图可以描述对象的激活和去激活。激活通常发生在一个消息箭头离开对象生命线的时候如图:



4、 消息:消息是定义交互图和协作图中交换信息的类,用于实体间的通信内容建模。消息在实体间用于实体间传递信息,允许视图请求其他的任务。消息是两个对象之间的单路通信,从发送方到接收方的控制信息流。消息可以用于在对象之间传递参数,消息可以是信号,即明确的、命名的、对象间的异步通信。也可以是调用,即具有返回控制机制的操作的同步调用。



协作图

一、概念:协作图是一种交互图,是动态视图的一种表现形式,强调的是发送和接收消息的对象之间的组织结构。协作图中的对象用举行表示,一个协作图显示了一系列的对象和这些对象之间的联系,以及对象间发送和接收消息。同时它是一种类图,它包含类元角色和关联角色。
如图:


内容

1、对象:代表协作图交互中扮演的角色,和时序图中的概念类似,在协作图中,无法表示对象的创建和撤销,所以对象在协作图中的位置没有限制。

2、链:协作图中链的符号和对象图中链所用的符号一样的,即一条连接两个类角色的实践。下图是在Rose中协作图中常用的链的符号



3、消息:消息代表协作图中对象间通过链发送的消息,协作图和时序图中的消息类型是一样的,只不过为了说明交互过程中消息的时间顺序,需要给消息添加顺序号。


总结:时序图和协作图的比较

    时序图和协作图描述的主要元素都是两个,即类和角色

共同点:

1、规定责任,两种图都直观的规定了发送对象和接收对象的责任。将对象确定为接收对象,意味着为此对象添加一个接口。而消息描述成为接收对象的操作特征标记,由发送对象触发该操作。

2、支持消息。两种图都支持所有的消息类型。


3、衡量工具。两种图还是衡量耦合性的工具。耦合性被用来衡量模型之间的依赖性,通过检查两个元素之间的通信,可以很容易地判断出它们的依赖关系。如果查看对象的交互图,就可以看见两个对象之间消息的数量以及类型,从而简化或减少消息的交互,以提高系统的设计性能。

区别:

1、协作图的重点是将对象的交互映射到它们之间的链上,即协作图以对象图的方式绘制各个参与对象,并且将消息和链平行放置。这种表示方法有助于通过查看消息来验证类图中的关联或者发现添加新的关联的必要性。但是时序图却不把链表示出来,在时序图的对象之间,尽管没有相应的链存在,但也可以随意绘制消息,不过这样做的结果是有些逻辑交互根本就不可能实际发生。


2、时序图可以描述对象的创建和撤销的情况。新创建的对象可以被放在对象生命线上对应的时间点,而在生命线结束的地方放置一个大写的X以表示该对象在系统中不能再继续使用。而在协作图中,对象要么存在要么不存在,除了通过消息描述或约束,没有其他的方法可以表示对象的创建或结束。但是由于协作图所表现的结构被置于静止的对象图中,所以很难判断约束什么时候有效。


3、时序图还可以表现对象的激活和去激活情况,但对于协作图来说,由于没有对时间的描述,所以除了通过对消息进行解释,它无法清晰地表示对象的激活和去激活情况

 



0 0
原创粉丝点击