UML в данном случае -- только метод представления данных а более компактно будет потому, что реализация конечных автоматов делается в табличном виде. Вручную вы будете использовать скорее всего switch-технологию. А конструкция switch языка Си уж никак не относится к компактым вещам.