1、基本概念
时序图在有些教材上,又被翻译为顺序图,两者在表述上虽然有一些差别,但是大体都是准确的,可能称之为时序图会更加书面语话,听起来高大上的感觉。其实是一样的,重在理解,个人偏向于时序图,也就是时间顺序的意思。
时序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。
时序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。 顺序图属于动态建模。
时序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序。
浏览顺序图的方法是:从上到下查看对象间交换的消息。
2、事物
时序图中有这样的几个事物,如下图:
这里没有将事物的图示显示出来,不过没关系,我们看到下面的图形,根据上文的描述,应该也能猜出。
3、关联关系
这里的关联关系,主要是指时序图与类图、用例图之间的关系,向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指向的对象所在类的 一个operation。如下图,就是一个订单类发消息给客户类调用客户类中的“验证客户”操作:
我们在事物中,没有看到的一些线条图像,在这里都有所展示,订单办事员就是我们的参与者,订单和客户等都是对象,验证客户就是消息符号,上文中表示的就是产生订单的时候,需要验证客户信息。这一点应该比较容易理解,我们在淘宝上买东西,需要提交订单的时候,会让你填写自己的信息,登录后才能继续操作。
4、简单案例
我们看一个很简单时序图案例,如下:
上图的意思应该很简单,参与者先发送消息给对象1,对象1再发送消息给对象2,然后返回一个消息给参与者。实际上这里如果还添加一个从对象2返回的消息给对象1,就会变得很好理解了,这样缺一条消息,变得有些难懂。
举例说明,比如,我们在Google上搜索一个东西,那么先是页面响应,进入搜索状态,然后搜索框那里开始调用后台的服务,后台的服务会访问数据库,然后数据库返回给前台页面,前台页面再将数据处理一下,展示出来。
5、看一个案例
这次给出一个稍微复杂的案例,看完以后,应该能够知道,谁是参与者,哪些是对象,图示如下:
图中的参与者,就是那个前面的小人;小人并排的三个,使用方格子围起来的就是对象。
整个流程,实际上就是一个淘宝买东西的过程:创建订单,提交订单,核对订单,打印订单。