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

1元 10元 50元





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



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

为什么需要活动图建模

“生命在于运动”这句话说明了运动是人对世界的一种非常重要的观察视角,因为运动的世界对我们才有意义。人把过程描述为各种行为按照时间编排的序列,因为标定运动的相对顺序的需要,人类发明了时间的概念(本人认为:时间本不存在):

  • 绝对时间:人们选择自然界的相对稳定的参照系定义了时间,例如地球围绕太阳公转一圈为一年,地球自转一圈为一天。公历采用耶稣的诞辰年份为公元元年。
  • 相对时间:按照运动的先后次序,编排活动的顺序,例如一个人从早到晚的一天的生活过程。

  • 人也发明了各种描述运动的形式:

    1. 自然语言采用记叙文的方式描述一个故事的过程。

    2. 数据流采用数据流动的过程描述处理之间的数据关系。

    3. 流程图采用控制流的方式描述各个处理之间的关系。

    4. … …

    活动图是采用图形的描述行为过程的UML建模规范,综合了2和3的描述形式,能够完整的支持自然语言对过程的各种描述。当纷繁复杂的行为基于活动图理清顺序的时候,分析者也就有了清晰的思路,设计者也就会注意到行为顺序对于逻辑正确性和效率的影响,这可以大大提高人对行为的理解和掌控能力。

    活动图有什么

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

    语义 按照活动的先后顺序,描述活动的流程
    元素 开始(init),活动 (activity) , 判定(decision),结束(final)
    分叉(fork),汇合(merge),同步(join)
    关系 控制流(control flow),对象流(object flow)
    用途 可以描述业务流程,程序流程,用户操作流程

     

    图例:活动图

    为了让读者看的更形象,这里采用图例的方式介绍活动图的用法,下面是贪吃蛇游戏的活动图。

    活动图说明:

    下面是贪吃蛇游戏的活动图对应的自然语言文字说明:

    贪吃蛇游戏过程的文本描述
    1、用户执行《活动:启动游戏》
    2、《活动:启动游戏》发送《对象流:开始指令给》 给 game的《活动:初始化地图活动》
    3、Game执行《活动:初始化地图》
    4、 Game执行《活动:创建食物》
    5、 Game执行《活动:创建蛇》
    6、 启动定时器,开始计时,
    7、 用户执行《活动:按下方向键》,则设置《对象:方向》
    8、《事件:1秒到时》 ,蛇《活动:执行爬动》,接收《对象:方向》
    9、蛇执行《条件判定:遇到什么》
         9.1 、如果遇到食物,蛇执行《活动:吃掉食物》
         9.2 、如果遇到墙壁,蛇执行《活动:死掉》
    10 、蛇吃掉食物后结束当前处理,等待下一个《事件:1秒到时》
    11 、蛇死掉后游戏就结束了

    上面的文本描述看起来很累,如果是复杂一些的行为过程描述起来就更难阅读了,看起来还是活动图更好些,或者借鉴活动图的形式,采用结构化文本描述,如下:

     序号  用户  Game
     1. 《活动:启动游戏》  
     2. 《活动:启动游戏》
      发送《对象流:开始指令》
     
     3.
    《活动:初始化地图》
      接收《对象流:开始指令给》
     4.   《活动:创建食物》
     5.   《活动:创建蛇》
     6.   《活动:启动定时器》
     7. 《活动:按下方向键》
      设置《对象:方向》
     
     8.   《事件:1秒到时》
     9.   《活动:snake爬动》接收《对象:方向》
     10.   《条件判定:遇到什么》
  • 如果遇到食物,蛇执行《活动:吃掉食物》 ;
                蛇吃掉食物后结束当前处理;
  • 如果遇到墙壁,蛇执行《活动:死掉》 ;
                蛇死掉后游戏就结束了。
  •  

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

     


    UML图解系列:

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

     

    后记

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

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

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

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

       
    20155 次浏览       21
     
    相关文章

    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进行系统设计与建模
    基于模型的需求管理
    业务建模 & 领域驱动设计