时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:角色(Actor)、对象(Object)、生命线(Lifeline)、控制焦点(Focus of control)/ 激活(Activation)、消息(Message)、组合片段(Combined Fragments)/交互片段(interaction fragment)。

  • 角色 ( Actor )

    用以表示和系统进行交互的参与者角色,不一定是人也可以是物或者系统。UML用例图中用一个小人来表示角色

  • 对象 ( Object )

    对象就是类的实例。UML用例图中用矩形框来表示对象。

  • 生命线 ( Lifeline )
    生命线代表对象在某一用例中的生命周期。UML用例图中用虚线来表示生命线。
  • 控制焦点 ( Focus of Control ) / 激活(Activation)
    控制焦点代表对象在某一用例过程中执行某一操作的时间。UML用例图中用方块来表示控制焦点。
  • 消息(Message)

    消息是角色和对象或者对象与对象之间的信息传递。消息分为三种:同步消息、异步消息、返回消息。

    (1) 同步消息(Synchronous Message):

    把信息传递给接受者后,停止活动,等待返回结果。使用(实线)

    (2) 异步消息(Asynchronous Message):
    把信息传递给接受者后,不用等待返回结果。可以直接开始下一个活动。类似于打电话的过程,拨通号码后,用户变不需要继续下一步的操作,只需等待连接。UML图表示如下:

    图示上与同步消息图示不同的是message的单箭头。

    双击message的剪头图,弹出属性对话框,选择Detail选项卡,将Control flow 下拉选项改成Asynchronous(异步),图示就会变成单箭头。

    (3) 返回消息(Return Message):

    代表从过程调用返回。UML图表示如下:
    使用虚线连接

    (4) 自关联消息(Self-Message):

    自关联消息表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。UML图表示如下:

  • 组合片段(Combined Fragments)/交互片段(interaction fragment):
    UML图表示如下:

    中间方框用(Interaction fragment) 图标表示。可选择的组合有:

    alt:在一组行为中根据特定的条件选择某个交互;
    opt:表示一个可选的行为;
    break:提供了和编程语言中的break类拟的机制;
    par:支持交互片段的并发执行;
    seq:强迫交互按照特定的顺序执行;
    strict:明确定义了一组交互片段的执行顺序;
    neg:用来标志不应该发生的交互;
    region:标志在组合片段中先于其他交互片断发生的交互;
    ignore:明确定义了交互片段不应该响应的消息;
    consider:明确标志了应该被处理的消息
    assert:标志了在交互片段中作为事件唯一的合法继续者的操作数;
    loop:说明交互片段会被重复执行 

    (1)抉择(Alt):抉择用来表示多个消息序列下根据不同条件互斥的选择,类似于if...else,下图就是一个抉择的例子,用户到商店里购买一件商品,如果小于50件就可以购买成功,如果大于50件,就出现货品不足无法购买的情况,这是个比较粗糙的例子,不过对于解释抉择的组合片段还是很好理解的。

    (2)选项(Opt):表示一个可能存在又可能不存在的消息通信过程,例如上面购买操作,有可能用户会购买商品,也可能不购买商品,表示如下图:

    (3) 循环(Loop):表示该消息通信的过程多次根据条件重复执行,类似于for,如下图示例:

    (4)并行(Par):表示对象生命线中持续进行消息通信的部分,具体如下图:

    (5) 中断(break):用来表示序列中如果选择一个序列则要放弃其他序列的情况,类似于switch里的break,如下图:

    (6)强顺序(strict):多个操作片段必须按照顺序发生。下面就是一个典型的例子,做菜这个操作分为切菜和炒菜,这个流程是必须不可逆的,所以是强顺序。

    (7)弱顺序(Seq):多个操作片段在同一生命线上必须按照片段顺序发生,如果是不同的生命线则可以是并行发生,这个就不举实例了,基本表示方法和上面一样。

  • 一个电话拨号的时序图

PowerDesigner16 时序图的更多相关文章

  1. [UML]UML系列——时序图(顺序图)sequence diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  2. 使用Astah制作UML时序图

    Astah制作UML图--详解 时序图的制作 开篇语: 本文为光荣之路原创文章,欢迎转载,但请注明出处. 做测试的难免看到开发画出各种设计图,都很羡慕,比如: 帅么,漂亮么,其实我们测试人员也可以轻松 ...

  3. SPI总线协议及SPI时序图详解

    SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚 ...

  4. GIT FLOW 时序图

    git flow sequence md link: git branching model master->master branch: use default branch Note rig ...

  5. [转载]UML时序图总结

    前言 在我的工作中,用的最多的就是时序图了.可能由于工作的原因,我也是最喜欢画时序图了,很清楚,很明了,什么时候发送什么消息,到达什么状态,一下子就展示在你的脑海里,对于消息驱动的程序来说,是再好不过 ...

  6. 看懂UML类图与时序图

    看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...

  7. UML系列04之 UML时序图

    概要 本章对UML的时序图进行介绍,主要内容包括:时序图介绍时序图组成 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3523355.html 时序图介绍 ...

  8. 使用网站websequencediagrams在线画时序图

    在线画时序图的网站:https://www.websequencediagrams.com/ 该网站提供拖拉图形和编写脚本代码2个方式来制作时序图,同时提供多种显示风格. 实例: 1.脚本代码: ti ...

  9. 安装StarUML 及使用时序图(Sequence Diagram)和用例图(use case diagram)

    时序图 用例图

随机推荐

  1. Alpha发布文案加美工展示

    目录 团队简介 项目进展 组内分工 队员总结 后期计划 一.团队简介 二.项目进展 从选题发布到今天的Alpha发布,我们团队经历了许许多多的磨难.我们最终设计了如下的功能:首页.班级.个人.更多.打 ...

  2. 一个例子说明mouseover事件与mouseenter事件的区别

    <html> <head> <meta charset="UTF-8"> <title>haha</title> < ...

  3. 《Debian标准教程》摘录2则

    1.克隆Debian系统 如果使用的Debian系统只有使用apt安装的软件包,可以使用下面的脚本来安装一个完全一样的新系统. #在源主机上 dpkg --get-selections > se ...

  4. C++并行编程2

    启动线程 查看线程构造函数,接受一个返回值为void的函数.如下: void do_some_work(); std::thread my_thread(do_some_work); 也可以接受一个重 ...

  5. 《学习OpenCV》课后习题解答3

    题目:(P104) 创建一个大小为100*100的三通道RGB图像.将它的元素全部置0.使用指针算法以(20,5)与(40,20)为项点绘制一个绿色平面. 解答: #include "cv. ...

  6. python redis插件安装

    #tar xvzf redis-py-2.2.1.tar.gz #cd redis-py-2.2.1 #python setup.py install   附件: https://app.yinxia ...

  7. vc6.0批量加注释

    MATLAB批量加注释的方法非常简单明了,加注释是ctrl+R,去注释是ctrl+T 然后在VC中我对一条一条加注释的方法非常烦恼,我想也许会有简单的方法可以批量家注释.果然,先贴代码 '------ ...

  8. ifstat查看网络流量的原理

    ifstat查看网卡流量的原理:读的是哪个/proc/ 接口啊 同diskIO一样,网络的IO也同样有统计计数的,是/proc/net/dev一个典型的输出就是这个样子的: root@station6 ...

  9. 9.1、AutoEncoder自动编码器[转]

    如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重.自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征.自动编码器就是一种尽可能复 ...

  10. 【bzoj2435】[NOI2011]道路修建 树形dp

    题目描述 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建恰好 n – 1条双向道路. 每条道路的修 ...