顺序图是用来描述对象自身及对象间信息传递顺序的视图。它用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。它着重显示了参与相互作用的对象和所交换消息的顺序。

顺序图主要有4个标记符:对象、生命线、消息和激活。

顺序图用一个二维图描述系统中各个对象之间的交互关系,其中,纵轴是时间轴,时间沿竖线向下延伸,横轴代表了参与相互作用的对象。当对象存在时,生命线由一条虚线表示,当对象的过程处于激活状态时,生命线是一道双线。消息用从一个对象到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。

对象:

对象是特定行为与属性的集合。

对象的表示方式有三种:

1.包括对象名和类名,

如:

2.只有类名。

如:

3.只有对象名

如:

生命线:

生命线用于描述对象的存在周期,对象下方的虚线就是改对象的生命线。

如:

激活:

控制焦点是指活动者或对象处于执行状态的时间段。

如:

消息:

消息用于描述对象间交互的方式及内容。

消息分为四种:同步消息、异步消息、返回消息、自关联消息

1.同步消息:一个对象向另一个对象发出同步消息后,将处于阻塞状态,一直等到另一个对象的回应。

表示方式:

2.异步消息:一个对象向另一个对象发出异步消息后,这个对象可以进行其他的操作,不需要等到另一个对象的响应。

表示方式:

3.返回消息:同步消息的返回消息

表示方式:

4.自关联消息:用来描述对象内部函数的互相调用。

表示方式:

最后需要说明一下顺序图中对于流程控制的模块:复合片段(Combined Fragments)

复合片段有多种,在此主要介绍一下几种:

条件判断、可选、循环、同步

1.条件判断:用于描述代码中if…else…这种结构

标记为“alt”

例如:

2.可选:是一种特殊的“条件判断”,它只是一个if,没有else if或else

可选的标记为:opt

例如:

3.循环:是指代码中的for、while之类的语句块。

循环的标记为:loop

例如:下图中[m,n]是指至少执行m次,最多执行n次

4.同步:用于描述多线程的情况。

同步的标记是:par

例如:

画顺序图的步骤:

1.      确定交互的范围

2.      确定参与交互的活动者与对象

3.      确定活动者、对象的生存周期

4.      确定交互中产生的消息

5.      细化消息的内容

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qianmodanshang/article/details/53183540

UML学习笔记(五)--顺序图的更多相关文章

  1. UML学习笔记:类图

    UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...

  2. UML学习笔记:活动图

    UML学习笔记:活动图 活动图 活动图是UML中描述系统动态行为的图之一,用于展现参与行为的类的活动或动作.在UML里,活动图很类似于流程图,但是有一些区别: 活动图着重表现系统行为,描述对象活动的顺 ...

  3. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  4. ES6学习笔记<五> Module的操作——import、export、as

    import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...

  5. muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor

    目录 muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor Connector 系统函数connect 处理非阻塞connect的步骤: Connetor时序图 Accep ...

  6. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  7. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  10. GIS案例学习笔记-ArcGIS整图大图出图实例教程

    GIS案例学习笔记-ArcGIS整图大图出图实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 通过出图比例尺(1:2000),地图范围测算图纸大小. 图 ...

随机推荐

  1. c# 串口关闭死机

    用C#编写的wince串口通信程序基本大功告成了,与之前用API函数和线程来做串口通信不同,这次直接使用SerialPort控件来做,原本以为使用控件做会简单和方便许多,没成想,还遇到了很多麻烦. 通 ...

  2. POJ 2442 - Sequence - [小顶堆][优先队列]

    题目链接:http://poj.org/problem?id=2442 Time Limit: 6000MS Memory Limit: 65536K Description Given m sequ ...

  3. 石子合并 区间dp模板

    题意:中文题 Description 在操场上沿一直线排列着 n堆石子.现要将石子有次序地合并成一堆.规定每次只能选相邻的两堆石子合并成新的一堆, 并将新的一堆石子数记为该次合并的得分.允许在第一次合 ...

  4. Zend 缓存

    一. Zend Optimizer 和 Zend Guard Loader 作用和区别 两者的功能一样. Zend Optimizer 在PHP5.3以前的版本使用,解密和代码优化,提高PHP应用程序 ...

  5. EF-CodeFirst-基础

    什么是Code-First Code-First主要用于领域驱动设计.在Code-First方法中,专注于应用程序的域,先开始为域实体创建类,而不是先设计数据库,然后创建与数据库设计相匹配的类.下图说 ...

  6. 内部排序->交换排序->起泡排序

    文字描述 首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(L.r[1].key>L.r[2].key),则将两个记录交换位置,然后比较第二个记录和第三个记录的关键字.依次类推,直 ...

  7. idea出现无效的源发行版:11

    idea启动的时候报错: 点击->file->project structure->project

  8. Django2.0跨域请求配置

    跨域:通过js或python在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(Django)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  9. TensorFlow环境

    vps cenots7自带的python2.7各种毛病,浪费了不少时间,装了pyhton3一下就搞定了 mac上有些依赖库需要sudo安装 vps上是基于Anaconda搭建的,感谢极客学院的教程ht ...

  10. shell下的几个命令

    参考博客: https://www.cnblogs.com/-zyj/p/5760484.html 1. 批量删除筛选的文件夹 ls -l | grep ^d | xargs rm -rf   2. ...