Finite state modelling in program development | Synapse