概述

顺序图是一种详细表示对象之间以及对象与参与者实例之间交互的图,它由一组协作的对象(或参与者实例)以及它们之间可发送的消息组成,它强调消息之间的顺序。

顺序图是一种详细表示对象之间以及对象与系统外部的参与者之间动态联系的图形文档。它详细而直观地表现了一组相互协作的对象在执行一个(或少量几个)用况时的行为依赖关系,以及操作和消息的时序关系。类图对对象之间的消息(交互情况)表达不够详细;详细说明对消息的表达虽然详细,但不够直观;顺序图既详细又直观,但通常只能表示少数几个对象之间的交互。

时序图基本上包含四种元素: 
描述操作流程的用例文本:位于时序图的左边,使用空白将文本分开,这样将容易知道哪句话对应于右边的哪个元素。 
对象:使用包含两个名称的方框表示,是直接从健壮性图中搬过来的。这两个名称分别是类名和对象名(实例编号),格式为 class:object;可省略其中的任何一个名称。也可以使用健壮性图构造类型的方式来显示对象,这将有助于跟踪参与者,边界对象和实现对象之间传递的消息。 
消息:对象之间的箭头。消息箭头可位于两条虚线,直线和方法矩形之间或两个方法矩形之间。

方法(操作):用位于虚线上的矩形表示,该虚线属于该方法所属的对象。可以使用矩形的长度来反映拥有控制焦点的时间。控制焦点在理论上很有用,但实际上并非如此,因为大多数可视化建模工具在这方面的功能都不太强。如果在时序图上显示控制焦点较难,只需关闭这种功能即可。

序列图的结构

序列图(Sequence Diagram)是由对象(Object)、生命线(Lifeline)、激活(Activation)、消息(Messages)、分支与从属流等元素构成的。

1、对象

对象就是指类的实例。我认为在序列图中对象有三种状态:激活、运行(存在)和销毁。

2、生命线

生命线(Lifeline)是一条垂直的虚线,用来表示序列图中的对象在一段时间内的存在。如下图TravelApplication就是Manage类New的一个新生命线,他在初始化后运行了CalculateDate()方法.

3、激活

序列图可以描述对象的激活(Activation),激活是对象操作的执行,它表示一个对象直接或通过从属操作完成操作的过程。在UML图中通过一个窄长的矩形来表示,矩形的高度表示对象存在的过程。

4、消息

消息(Messages)是对象间的一种通信机制。由发送对象向另一个或其他几个接收对象发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。

  同步消息=调用消息(Synchronous Message

消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。

  异步消息(Asynchronous Message

消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。

  返回消息(Return Message

返回消息表示从过程调用返回

自关联消息(Self-Message)

表示方法的自身调用以及一个对象内的一个方法调用另外一个方法。如下图所示,在Context类里调用了自身DoAction方法,DoAction方法又调用了SubmitData方法,SubmitData方法又调用了SendRequest方法.

5、执行者

表示这个对象是由谁来操作的.如下图,都是由员工来操作的。

6、条件判断:用于描述代码中if…else…这种结构,标记为“alt”

7、Switch满足条件就运行。

8、Loop循环,跟.NET中的For 和Foreach一样.

9、Gateway 进入窗口,代码从这里进行。如果Client就是一个gateway

10、接口,表示跟其它应用程序交互的接口.

11、丢失消息,Lost Message.

最后再来看下总体的Sequence diagram

完整样例

完全参考

步步为营UML建模系列五、时序图(Squence diagram)--https://www.cnblogs.com/springyangwc/archive/2011/12/29/2306034.html

[时序图笔记] 步步为营UML建模系列五、时序图(Squence diagram)【转】的更多相关文章

  1. 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  2. UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  3. UML建模系列文章总结

    本文转载:http://www.cnblogs.com/ywqu/tag/UML建模/ 本人总结: UML类图按照关系分为三大类:继承关系.拥有关系.整体与部分的关系. 继承关系:泛化.实现 拥有关系 ...

  4. Uml 建模 一(类图建模和startuml的使用)

    本文将分三个部分介绍Uml建模:Uml建模的作用.类图.startuml的使用 Uml的作用 本文以java为例介绍Uml,在当前的软件开发中大多数使用面向对象开发(OO),面向对象的就是将现实世界中 ...

  5. UML基础系列:类图

    类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,如关联.依赖.聚合等,还包括类的内部结构(类的属性和操作).类图描述的是静态关系,在系统的整个生命周期中都是有效的.对象图是类图的实 ...

  6. 机器学习&数据挖掘笔记_21(PGM练习五:图模型的近似推理)

    前言: 这次练习完成的是图模型的近似推理,参考的内容是coursera课程:Probabilistic Graphical Models . 上次实验PGM练习四:图模型的精确推理 中介绍的是图模型的 ...

  7. UML建模——用例图(Use Case Diagram)

    用例图主要用来描述角色以及角色与用例之间的连接关系.说明的是谁要使用系统,以及他们使用该系统可以做些什么.一个用例图包含了多个模型元素,如系统.参与者和用例,并且显示这些元素之间的各种关系,如泛化.关 ...

  8. 软件开发学习笔记 <一> UML

    UML http://www.uml-diagrams.org http://www.umlchina.com/index.htm 统一建模语言(UML)始于1997年的一个OMG(对象管理组织)标准 ...

  9. 为什么需要学UML建模

    今天在看<设计模式>的时候,看到了许多的UML模型图,案例中作者用极少的代码却能讲清楚讲好设计模式的背景和思想,抽象成一张张的UML图就能很好的review和复盘,这对于在工作中习惯用代码 ...

随机推荐

  1. 【BZOJ4325】【NOIP2015】斗地主 搜索

    题目描述 就是给你一副牌,问你最少几次能出完. 详细规则见规则 \(n\leq 23\) 题解 NOIP的数据非常水,错误一大堆的程序都能AC. 因为顺子对答案的影响最大,所以先枚举顺子进行搜索. 接 ...

  2. 【XSY1642】Another Boring Problem 树上莫队

    题目大意 给你一棵\(n\)个点的树,每个点有一个颜色\(c_i\),每次给你\(x,y,k\),求从\(x\)到\(y\)的路径上出现次数第\(k\)多的颜色的出现次数 \(n,q\leq 1000 ...

  3. Linux qemu-nbd mount qemu disk image

    Linux qemu-nbd mount qemu disk image deepin@deepin:~$ deepin@deepin:~$ qemu-nbd --help Usage: qemu-n ...

  4. 关于thinkphp5URL重写

    可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考: [ Apache ] httpd.conf配置文件中加载了mod_rewrite.so模块 AllowOverri ...

  5. opencv 图片缩放

    import cv2 as cv import numpy as np # 图片缩放 img = cv.imread('../images/moon.jpg', flags=1) # flags=1读 ...

  6. Hdoj 1233.还是畅通工程 题解

    Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直 ...

  7. The Python Challenge 谜题全解(持续更新)

    Python Challenge(0-2) The Python Challengehttp://www.pythonchallenge.com/ 是个很有意思的网站,可以磨练使用python的技巧, ...

  8. 诶西,JavaScript学习记录。。。。。。

    由于大学课程缘故,老师巨爱叫人问问题,还记分呢,随便记录一下Js的学习情况,以后复习什么的也比较方便吧...... 开始咯,就按照C语言学习那样的方法来吧! ===================== ...

  9. 「SCOI2016」围棋 解题报告

    「SCOI2016」围棋 打CF后困不拉基的,搞了一上午... 考虑直接状压棋子,然后发现会t 考虑我们需要上一行的状态本质上是某个位置为末尾是否可以匹配第一行的串 于是状态可以\(2^m\)压住了, ...

  10. jmeter4.0测试dubbo接口遇到的问题:An error occurred: org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class

    半年前,用jmeter4.0测试dubbo接口的时候,遇到这样一个问题 An error occurred: org.springframework.scheduling.quartz.CronTri ...