Я разработал библиотеку, которую я использую для отслеживания состояний и перемещения между состояниями в приложении, которая называется JavaKI. Это основано на KI-фреймворке, который теперь является частью JavaScript-фреймворка SproutCore. Оба основаны на диаграммах Хареля.
В настоящее время JavaKI не поддерживает хронологические состояния, но вы можете реализовать эту функцию, если вам это нужно. JavaKI основан на Java и лицензируется по лицензии MIT.
https://github.com/joachimhs/JavaKI
С помощью JavaKI вы определили свои состояния и диаграмму состояний в «Обычной старой Java».