Ключевые отличия нисходящего и восходящего подходов к алгоритмированию заключаются в порядке разработки программы. 14
Нисходящее проектирование заключается в последовательном разбиении задачи на всё более мелкие участки, то есть процесс программирования идёт «сверху вниз». 15 Сначала алгоритм формулируется в самых «крупных» блоках, при этом в записи могут использоваться команды, выходящие за рамки возможностей исполнителя. 1 Затем отдельные детали каждого блока уточняются, при этом недоступные исполнителю команды записываются как вызов вспомогательных алгоритмов. 1 Процесс продолжается до тех пор, пока все алгоритмы не будут состоять из команд, понятных исполнителю. 1
Восходящее проектирование, наоборот, предполагает последовательное построение программы из уже имеющихся элементов, начиная с примитивов, предоставляемых выбранным языком программирования. 15 На каждом этапе из имеющихся элементов строятся более мощные новые элементы. 1 Эти новые элементы будут, в свою очередь, использоваться на следующем этапе для построения ещё более сложных элементов, и так далее до тех пор, пока не будут получены элементы, из которых можно непосредственно составить требуемую программу. 1
Таким образом, нисходящее проектирование фокусируется на детализации с самого начала, а восходящее — на сборке крупных блоков из ранее созданных мелких блоков. 2
На практике при разработке алгоритмов обычно используется сочетание методов нисходящего и восходящего проектирования. 5