Разница между методами программирования «сверху вниз» и «снизу вверх» заключается в направлении разработки. 15
Программирование «сверху вниз» (нисходящее программирование) начинается с определения целей решения проблемы, после чего идёт последовательная детализация, заканчивающаяся детальной программой. 1 Задача анализируется, чтобы определить возможность её разбиения на ряд подзадач. 1 Затем каждая из полученных подзадач также анализируется для возможного разбиения на подзадачи. 1 Процесс заканчивается, когда подзадачу невозможно или нецелесообразно далее разбивать на подзадачи. 1
Программирование «снизу вверх» (восходящее программирование) начинается с разработки подпрограмм (процедур, функций), в то время когда проработка общей схемы не закончилась. 1 Вначале создаются и отлаживаются самые элементарные подпрограммы, затем отдельные блоки задачи до тех пор, пока не реализуется вся задача. 3
Некоторые преимущества метода «сверху вниз»: серьёзные ошибки с большой вероятностью отыскиваются уже на ранних стадиях проекта, тестирование систематично. 3 Метод «снизу вверх» имеет такие плюсы: уменьшается общий объём работы за счёт ранее созданных участков кода, снижаются требования к аппаратным ресурсам, уменьшается вероятность возникновения ошибок, так как только на поздних этапах проекта работает с большим объёмом кода. 3
Однако метод «снизу вверх» менее предпочтителен, так как часто приводит к нежелательным результатам, переделкам и увеличению времени разработки. 1