您的位置:首页 > 其它

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

2015-08-28 20:28 567 查看
第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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: