UML入门之交互图——时序图与协作图重点区分
一、时序图
1、定义
描述对象之间传递消息的时间顺序,用来表示用例中的行为顺序,强调时间顺序的交互图。
2、用途
时序图描述系统中类与类之间的交互,将这些交互建模成消息交换,时序图描述了类以及类之间的交换以完成的期望行为的消息,时序图中每条消息都代表了类的一个操作或引起状态机改变的触发事件。
3、时序图表示
参与交互的对象在时序图顶端水平排列,每个对象的底端绘制了一条垂直的虚线,对象A向对象B发送消息,用一条带箭头的实线表示,该实线起始于对象A底部的虚线,终止于对象B底部的虚线,实线箭头水平放置,越靠近顶端越早被发送。
4、组成
时序图包括五个元素:角色(actor),对象(object),生命线(lifeline),控制焦点(activation),消息(message)
A、角色:系统角色,可以是人或其他系统,子系统。
B、对象:对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表类角色。
对象一般包括三种命名方式:
第一种方式包含对象名和类名。
第二种方式只显示类名不显示对象名,即为一个匿名对象。
第三种方式只显示对象名不显示类名。
C、生命线:生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间的消息存在于俩条虚线间。
D、控制焦点:控制焦点代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。它可以被理解为C语言语义中一对花括号{}中的内容。
**:代表时序图中对象执行一项操作的时期,**期可以理解为语义中{}中的内容,表示该对象被占用以完成某个任务。
去**:指对象处于空闲状态,在等待消息**这个对象。
**的表示:当对象处于**时期,生命线可以扩宽为矩形,这个矩形条成为**条。
E、消息:消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。
5、强调
时序图强调消息是如何在对象间发送和接收的。描述对象是如何交互的,并且将重点放在消息序列上。
6、举个栗子
二、协作图
1、定义
协作图是一种类图,包含类元角色和关联角色,不仅仅是类元和关联。
2、用途
用于表示对象间的消息往来。虽然时序图在某种定义上也能表示对象的协作动作,
3、组成
A、对象:代表协作图 交互中的主体,和时序图中对象的概念类似。
协作图和时序图中对象区别:协作图无法创建和撤销,所以对象在协作图的位置没有限制。
B、链:链的符号 和对象图 中链所用的符号是一样的,用来连接俩个类角色的实线。
C、消息:对象间通过链接发送的就是消息。
4、举个栗子: