Сутью структурного программирования является возможность разбиения программы на составляющие элементы.
Идеи структурного программирования появились в начале 70-годов в компании IBM, в их разработке участвовали известные ученые Э. Дейкстра, Х. Милс, Э. Кнут, С. Хоор.
Структурное программирование основано на модульной структуре программного продукта и типовых управляющих структурах алгоритмов обработки данных различных программных модулей.
Типы управляющих структур:
– последовательность;
– альтернатива (условие выбора);
– цикл.
Распространены две методики (стратегии) разработки программ, относящиеся к структурному программированию:
– программирование «сверху вниз»;
– программирование «снизу вверх».
Программирование "сверху вниз", или нисходящее программирование – это методика разработки программ, при которой разработка начинается с определения целей решения проблемы, после чего идет последовательная детализация, заканчивающаяся детальной программой. Является противоположной методике программирования «снизу вверх».
При нисходящем проектировании задача анализируется с целью определения возможности разбиения ее на ряд подзадач. Затем каждая из полученных подзадач также анализируется для возможного разбиения на подзадачи. Процесс заканчивается, когда подзадачу невозможно или нецелесообразно далее разбивать на подзадачи.
В данном случае программа конструируется иерархически – сверху вниз: от главной программы к подпрограммам самого нижнего уровня, причем на каждом уровне используются только простые последовательности инструкций, циклы и условные разветвления.
Программирование "снизу вверх", или восходящее программирование – это методика разработки программ, начинающаяся с разработки подпрограмм (процедур, функций), в то время когда проработка общей схемы не закончилась. Является противоположной методике программирования «сверху вниз».
Такая методика является менее предпочтительной по сравнению с нисходящим программированием так как часто приводит к нежелательным результатам, переделкам и увеличению времени разработки.
Достоинства структурного программирования:
1) повышается надежность программ (благодаря хорошему структурированию при проектировании, программа легко поддается тестированию и не создает проблем при отладке);
2) повышается эффективность программ (структурирование программы позволяет легко находить и корректировать ошибки, а отдельные подпрограммы можно переделывать (модифицировать) независимо от других);
3) уменьшается время и стоимость программной разработки;
4) улучшается читабельность программ.
Резюме
Технология структурного программирования при разработке серьезных программных комплексов, основана на следующих принципах:
– программирование должно осуществляться сверху вниз;
– весь проект должен быть разбит на модули (подпрограммы) с одним входом и одним выходом;
– подпрограмма должна допускать только три основные структуры – последовательное выполнение, ветвление (if, case) и повторение (for, while, repeat).
– недопустим оператор передачи управления в любую точку программы (goto);
– документация должна создаваться одновременно с программированием в виде комментариев к программе.
Структурное программирование эффективно используется для решения различных математических задач, имеющих алгоритмический характер.