交互图用来描述系统中的对象是如何进行相互作用的,即一组对象是如何进行消息传递的。
交互图由一组对象和它们之间的关系构成,其中包括:需要什么对象,对象相互之间发送什么消息,什么角色启动消息以及消息按什么顺序发送。
交互图的分类:
交互图主要分为这两种:顺序图和协作图。
- 顺序图—强调消息的事件顺序
- 协作图—强调对象之间的交互关系
顺序图描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序。
顺序图,包括时间顺序,不包括对象联系。也就是说我们在建立顺序图当中,只需考系统虑系统行为的先后顺序,而不需要考虑他们之间的关系。把对象之间的行为按照时间的先后顺序画出来就可以了。
在UML中,顺序图由一个二维图描述系统中各个对象之间的交互关系。其中,纵轴表示时间,横轴表示参与交互作用的对象。
顺序图的构成:
- —对象与角色:上面的矩形框。在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。作为具体的事物,一个对象代表现实世界中的某个东西。
- 生命线与控制焦点:每个对象都有自己的生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时间内存在
- 消息:是对象之间的通信,可以是信号或者操作调用。
其中消息主要有这几种形式:
- 调用(Call):表示调用某个对象的一个操作。可以是对象间的调用,也可以使对象本身的调用。
- 返回(Return) 返回表示被调用的对象向调用者返回一个值。
- 发送(Send):对象发送信号,与调用不同,调用是同步的机制,而信号是一种异步的机制。也就是说,当对象A调用对象B时,A发送完消息之后是会等B执行完所调用的方法之后再继续执行的;如果说对象A发送了一个信号给对象B,那么A在发送完信号之后,就会继续执行,不会等待。
- —创建(Creat)创建意味着该对象生命线的开始,
- 销毁(Destory)通常连接着的是目标对象的生命终止符号
消息的表示方法:用消息线表示,一个对象到另一个对象的消息用跨越对象生命线的一条消息线表示出来,包括反身消息
消息的分类:
同步:在一定程度上可以看作是一个单线程,这个线程请求一个方法后,就待这个方法给他回复,否则他就不往下执行。
异步:在一定程度上可以看做是一个多线程。请求一个方法后,就不管了,继续执行其他的方法。
PS:一般情况下用简单消息就行了。
协作图:强调参加交互对象的组织。
协作图与顺序图的关系:
- 二者在语义上等价
- 二者可以相互转化
- 二者的侧重点不同:
- 顺序图强调时间顺序
- 协作图侧重对象之间的关系。
posted on 2013-02-05 17:19 阅读( ...) 评论( ...)