Структурное
программирование — методология
разработки программного обеспечения, в основе которой лежит представление
программы в виде иерархической структуры блоков. Предложена в 70-х годах
XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
В соответствии с данной
методологией
1.
Любая программа представляет собой структуру, построенную из трёх типов
базовых конструкций:
·
последовательное исполнение — однократное
выполнение операций в том порядке, в котором они записаны в тексте программы;
·
ветвление — однократное выполнение одной из
двух или более операций, в зависимости от выполнения некоторого заданного
условия;
·
цикл — многократное исполнение одной и
той же операции до тех пор, пока выполняется некоторое заданное условие
(условие продолжения цикла).
В программе базовые конструкции могут быть
вложены друг в друга произвольным образом, но никаких других средств управления
последовательностью выполнения операций не предусматривается.
Повторяющиеся фрагменты
программы (либо не повторяющиеся, но представляющие собой логически целостные
вычислительные блоки) могут оформляться в виде
т. н. подпрограмм(процедур или функций). В этом случае в
тексте основной программы, вместо помещённого в подпрограмму фрагмента,
вставляется инструкция вызова подпрограммы. При выполнении такой
инструкции выполняется вызванная подпрограмма, после чего исполнение программы
продолжается с инструкции, следующей за командой вызова подпрограммы.
Разработка программы
ведётся пошагово, методом «сверху вниз».
Сначала пишется текст
основной программы, в котором, вместо каждого связного логического фрагмента
текста, вставляется вызов подпрограммы, которая будет выполнять этот фрагмент.
Вместо настоящих, работающих подпрограмм, в программу вставляются «заглушки», которые
ничего не делают. Полученная программа проверяется и отлаживается. После того,
как программист убедится, что подпрограммы вызываются в правильной
последовательности (то есть общая структура программы верна),
подпрограммы-заглушки последовательно заменяются на реально работающие, причём
разработка каждой подпрограммы ведётся тем же методом, что и основной
программы. Разработка заканчивается тогда, когда не останется ни одной
«затычки», которая не была бы удалена. Такая последовательность гарантирует,
что на каждом этапе разработки программист одновременно имеет дело с обозримым
и понятным ему множеством фрагментов, и может быть уверен, что общая структура
всех более высоких уровней программы верна. При сопровождении и внесении
изменений в программу выясняется, в какие именно процедуры нужно внести
изменения, и они вносятся, не затрагивая части программы, непосредственно не
связанные с ними. Это позволяет гарантировать, что при внесении изменений и
исправлении ошибок не выйдет из строя какая-то часть программы, находящаяся в
данный момент вне зоны внимания программиста.