A toolset in Java2 for modelling, prototyping and implementing communicating real-time state machines