Традиционный подход к разработке ПО основанный на применении алгоритмических языков программирования состоит из следующих основных этапов:
- Спецификация требований (т.н. тех. задание или ТЗ)
- Разработка архитектуры
- Кодирование алгоритмов
- Тестирование
Эти этапы не обязательно должны следовать один за другим во времени, но могут выполняться в общем случае итеративно. Основная проблема, которая при этом возникает и которую можно в общем виде сформулировать следующим образом:
Разрушение смыслов (семантики) при преобразовании спецификаций в код.