Нисходящее проектирование
– метод создания больших компьютерных систем, заключающийся в том, что сначала
система определяется как состоящая из небольшого количества весьма абстрактных
функциональных блоков, а потом эти блоки всё больше и больше детализируются и
уточняются, разделяются на всё более мелкие подблоки, которые в конце концов
превращаются в конкретные модули программ и в операторы языка программирования.
Среди советских программистов название «нисходящее проектирование» стало популярным после выхода книги: Йодан Э. «Структурное проектирование и конструирование программ». Мир, Москва, 1979 (перевод с оригинала: Yourdon Edward. «Techniques of program structure and design». Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1975). Однако сам метод применялся и раньше; книга Йодана лишь систематизировала опыт лучших программистов.
Путем нисходящего проектирования, например, в 1980-х годах рабочими группами (work groups) ISO (Международной Организации Стандартизации) разрабатывался Интернет: такие его службы как Virtual terminal, File transfer access and management, Job transfer and manipulation и др.
Путем нисходящего
проектирования происходит и человеческое самопрограммирование (см. «Самопрограммирование»), т.е. Природа, естественный отбор
тоже нашли этот метод наиболее целесообразным. При самопрограммировании в
дереве программы сначала появляются верхние, общие узлы, а потом это дерево
разрастается ко всё более мелким деталям.
Нисходящее проектирование
позволяет всё время иметь цельный взгляд на проектируемую систему, пусть
сначала этот взгляд и не детализированный, а весьма общий.
Противоположностью
нисходящего проектирования является метод последовательного проектирования,
когда система разрабатывается по отдельным блокам: сначала один блок, потом
второй, потом третий и т.д. При этом методе, как правило, во время разработки
второго и дальнейших блоков оказывается, что первый блок (и вообще предыдущие)
были разработаны неправильно и их надо переделать с учетом требований
дальнейших блоков (а переделка приводит к некачественным программам). При этом
методе отсутствует цельный взгяд на систему. Однако метод последовательного
проектирования является первым позывом неопытных проектировщиков (а также их начальников,
ставящих задачу не сразу всю, а по частям), и этим методом было загублено
огромное количество компьютерных систем.
|