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

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



 
目录
UML图解:活动图( activity diagram )
作者:俎涛(火龙果科技)
897 次浏览
5次  

为什么需要活动图建模

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

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

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

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建模。


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

    1元 10元 50元





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



    897 次浏览
    5次