Software for state machines design in Java