敏捷软件开发:原则、模式与实践——第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 著
转载请注明出处: