Отладка или отображение большого конечного автомата?

Я пытаюсь отладить кусок кода, который в основном представляет собой простой конечный автомат с 16 состояниями, хотя в некоторых случаях переходы не очень просты (данные, с которыми работают изменения состояния, составляют около 200 байтов данных в паре C ++ классы).

Мы находим машину в конечном состоянии гораздо раньше, чем ожидалось. Поскольку я еще не очень хорошо знаком с кодом, я надеюсь, что смогу попытаться разобрать различные состояния и переходы таким образом, чтобы мне было легче быстро идентифицировать и отлаживать различные пути перехода.

Существуют ли какие-либо полезные инструменты или методы для отображения конечного автомата, как этот?

Возможно, стоит отметить, что я делаю это с точки зрения обратного проектирования, поэтому для меня нет доступной документации по планированию системы.

0

Решение

Вы можете посмотреть на формальные инструменты проверки модели, такие как UPPAAL. Этот инструмент может использоваться для моделирования и проверки любой системы, которая может быть смоделирована как сеть синхронизированных автоматов — это включает конечные автоматы. Я использовал это ранее, чтобы проверить, например, инварианты и достижимость возможных состояний.

0

Другие решения

Других решений пока нет …