码迷,mamicode.com
首页 > 其他好文 > 详细

敏捷软件开发:原则、模式与实践——第15章 状态图

时间:2015-08-28 21:25:31      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

第15章 状态图
  在描述有限状态机(FSM)方面,UML提供个丰富的符合。


15.1 基础知识

  下图是一个简单的状态迁移图(STD),该图描述了控制用户登录到系统的FSM。圆角矩形表状态。上层格间放置每个状态的名字。下层格间中放置的是一些特定动作,表示当进入或退出该状态时要做什么。

技术分享

   图中左上角的实心圆称为初始伪状态。FSM从这个伪状态开始,根据变迁规则进行转移。


15.1.1 特定事件

  状态图的下层格间含有事件/动作对。

技术分享

15.1.2 超状态

  当许多状态以同样的方式响应某些同样的事件时,使用超状态是非常方便的。下图分别的多个单状态图和超状态图:

技术分享

它们是等价的。

  通过显示地画出起始于子状态的迁移,可以重写超状态迁移。如下:

技术分享

超状态和子状态的关系实际上和继承关系是不等价的。

  超状态可以具有和常状态一样的entry、exit以及特定事件。如下:

技术分享


15.1.3 初始伪状态和结束伪状态

技术分享  


15.2 使用FSM图示

  图示在理解那些行为已知子系统的状态机方面非常有用。不过,大部分适合FSM的系统,其行为是无法预知的。这些系统的行为会随着时间出现和演化。图示不适合那些频繁变化的系统。

  文本则是一种非常灵活的应对变化的手段。查看状态迁移图(STD)对应的状态迁移表(STT)。

技术分享

地铁旋转门STD

技术分享

地铁旋转门STT  

  对于开发人员来说,文本格式要方便得多。


15.3 结论

  有限状态机是一种强大的软件组织思想。UML在FSM可视化方面提供了丰富的符合支持。不过,在开发和维护FSM方面,采用文本语言通常要比图形更容易一些。UML状态符合虽然很多,但是我很少发现它们是有用的。

 

 

摘自:《敏捷软件开发:原则、模式与实践(C#版)》Robert C.Martin    Micah Martin 著

转载请注明出处:

作者:JesseLZJ
出处:http://jesselzj.cnblogs.com

敏捷软件开发:原则、模式与实践——第15章 状态图

标签:

原文地址:http://www.cnblogs.com/jesselzj/p/4767747.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!