求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
UML建模(工具EA)
UML概览
用例图
活动图
类图
对象图
顺序图
 



 
目录
UML 图解:顺序图( sequence diagram )
作者:俎涛(火龙果科技)
281 次浏览
 

为什么需要顺序图建模

我们描述过程一般有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建模。


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

    1元 10元 50元





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



    281 次浏览