前面一篇学习了uml中的静态模型图类图,这篇我们学习一下uml中的动态模型图时序图。
我们先来看几个问题,什么是时序图、时序图由哪些元素组成,为何要画时序图 。下面我们就来看看:
1、什么是时序图:
(1)、序列图是对对象之间传送消息的时间顺序的可视化表示。序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。
(2)、时序图表示了系统在参与者相互执行某一个用例期间,系统内部的一群对象的协作情况。一个用例就对应一个时序图,时序图是对系统动态行为进行描述。
2、时序图由哪些元素组成:
序列图(Sequence Diagram)是由对象(Object)、生命线(Lifeline)、激活(Activation)、消息(Messages)、分支与从属流等元素构成的。
3、在写具体代码之前我们将我们系统使用时序图来系统的画出来,这样我们不仅能清晰的看到整个系统的流程而且uml 是一个统一建模语言,所以他不会涉及到具体的实现语言也不会去具体实现细节,只是把整个流程清晰的描述出来,这样带来的好处是不仅开发人员能看懂,其他人也能看懂,二是他不涉及具体开发语言所以这个系统你可以选择你自己熟悉的语言来开发,三是这样的流程图有利于整个开发过程的管理。(即个人看法)
4、下面看看时序图的小demo:
(1)、对象:对象存在三种情况即 激活、运行、销毁
对象的表示有好几种表示方式但是第一个对象一定是一个actor。
2、生命线:竖虚线表示的是生命线,竖线越长生命周期越长。
3、激活:是指活动者或对象处于执行状态的时间段。
4、消息:是对象间的一种通信机制。由发送对象向另一个或其他几个接收对象发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。
消息有同步消息,异步消息,返回消息,自关联消息
(1)、同步消息:一个对象向另一个对象发出同步消息后,将处于阻塞状态,一直等到另一个对象的回应。
表示方式:
(2)、异步消息:一个对象向另一个对象发出异步消息后,这个对象可以进行其他的操作,不需要等到另一个对象的响应。
表示方式:
(3)、返回消息:同步消息的返回消息
表示方式:
表示方法:
5、分支与从属流:
在UML中存在两种方式可以来修改序列图中消息的控制流,分别是:分支和从属流。
分支是指从同一点发出的多个消息并指向不同的对象,根据条件是否互斥,可以有条件和并行两种结构。
从属流指的是从同一点发出多个消息指向同一个对象的不同生命线。
6、实例:
这里的这个实例有个条件就是所有的登录信息都是正确的,但是现实中会有错误,所以这里的这个demo中比如登录验证这里如果验证不符合规则则会返回,还有就是登成功和登录失败,如果登录失败则应该有登录失败返回信息,但是画不了两个返回信息,试了几次都不行(使用的是jude希望大家指导,是不是画错了)!