Лекция 22.
Для проектирования модульных программ применяются два основных метода: нисходящего и восходящего проектирования.
a) Нисходящее проектирование
В соответствие с данным методом сначала кодируются, тестируются и отлаживаются модули самого высокого уровня. При этом, чтобы как можно раньше начать проверку работоспособности системы, вместо модулей нижнего уровня, еще детально не разработанных, используются “заглушки”. Заглушка - это очень простой по структуре модуль, в котором входные и выходные данные соответствуют замещаемому модулю, но алгоритм обработки данных очень упрощен. Часто в заглушке помимо описания входных и выходных данных присутствует лишь один оператор печати, сообщающий, что в этом месте программы вызывается заглушка.
Применение метода нисходящего проектирования основано на пошаговой детализации решения задачи. Начиная с верхних, самых общих шагов, на каждом следующем происходит все большее уточнение функций, выполняемых программой, до полной их реализации. В приведенном примере на первом шаге детально прорабатывается головная программа, которая должна вызывать два модуля. Вместо них разработаны две заглушки. На втором шаге детализируется первый модуль, состоящий, в свою очередь, из двух модулей. Вместо них подставляются заглушки 1.1 и 1.2. На последнем шаге все заглушки заменяются полноценными модулями. На каждом шаге происходит отладка разрабатываемой программы на ЭВМ.
|

б) Восходящее проектирование
![]() |
По методу восходящего проектирования, наоборот, в первую очередь разрабатываются модули самого нижнего уровня. Эти модули, работоспособность которых уже проверена, включаются в разрабатываемые модули более высокого уровня. Здесь необходимость в написании программ-заглушек отсутствует, но зато работоспособность модуля самого верхнего уровня можно проверить лишь на самом последнем этапе.
В данном примере сначала создаются модули 1.1, 1.2 и 2.1, которые проверяются на работоспособность по одному. На их базе проектируются вызывающие их модули 1 и 2, которые также проверяются независимо друг от друга, но совместно с вызываемыми модулями 1.1, 1.2 и 2.1. Последней создается головная программа.
Оба метода обладают как достоинствами, так и недостатками. При нисходящем проектировании до его завершения остаются неизвестными размер программы и ее эксплуатационные характеристики, так как они определяются в основном модулями нижнего уровня. Помимо этого, на последних этапах проектирования может возникнуть необходимость в структурных изменениях, требующих пересмотра уже разработанных модулей верхнего уровня. А в методе восходящего проектирования принципиальные ошибки в проекте модулей нижнего уровня будут выявлены лишь на заключительной стадии работы.
На практике наилучшие результаты дает сочетание обоих методов, при котором сначала создаются модули верхних уровней и самые критичные модули нижних уровней с использованием заглушек для имитации менее существенных модулей.