Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы с ответами 2018.doc.doc
Скачиваний:
14
Добавлен:
16.05.2023
Размер:
2.1 Mб
Скачать

29. Структурное программирование. Определение подхода, цель и принципы.*

Структу́рное программи́рование — парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков.

Цель структурного программирования – разработка программы, которой присуща определенная структура, основанная на применении принципов структурного программирования.

Перечислим эти принципы:

  1. Каждый программный модуль (блок, функция, процедура) должен иметь только один вход и один выход.

Это позволяет максимально упростить стыковку модулей в программе.

  1. В программах рекомендуется применять 4 типа конструкций:

а) последовательность (модулей, операторов)

б) разветвление (условный оператор)

Перечеркивание означает, что Q может отсутствовать.

в) цикл

  1. с предусловием

  1. с постусловием

г) выбор из нескольких альтернатив (или переключатель)

3. разработку программ рекомендуется вести сверху – вниз или по нисходящей стратегии.

30. Нисходящая стратегия разработки программ.*

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

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

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

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

Комбинированный метод учитывает следующие факторы, влияющие на последовательность разработки:

•достижимость модуля - наличие всех модулей в цепочке вызова данного модуля;

•зависимость по данным - модули, формирующие некоторые данные, должны создаваться раньше обрабатывающих;

•обеспечение возможности выдачи результатов - модули вывода результатов должны создаваться раньше обрабатывающих;

•готовность вспомогательных модулей - вспомогательные модули, например, модули закрытия файлов, завершения программы, должны создаваться раньше обрабатывающих;

•наличие необходимых ресурсов.

Нисходящий подход обеспечивает:

•максимально полное определение спецификаций проектируемого компонента и согласованность компонентов между собой;

•раннее определение интерфейса пользователя, демонстрация которого заказчику позволяет уточнить требования к создаваемому программному обеспечению:

• возможность нисходящего тестирования и комплексной отладки