系列文章

[UML]UML系列——用例图Use Case

[UML]UML系列——用例图中的各种关系(include、extend)

[UML]UML系列——类图Class

[UML]UML系列——类图class的关联关系(聚合、组合)

[UML]UML系列——类图class的依赖关系

[UML]UML系列——类图class的泛化关系

[UML]UML系列——类图class的实现关系Realization

[UML]UML系列——包图Package

[UML]UML系列——活动图activity  diagram

引言

用例图、类图、活动图、时序图之间是什么关系?

时序图有什么作用?

先来模拟一下三国演义的赤壁之战的时序图,先知道它到底长什么样子,再深入介绍:

小伙伴惊呆了,这样画战略图,一目了然,原来著名的战役是这么回事。这样看三国演义再也不会睡着了......

再看看各个大人物的主要操作:

代码模拟各任务操作:

 public class 关羽
{
Public void 防守荊州();
}
public class 张飞
{
public void 防守荆州前线();
}
public class 孙权
{
public void 领兵相助();
}
publc class 刘备
{
public void 应战();
}
publc class 孔明
{
public void 拟定策略();
public void 联合孙权();
private void 借东风火攻();
}

(以上为伪代码,只为说明问题,缩短文章长度)。

分析一:用例图、活动图、时序图之间的关系

分析二:类图与时序图之间的关系

类图描述系统的静态结构,时序图描述系统的动态行为。

若出现了一个新的消息(不是类中的操作),则需要为类添加一个新的操作。

为类c添加k操作。如果这里不容易理解,可以参考上面的赤壁大战的时序图,你就知道该新加的操作到底是类B的还是C的。

时序图的作用

用对象间的交互来描述用例。(注意是对象间的)

寻找类的操作。

时序图的概念

时序图描述了对象之间传递消息的时间顺序,它用来表示用例的行为顺序。

时序图的组成

 对象

对象是类的实例,对象是通过类来创建的,我们可以把类看作是创建对象的模版。

对象的符号

时序图中的每个大峡谷显示单独的列里。

对象的左右排列位置

对象的左右顺序并不重要,但是为了画图画的清晰整洁起见,通常应遵循一下两个原则:

(1)把交互频繁的对象尽可能地靠拢。

(2)把初始化整个交互活动的对象(有时是一个参与者)放置在最左边。

生命线lifeline

表示对象的生存时间。生命线从对象创建开始到对象销毁时终止。

对象在生命线上的两种状态:休眠状态、激活状态。

 消息

消息的概念:

对象之间的交互是通过相互发消息来实现的。一个对象可以请求(要求)另一个对象做某件事件。

消息从源对象指向目标对象。消息一旦发送便将控制从源对象转移到目标对象。

时序图中,消息的阅读顺序是严格自上而下的。

 消息的类型与符号

实例:同步异步

你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。

你叫我去吃饭,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。

所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。^_^!

(1)简单消息

简单消息是没有区分同步和异步的消息。

简单消息用从一对下岗的生命线指向另一个对象的生命线的直线箭头来表示,箭头上面标出消息名。

(2)同步消息

消息的发送者把进程控制传递给消息的接收者,然后暂停活动,等待消息接收者的回应消息。

你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。

(3)异步消息

消息的发送者将消息发送给消息的接受者后,不用等待回应的消息,即可开始另一个活动。

你叫我去吃饭,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。

激活

激活的概念

当一个对象没有被激活期时,该对象处于休眠状态,什么事都不做,但它仍然存在,等待新的消息来激活它。

当一条消息被传递给对象的时候,它会触发该对象的某个行为,这就是说该对象被激活了。

当一个对象处于激活期时,表明该对象正处于执行某个动作。

激活的符号

激活用一个细长的矩阵框(在生命线上)表示。

矩形框的高度表示对象执行一个操作所经历的时间段,矩形的顶部表示动作的开始,底部表示动作的结束。

对象接收消息后可以由自己的某个操作来完成,也可以通过其他对象的操作来完成。

时序图的Rose建模

一、新建一个时序图

方法1:

方法2:右击某个用例,如下图所示

这种便于将用例图与时序图衔接起来

二、重命名并双击该时序图

三、添加对象

方法1:利用已经存在(创建)的类

a.从浏览器中将类(事先已创建)拖到时序图中

b. 双击该对象以设置对象的名称

方法2:新建对象,然后给该对象指定一个类

a.通过工具栏的对象按纽在时序图中添加一个对象

b.双击对象,给该对象指定一个类或新建一个类

四、添加消息

1、添加简单消息

a.使用此按纽在两个对象之间拖动

b.双击消息,在弹出的窗口中设置消息的名称

2、添加同步消息
方法:双击简单消息,在弹出的对话框选择“detail”选项
卡,选中”procedure a call”

3、添加异步消息
方法:双击简单消息,在弹出的对话框选择“detail”选项
卡,选中”Asynchronous”

4、删除对象
方法1:在”edit”菜单中选择“Delete from Model”
方法2:ctrl+D

5、时序图中的常用设置
以嵌套的形式显示消息的序号
取消或隐藏消息的编号
显示或隐藏激活条

(1)以嵌套的形式显示消息的序号

选择菜单【 Tools->Options 】,弹出以下对话框,选择 Diagram选项卡,选中Hierarchical Message

(2)取消或隐藏消息的编号

选择菜单【 Tools->Options 】,弹出以下对话框,选择 Diagram选项卡,选中或取消Sequence numbering

(3)显示或隐藏激活条

选择菜单【 Tools->Options 】,弹出以下对话框,选择 Diagram选项卡,选中或取消Focus of control

总结

时序图到此结束,如果有需要补充的可以留言,lz定补上。

时序图还是听复杂的,遇到问题得好好分析......

矩形框的高度表示对象执行一个操作所经历的时间段,矩形的顶部表示动作的开始,底部表示动作的结束。

对象接收消息后可以由自己的某个操作来完成,也可以通过其他对象的操作来完成。

比如下面的三张图表达的意思就不同了:

如果能把这三个图的区别搞明白了,时序图也掌握的差不多......Thinking.....

[UML]UML系列——时序图(顺序图)sequence diagram的更多相关文章

  1. UML期末复习题——2.5:System Sequence Diagram & Post-condition

    第五题:系统顺序图 重要概念: 1.对象: 对象是特定行为与属性的集合. 对象的表示方式有三种: a.包括对象名和类名 b.只有类名. c.只有对象名 2.消息表示形式: 消息用于描述对象间交互的方式 ...

  2. UML建模之时序图(Sequence Diagram)<转>

    UML建模之时序图(Sequence Diagram)   一.时序图简介(Brief introduction) 二.时序图元素(Sequence Diagram Elements) 角色(Acto ...

  3. UML建模之时序图(Sequence Diagram)

    一.时序图简介(Brief introduction) 二.时序图元素(Sequence Diagram Elements) 角色(Actor) 对象(Object) 生命线(Lifeline) 控制 ...

  4. 用Visio画UML顺序图

    1.顺序图 顺序图又称为时序图,顾名思义,它着重表现的是对象间消息传递的时间顺序.顺序图描述的对象也是一个用例,即一组行为操作,而它表现的是这组行为的先后关系(纵坐标),以及每个行为是属于哪个对象的( ...

  5. UML 顺序图

    顺序图 顺序图是交互图的一种形式,它显示对象沿生命线发展,对象之间随时间的交互表示为从源生命线指向目标生命线的消息.顺序图能很好地显示那些对象与其它那些对象通信,什么消息触发了这些通信,顺序图不能很好 ...

  6. [时序图笔记] 步步为营UML建模系列五、时序图(Squence diagram)【转】

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

  7. UML时序图(Sequence Diagram)学习笔记

    什么是时序图时序图(Sequence Diagram),又名序列图.循序图,是一种UML交互图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作. 让我们来看一看visio2016对时序 ...

  8. 【UML】-NO.44.EBook.5.UML.1.004-【UML 大战需求分析】- 顺序图(Sequence Diagram)

    1.0.0 Summary Tittle:[UML]-NO.44.EBook.1.UML.1.004-[UML 大战需求分析]- 顺序图(Sequence Diagram) Style:DesignP ...

  9. 【UML】时序图Sequence diagram(交互图)(转)

    前言         UML时序图是UML动态图之一,它是强调时间顺序的交互图. 定义         时序图是显示按时间顺序排列的对象之间交互的图. 组成元素   对象         包括三种命名 ...

随机推荐

  1. [hadoop in Action] 第3章 Hadoop组件

    管理HDFS中的文件 分析MapReduce框架中的组件 读写输入输出数据   1.HDFS文件操作   [命令行方式]   Hadoop的文件命令采取的形式为: hadoop fs -cmd < ...

  2. {"errcode":40097,"errmsg":"invalid args hint: [vjNe7xxxxxx8vr19]"}——记录一次微信错误处理

    错误情况概述: 启动应用之后,微信调用 相机拍照 等接口是可以正常使用的, 但是过了一段时间(2个小时左右--token/jsapi_ticket的过期时间),微信调用相机拍照的功能失效,启用debu ...

  3. Shell命令和流程控制

    Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...

  4. NopCommerce 在Category 显示 Store List列表

    实现效果如下: 1.在前台Web的Category Menu显示 Store; 2.点击 Store 显示 Store List列表: 3.点击 列表Store 的 Company Name 进入该S ...

  5. android文件的写入与读取---简单的文本读写context.openFileInput() context.openFileOutput()

      最终效果图,点击save会保存到文件中,点击show会从文件中读取出内容并显示. main.xml <?xml version="1.0" encoding=" ...

  6. Java8 jvm参数

    jmap输出 [tomcat@n01 ~]$ /opt/java/jdk1..0_101/bin/jmap -heap Attaching to process ID , please wait... ...

  7. 【codevs1106】 篝火晚会

    http://codevs.cn/problem/1106/ (题目链接) 题意 将1~n顺序排列的环改成另一个环,问n-不动点数. Solution 啊智障啦,不会做×_× 左转hzwer 代码 / ...

  8. linux内存管理

    一.Linux 进程在内存中的数据结构 一个可执行程序在存储(没有调入内存)时分为代码段,数据段,未初始化数据段三部分:    1) 代码段:存放CPU执行的机器指令.通常代码区是共享的,即其它执行程 ...

  9. VS2010快捷键设置

    1.进入工具----选项  对话框 2.选择  环境---->键盘 3. 在 [显示命令包含] 下面的对话框中输入"对齐"关键字,然后就会在这个编辑框下面一个文本窗口中显示关 ...

  10. Todo list and 学习心得

    1. 理论实践要区分起来学习,结合起来运用. 2. 内事不决问百度外事不决问谷歌 3. 一个人走的快,一群人走得远或者更快 2016-09-01 23:27:58  九月目标:对程序从编译到执行的整个 ...