Лекция 22.

Для проектирования модульных программ применяются два основных метода: нисходящего и восходящего проектирования.

a) Нисходящее проектирование

В соответствие с данным методом сначала кодируются, тестируются и отлаживаются модули самого высокого уровня. При этом, чтобы как можно раньше начать проверку работоспособности системы, вместо модулей нижнего уровня, еще детально не разработанных, используются “заглушки”. Заглушка - это очень простой по структуре модуль, в котором входные и выходные данные соответствуют замещаемому модулю, но алгоритм обработки данных очень упрощен. Часто в заглушке помимо описания входных и выходных данных присутствует лишь один оператор печати, сообщающий, что в этом месте программы вызывается заглушка.

Применение метода нисходящего проектирования основано на пошаговой детализации решения задачи. Начиная с верхних, самых общих шагов, на каждом следующем происходит все большее уточнение функций, выполняемых программой, до полной их реализации. В приведенном примере на первом шаге детально прорабатывается головная программа, которая должна вызывать два модуля. Вместо них разработаны две заглушки. На втором шаге детализируется первый модуль, состоящий, в свою очередь, из двух модулей. Вместо них подставляются заглушки 1.1 и 1.2. На последнем шаге все заглушки заменяются полноценными модулями. На каждом шаге происходит отладка разрабатываемой программы на ЭВМ.

1 шаг - проработка головной программы

б) Восходящее проектирование

 

 
 

По методу восходящего проектирования, наоборот, в первую очередь разрабатываются модули самого нижнего уровня. Эти модули, работоспособность которых уже проверена, включаются в разрабатываемые модули более высокого уровня. Здесь необходимость в написании программ-заглушек отсутствует, но зато работоспособность модуля самого верхнего уровня можно проверить лишь на самом последнем этапе.

В данном примере сначала создаются модули 1.1, 1.2 и 2.1, которые проверяются на работоспособность по одному. На их базе проектируются вызывающие их модули 1 и 2, которые также проверяются независимо друг от друга, но совместно с вызываемыми модулями 1.1, 1.2 и 2.1. Последней создается головная программа.

Оба метода обладают как достоинствами, так и недостатками. При нисходящем проектировании до его завершения остаются неизвестными размер программы и ее эксплуатационные характеристики, так как они определяются в основном модулями нижнего уровня. Помимо этого, на последних этапах проектирования может возникнуть необходимость в структурных изменениях, требующих пересмотра уже разработанных модулей верхнего уровня. А в методе восходящего проектирования принципиальные ошибки в проекте модулей нижнего уровня будут выявлены лишь на заключительной стадии работы.

На практике наилучшие результаты дает сочетание обоих методов, при котором сначала создаются модули верхних уровней и самые критичные модули нижних уровней с использованием заглушек для имитации менее существенных модулей.