zoukankan      html  css  js  c++  java
  • 敏捷软件开发:原则、模式与实践——第15章 状态图

    第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

  • 相关阅读:
    【javascript】select操作实例
    【javascript】函数
    【javascript】一些资料
    【javascript】操作符:一元操作符
    动态执行Sql
    索引( index )
    事务
    用户相关
    视图(view)
    函数(function)
  • 原文地址:https://www.cnblogs.com/jesselzj/p/4767747.html
Copyright © 2011-2022 走看看