Нисходящее программирование предполагает создание программы «сверху вниз»: сначала разрабатывается основная программа, затем определяются основные структуры данных и правила их обработки. multiurok.ru
Преимущества:
- Разработка становится эффективнее. foxminded.ua Разработчик сначала определяет общие параметры проекта, затем детализирует их, а затем реализует весь функционал. foxminded.ua
- Улучшается документация. foxminded.ua Если разработчик начинает с общих параметров, это обеспечивает более чёткое и последовательное описание проекта. foxminded.ua
- Упрощается тестирование. foxminded.ua Когда каждая функция программы разрабатывается отдельно, тестировать её можно тоже отдельно, что гораздо проще. foxminded.ua
- Улучшается модульность и повторное использование кода. foxminded.ua При отдельной разработке каждой функции, разработчикам проще использовать модули и применять повторное использование кода в разных частях проекта, что ускоряет процесс разработки. foxminded.ua
Недостатки:
- Снижается гибкость. foxminded.ua Поскольку проект детально планируется, у разработчика не остаётся поля для манёвра, что чревато утратой гибкости, отсутствием поля для креативности и внедрения новых технологий в конечном продукте. foxminded.ua
- Увеличивается сложность дизайна. foxminded.ua При дизайне сверху вниз могут возникнуть сложности с дизайном каждой отдельной функции, что чревато замедлением и удорожанием создания ПО. foxminded.ua
- Увеличивается риск пропуска мелких деталей. foxminded.ua При программировании сверху вниз до самых мелких деталей часто не доходят руки, а это может пагубно отразиться на финальном продукте. foxminded.ua
Восходящее программирование («снизу вверх») предполагает создание и отладку самых элементарных подпрограмм, затем отдельных блоков задачи до тех пор, пока не реализуется вся задача. multiurok.ru
Преимущества:
- Уменьшается общий объём работы за счёт ранее созданных участков кода. multiurok.ru
- Снижаются требования к аппаратным ресурсам. multiurok.ru
- Уменьшается вероятность возникновения ошибок, так как только на поздних этапах проекта работает с большим объёмом кода. multiurok.ru
Недостатки:
- Уже реализованные, отлаженные и протестированные модули иногда приходится разрабатывать заново, так как головной модуль разрабатывается на завершающем этапе. multiurok.ru
- Использование готовых частей кода может привести к менее эффективной структуре решения в целом. multiurok.ru
- При применении такого подхода в чистом виде возникает опасность потерять общую логику разработки. multiurok.ru