您的位置:首页 > 其它

UML总结之序列图

2015-11-29 17:20 225 查看
一、前言:在前面的博客中标识出系统类图之后,仅仅给出了实现用例的组成结构,还需要描述这些类的对象是如何交互来实现用例的,也就是说,不但要把用例图模型转化为类图模型,还要将它转化为交互图模型。交互图表示类(对象)是如何交互来实现系统行为的,交互图包括序列图和协作图。这篇博客讲解序列图。

        序列图用户表现一个交互,该交互是一个协作中的各种类元角色间的一组消息交换,但重点在于强调时间顺序。所谓交互是指具体语境下由为实现某个目标的一组对象之间就你行交互的一组消息所构成的行为。一个结构良好的交互过程类似于算法,简单,易于理解和修改。

二、序列图的组成:

       在UML中,序列图将交互关系表示为一个二维图,包含4个基本的模型元素,分别是对象、生命线、激活、消息。其中纵向是时间轴,时间沿竖线向下延伸,横向代表了在协作图中各对象的角色。角色使用生命线进行表示,当对象存在时,生命线用一条虚线表示,此时对象不处于激活状态,当对象的过程处于激活状态时,生命线是一个双道线。序列图中的消息使用从一个对象的生命线到另一个对象的生命线的箭头表示。箭头以时间顺序在图中从上到下排列。

       对象:序列图中的对象和对象图中的对象概念一样,都是类的实例。序列图中对象可以是系统的参与者或者任何有效的系统对象。对象的表示形式也和对象图中的对象表示形式一样,使用包围名称的矩形框来标记,所显示的对象及其类的名称带有下划线,二者用冒号隔开,使用"对象名 :类名"的形式。

       如果对象的开始位置位于序列图的顶部,那就意味着序列图在开始交互的时候该对象已经存在了,如果对象的位置不在顶部,那么表明对象在交互的过程中将被创建。

       生命线:生命线是一条垂直的虚线,用来表示序列图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从序列图的顶部一直延伸到底部,所用时间取决于交互持续的时间,也就是说生命线表现了对象存在的时段。

       激活;序列图可以用来描述对象的激活,激活是对象操作的执行,它表示一个对象直接地或通过从属操作完成操作的过程。它对执行的持续时间和执行与其调用者之间的控制关系进行建模。在序列图中,激活用一个细长的矩形框表示,它的顶端与激活时间对齐,而底端与完成时间对齐。被执行的操作根据不同风格表示成一个附在激活符号旁或在左边空白处的文字标号。

       消息:消息是从一个对象向另一个或几个其他对象发送信号,或由一个对象调用另一个对象的操作。它可以有不同的实现方式,例如过程调用、活动线程间的内部通信、事件的发生等。从消息的定义可以看出,消息由三部分组成,分别是发送者、接收者和活动。

说了这么多,大家肯定都蒙圈了,接着给大家讲一个例子。以下图所示,显示的是一个学生在教材管理系统中查询信息的序列图。在该图中,涉及到5个对象之间的交互,分别是学生、用户登录页面、查询界面、费用查询页面以及教材使用页面。消息的编号表示对象交互的步骤,学生对象首先通过用户登录页面进行登录,登录后进入查询界面,选择费用查询进入该页面,查询结束后返回到查询界面;选择教材使用查询进入该页面,获得查询结果后返回查询界面,最后在查询界面退出。

       


三、序列图的对象行为:

       创建与销毁对象:创建一个对象指的是发送者发送一个消息后实例化的一个对象,也就是在交互过程中创建的实例化对象。在创建对象的消息操作中,可以有参数,用户新生对象实例的初始化。类属性的初始值表达式是通常由创建操作计算的,其结果用户属性的初始化。当然也可以隐式取代这些值,因此初始值表达式是可重载的默认项。创建操作后,新的对象遵从其类的约束,并可以接收消息。

       销毁对象指的是将对象销毁并回收其拥有的资源,它通常是一个明确的动作,也可以是其他动作、约束或垃圾回收机制的结果。销毁一个对象将导致对象的所有组成部分将被销毁,但是不会销毁一般关系或者聚集关系连接的对象,尽管它们之间包含该对象的链接将被消除。

       分支和从属流:在UML中,存在两种方式可以用来修改序列图中消息的控制流,分别是分支和从属流。分支指的是从一点发出多个消息并指向不同的对象,根据条件是否互斥,可以有条件地并行两种结构:从属流指的是从同一点发出多个消息指向同一个对象的不同生命线。

       引起一个对象的消息产生分支可以有很多情况,在复杂的业务处理过程中,要根据不同的条件进入不同的处理流程中,这通常被称为“条件分支”,另外一种情况是当执行到某一点的时候需要向两个或两个以上对象发送消息,消息是并行的,这时称为“并行分支”

       从属流是对象由于不同的条件执行了不同的生命线所形成的分支,如用户在保存或删除一个文件时,向文件系统发送一条消息,文件系统会根据保存或删除消息条件地不同执行不同的生命线。

       

       

               
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: