您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
UML 图解:顺序图( sequence diagram )
 
俎涛 ,火龙果软件工程技术中心
   次浏览      
 2020-2-21
 

为什么需要顺序图建模

我们描述过程一般有2种方式:

1. 按照时间顺序,把活动编排顺序,这就是活动图。参见:活动图

2. 列出对象,按照时间的顺序,描述各个对象的交互,这就是交互图。

而顺序图属于交互图的一种(除此之外,还有:通信图、交互概览图、时间图,参见:UML概览)。描述活动的过程,大家一般想到的是活动图,为什么还需要顺序图呢?

这是因为只是描述过程,而不知道过程的各个活动由谁负责,这样的过程是无法执行的。所以,必须把过程分解为多个角色/类/模块的职责。类的关系和职责的描述用类图(参见:类图),而活动图和类图是完全不同的视角,这就需要一个以对象交互视角描述活动过程的图。

请看下面2个图例的对比:

 

下面是引入了顺序图的分析设计方法:

 

可见,借助顺序图,我们可以把活动清晰的分解为对象的交互,然后在定义类图,这样每个行为都有了负责者,这无论是对业务流程分析还是软件流程分析都是关键的一环:

  • 业务流程的交互分析可以让每个业务工作有人负责。
  • 软件流程的交互分析可以让每个软件功能有模块负责。
  • 顺序图有什么

    任何UML图都有语义、元素、关系和用途,下面对顺序图做个列表描述:

    语义 描述几个对象随时间顺序而进行的交互
    元素 对象 (object) ,生命线(lifeline),端点(endpoint),图的门口(diagram gate),状态(state)
    关系 对象之间的消息(message),分为同步调用(call)、异步消息(message)和自身消息(self message)
    用途 可以描述业务对象之间的交互,用户和系统的交互,也可以描述系统对象之间的交互。

     

    图例:贪吃蛇游戏的顺序图

    为了让读者看的更形象,采用图例的方式介绍顺序图的用法,下面是贪吃蛇游戏的顺序图:


    顺序图说明:

  • 对象交互而不是类交互,因为对象才能在时间上存在,才具有生命。
  • 按照时间上下位置编排消息的先后次序
  • 顺序图的交互过程是不可逆的,因为时间是流逝的、历史不可以重来。
  • 对象的说明:

  • 对象一般是属于某个类的,一个顺序图上可以具有同类的多个对象。
  • 对象最好具有名字,这样我们才能区分同类的多个对象。
  • 分配过程到对象交互的过程,就是职责分配的过程,这会造就类的职责(参见:类图);
  • 职责分配的原则是:高内聚、低耦合,这样的关系简单清晰、互相影响小、执行效率高。
  • 消息的说明:

    消息一定是被对象发出或者接收的,所以消息也是有存在时长的;
    消息不能超越对象的生命周期。
    交互消息的存在3种:
  • 同步消息: 发出消息的对象,会等待接收消息的对象的响应,有了响应后才继续Next。
  • 异步消息:发消息的对象,发出消息后就继续做自己的事情,不等待接收消息的对象的响应。
  • 自身消息:对象发给自己的消息,也就是执行自己的职责。
  •  

    顺序图的要素说明:

    如下是顺序图中的对象的说明字典:

     序号  对象  说明
     1.  player1:Player  游戏的对象,可以启动游戏,控制蛇的方向。
     2.  Timer1:Timer  定时器的对象,可以产生时钟心跳,驱动蛇爬动。
     3.  map1:Map
     地图的对象,可以被打开,上面有一个食物对象和一个蛇对象。
     4.  snake1:Snake  蛇的对象,被地图创建,可以爬动,还可以吃食物。
     5.  Food1:Food  食物的对象,可以被地图创建,也可以被蛇吃掉。

    说明:本文的模型采用建模工具EA建模。



    UML图解系列:

    1.UML概览
    2.用例图
    3.活动图
    4.类图
    5.对象图
    6.顺序图
    7.类图和代码的映射关系解读( C++ )

     

    后记

    希望您读了此文后有所受益。

    如果您有经验乐于分享,欢迎投稿给我们

    如果您对我们的培训、咨询和工具感兴趣:

  • 课程:基于UML和EA进行分析设计  
  • 课程:MBSE(基于模型的系统工程)  
  • 课程:基于模型的需求管理)方法与实践
  • 课程:基于SysML和EA进行系统设计与建模  
  • 课程:企业架构建模
  • 课程:系统架构建模方法与案例
  • 课程:领域驱动的建模与设计
  • 课程:基于模型的设计
  • 课程:业务建模与业务分析
  • 建模工具EA
  • 基于模型的需求管理工具:iSpace
  • 咨询方案:MBSE(基于模型的系统工程)
  • 咨询方案:基于UML的模型驱动的开发
  • 欢迎联系我们: 俎涛Zutao@uml.net.cn

       
    次浏览       
     
    相关文章

    UML概览
    UML图解:用例图(Use case diagram )
    UML图解:活动图(activity diagram )
    UML图解:类图(class diagram )
    UML图解:对象图(object diagram)
    UML图解:顺序图( sequence diagram )
     
    相关文档

    模型跟踪:跟踪图、矩阵、关系(建模工具EA)
    自定义表格(Custom Table)在EA中的使用
    元素的详情浏览控制
    UAF 1.2规范解读(DMM 和 UAFML )
    EA中支持的各种图表
    EA中的界面原型建模
     
    相关课程

    UML与面向对象分析设计
    UML + 嵌入式系统分析设计
    业务建模与业务分析
    基于SysML和EA进行系统设计与建模
    基于模型的需求管理
    业务建模 & 领域驱动设计