状态图
Last updated
Last updated
事件驱动(event-driven)的软件系统,会不断等待某些外部或内部 event 的发生,比如单击鼠标、按下按钮、时间计数或数据包到达。事件驱动(event-driven)系统也称反应式(reactive)系统。一旦事件处理完成,系统就会返回等待下一个事件。
对事件(event)的响应通常取决于事件的类型(type)和系统的内部状态(internal state),也包括导致状态转换的状态更改。事件(events)、状态(states)和这些状态之间的状态转换(state transitions)的模式,可以抽象并表示为有限状态机(FSM,Finite-State Machine)。FSM 的概念在事件驱动编程(event-driven programming)中很重要。
状态图用来描述系统的行为。
state 状态
action 动作
transition
transition condition
UML 状态机(state machine),又称 UML 状态图(statechart),是数学概念有限自动机(finite automaton)在计算机中的扩展。
UML 状态机是 Harel 状态图基于对象的变体,由 UML 改编和扩展。UML 状态机的目标是克服传统有限状态机的主要局限性,同时保留其主要优势。UML 状态图引入了分层嵌套状态(hierarchically nested states)和正交区域(orthogonal regions)的新概念,同时扩展了动作(actions)的概念。UML 状态机兼有 Mealy 机和 Moore 机的特点,它们支持依赖于系统状态(system state)和触发事件(trigger event)的动作(actions)。
UML 保留了传统状态图的一般形式:有向图,其中节点表示状态,连接线表示状态转换。