UML: 序列图
摘自http://www.umlonline.org/school/thread-37-1-1.html
大家都进过餐馆吃饭吧?你是如何和餐厅服务员“眉来眼去”的呢?回忆一下从你进餐馆开始到你离开餐馆的整个过程,期间都发生了一些什么事情?
这个过程,我们通过序列图展示出来,可能是这样子的:

注意:红色虚线以及黄底色的文字不是序列图的一部分,它们是用来说明这个序列图的。
序列图的语法并不复杂,简述如下:
1.有两条竖轴,分别代表了顾客和服务员两个角色。
2.两条竖轴之间有一些带箭头的线条,线条上有一些文字,顺着箭头方向来读这个图,就是谁对谁做了什么事情。“领导座位”这条线是从“服务员”指向“顾客”的,这就表示:“服务员”对“顾客”做了“领到座位”这个事情。
3.有些线条是自己指向自己的,如“进门”,线条从“顾客”开始,最后还是指向“顾客”,意思就是自己对自己做了什么事情,“进门”这条线是从“顾客”指向“顾客”的,这就表示:顾客自己进门了,这个事情是自己对自己发起的,没有别人介入。
4.由上往下读这个图,就是事情安排时间发生的顺序了。
5.由这个图可以很清楚的了解到谁与谁发生了那些交互,事情的先后顺序是怎样的。
上面这个图,还有另外一种画法:

注意:红色虚线以及黄底色的文字不是序列图的一部分,它们是用来说明这个序列图的。
这个图多了一种带箭头的虚线,“菜单”这条虚线,由“服务员”指向“顾客”,表示:“服务员”将“菜单”给“顾客”。
顾客先向服务员要菜单,然后服务员将菜单给顾客。通过实线与虚线,可以表达出不同角色的交互过程。
顾客向服务员点菜,过一会服务员就会将菜送上来,我们都知道,菜不是服务员做出来的,她背后有人,她背后的故事又是怎样的呢?

上面这个图,揭示了点菜、结帐的完整过程。
通过序列图,我们可以清楚地看到各角色之间是如何交互,角色之间的“接口”是怎样的,通过怎样的步骤最终会让事情办完。

UML: 序列图的更多相关文章
- UML序列图参考资料
UML各个图的说明:http://www.uml.org.cn/oobject/201509015.asp?artid=16901 UML类图的说明:https://www.cnblogs.com/a ...
- UML序列图的理解:
UML序列图的理解:UML序列图是指一个对象的方法在处理过程中调用其他对象的图:重点是要突出调用其他对象的序列:
- UML 序列图
序列图 序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互.显示不同的业务对象如何交互,对于交流当前业务如何进行很有用.序列图是一个用来记录系统需求,和整理系统设计的好图.序列图 ...
- UML 序列图详解
现在是二月,而且到如今你或许已经读到.或听到人们谈论UML 2.0 —— 包括若干进步的 UML 的新规范,所做的变化.考虑到新规范的重要性,我们也正在修改这个文章系列的基础,把我们的注意力从 OMG ...
- 【夯实PHP基础】UML序列图总结
原文地址 序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色 ...
- 软件工程里的UML序列图的概念和总结
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习! 软件工程的一般开发过程:愿景分析.业务建模,需求分析,健壮性设计,关键设计,最终设计,实现…… 时序图也叫序列图(交互图),属于软件 ...
- UML序列图总结(Loop、Opt、Par和Alt)
序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线 ...
- 【UML】UML序列图总结
序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图. 纵向是时间轴,时间沿竖线向下延伸. 横向轴代表了在协作中各独立对象的类元角色. 类元角色用生命线表示. 当对象存在时,角色用 ...
- UML序列图总结
转载请注明出处:htt://blog.csdn.net/tianhai110 序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在 ...
- (转)UML序列图总结
序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线 ...
随机推荐
- (转) java 简单工厂模式(实现一个计算器)
package com.simpleFactory; /** * 运算类 * @author Administrator * */ public class Operation { private d ...
- js模拟类的公有与私有 方法与变量
var myConstructor = function(message){ //实例变量 this.message = message; //私有变量,外部不可见.用var声明的变量具有块作用域 v ...
- Solaris 10下Qt编译Oracle 10g驱动
上回书讲到<Oracle 10g在Solaris 10中安装详解>,现在开始用Qt来编译下Oracle 10g驱动吧!这样就可以通过Qt程序联入Oracle数据库了! Oracle的环境变 ...
- 【Android测试】【第九节】MonkeyRunner—— 初识
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4836815.html 不得不说两句,过了这么久才再次更新博 ...
- PE文件格式图示
- .NET对象与Windows句柄(二):句柄分类和.NET句柄泄露的例子
上一篇文章介绍了句柄的基本概念,也描述了C#中创建文件句柄的过程.我们已经知道句柄代表Windows内部对象,文件对象就是其中一种,但显然系统中还有更多其它类型的对象.本文将简单介绍Windows对象 ...
- 去除Html标签
public static string ParseTags(string Htmlstring) { //删除脚本 Htmlstring = Regex.R ...
- linux命令之echo
echo可以用来输出显示变量和常量,还可以用来写文件. 最简单的方式:使用 echo 命令 #echo abcbedf>>a.txt 将abcdef追加到a.txt文件末尾 往文件中写入内 ...
- java 中集合和数组互相转换
package test; import java.util.Arrays;import java.util.List; /** * Created by Administrator on 2016/ ...
- axis2 WebService的发布与调用
1:准备: JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html e ...