UML之交互图(时序图、序状图)

第一部分

什么是时序图

描述了对象之间传递消息的时间顺序,用来表示用例中的行为顺序,是强调消息时间顺序的交互图。将这些交互建模成消息交换。

时序图包括的元素

UML之交互图(时序图、序状图)
元素一:
对象的三点注意:1)对象代表时序图中的对象在交互中所扮演的角色
2)其对象符号与对象图中对象所用的符号一样,都是矩形将对象名称包含起来,且对象名称下有下划线
3)将对象置于时序图的顶部,意味着在交互图开始的时候对象就已经存在了,如果对象的位置不再顶部, 那么表示对象是在交换过程中被创建。
示例如图:UML之交互图(时序图、序状图)
注:关于撤销一个对象,则只要在其对象线终止点放置一个“X” 符号即可,该点通常是对删除或取消消息的回应。
示例如下:UML之交互图(时序图、序状图)

元素二:
生命线:是一条垂直的虚线,表示时序图中的对象在一段时间内的存在。
元素三:
**:分为**和被**。**代表时序图中的对象执行一项操作的时期,用矩形表示;去**指的是对象处于空闲状态,通常发生在一个消息箭头离开对象生命线的时候。
元素四:
消息:可以是信号,即明确、命名的、对象间的异步通信;也可以是调用,即具有返回控制机制的操作的同步调用。

消息可以用两种图来表示 时序图强调消息的时间顺序,协作图强调交换消息的对象间的关系

几种消息符号:UML之交互图(时序图、序状图)

画时序图的步骤

1)设置交互的语境,可以是类、系统、子系统、操作、用例和协作的一个脚本
2)识别对象在交互中扮演的角色,据其重要性,从左向右的方向放在时序图中
3)设置每个对象的生命线
4)从引发某个交互的信息开始,在生命线之间按从上向下的顺序画出随后的消息
5)设置对象的**期
6)如果需要设置时间或空间的约束,可以为每个消息附上合适的时间和空间约束
7)可以给某控制流附上前置条件和后置条件

以下是我画的时序图,请笑纳

UML之交互图(时序图、序状图)

第二部分

什么是协作图

协作图是一种类图。可被视为对象图的扩展,除了展示对象间得管理外,还展示对象间得消息传递。只对相互间有交互作用得对象和这些对象间得关系建模。

包含得元素

UML之交互图(时序图、序状图)

元素一:

对象:代表协作图交互中所扮演得角色,在协作图中得位置没有限制

元素二

链:跟对象图中得链所用得符号一致,示例如下:UML之交互图(时序图、序状图)
注:可以在链得末路上附上一个路径构造型,以此来说明一个对象如何与另一个对象连接。示例如下:
UML之交互图(时序图、序状图)

元素三

消息:代表协作图中对象间通过链接发送得信息。消息类型与时序图中相同,不过为了说明交互过程中消息的时间顺序,需给消息添加顺序号。每个消息对应一个顺序号

画协作图的步骤

1)设置交互的语境,与时序图一致
2)识别对象在交互中所扮演的角色
3)为每个对象设置初始值。
4)据对象间关系开始确定对象间链接,一般先确定关联的链接
5)从引起交互的消息开始,可以按时间顺序,把消息附到适当的链接上,顺序编号可用小数点来表示嵌套
6)如果需要说明时间或空间约束,可适当使用时间或空间约束来修饰每个消息
7)建模中,想更详细的描述这个控制流,可以为交互过程中的每个消息都附上前置条件和后置

我画的协作图

UML之交互图(时序图、序状图)

第三部分:相同与区别

两种图的相同点:
1)规定责任:都直观的规定了发送对象和接受对象的责任。
2)支持消息:两种图都支持所有类型的消息类型
3)衡量工具:都是耦合性的工具。耦合性被用来衡量模型之间的依赖性
两种图的不同点:
1)时序图可描述对象的创建和撤销情况,协作图则是对象要么不存在要么存在
2)时序图可以表现对象的**和去**,协作图则没有对时间的描述,除了有通过对消息进行解释。
3)时序图不能把链展现出来,虽然也可随意绘制消息,但有些逻辑交互根本不可能实际发生;协作图则可将对象的交互映射到他们之间的链上。

总结

概念清楚了,接下来就是不断反复的练习了