Автоматное программирование — это парадигма программирования, при использовании которой программа или её фрагмент осмысливается как модель какого-либо формального автомата. 1
Этот термин в 1991 году предложил заведующий кафедрой Технологии программирования Университета ИТМО Анатолий Шалыто. 1
Цель автоматного программирования — создавать качественное программное обеспечение для ответственных систем, охватывая все этапы его жизненного цикла и поддерживая спецификацию, проектирование, реализацию, тестирование, верификацию и документирование. 3
Шалыто придумал автоматное программирование, чтобы описать программы со сложным поведением, в которых имеет место зависимость их поведения от предыстории. 1 По его мнению, качество программ обеспечивается не только посредством тестирования и верификации, но и за счёт выстраивания отношений между заказчиком и разработчиком с самого начала работы над проектом. 1 Добиться этого помогает формализованное техническое задание на базе методологии автоматного программирования. 1