A modelling and design technique for control systems that defines an explicit state space and the dynamic relationship between it and the system inputs, outputs, and future state changes. Both the output and future state changes are defined as functions of the current input and state.
Also specified are the starting state of the system, and any final states, if it is designed to terminate. See also finite-state machine.