Предпосылки появления и основные принципы структурного программирования

Структурное программирование. Общие СВЕДЕНИЯ ПО АЛГОРИТМИЧЕСКОМУ ЯЗЫКУ ПАСКАЛЬ и ЕГО СРЕДЕ РАЗРАБОТКИ

Первые алгоритмические языки были рассчитаны на выполнение относительно простых алгоритмов, предназначенных для реализации на ЭВМ первых поколений. На первых этапах развития в разработке программного обеспечения преобладали различные интуитивные подходы, при которых авторы программ мало заботились о понятности и "читаемости" своих программ.

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

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

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

Основные принципы СП предложены в 70-х годах XX века голландским ученым Э. Дейкстрой (Э́дсгер Ви́бе Де́йкстра), а затем разработаны и дополнены швейцарским математиком Н. Виртом (Никлаус Вирт). Кратко их можно сформулировать следующим образом:

1) пошаговое программирование "сверху-вниз";

2) использование модульного программирования;

3) логическая структура любого алгоритма состоит из трёх типов базовых конструкций: последовательного выполнения, ветвления и повторения (цикла).

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

2. Модульное программирование заключается в том, что повторяющиеся части программы (либо не повторяющиеся, но достаточно сложные логически законченные части общего алгоритма - например - умножение матриц) оформляют в виде обособленных модулей-подпрограмм, представляющих собой процедуры или функции. При этом в тексте основной программы, вместо заменяемого фрагмента кода вставляют вызов соответствующей подпрограммы. После выполнения каждого модуля программное управление передается инструкции, следующей за командой вызова данного модуля.

3. Три базовых конструкции (последовательное выполнение, ветвление и повторение) рассмотрены выше.

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

Наряду с использованием принципов СП для эффективного управления проектами разработки ПО были введены стандарты в данной области. Они устанавливают требования как к объекту, так и к процессу разработки. По масштабу применения стандарты делят на международные, государственные и отраслевые (для отдельных организаций). Среди международных стандартов в области разработки ПО, используемых в настоящее время в мире, наиболее популярными являются:- ISO 9001 - стандарт международной организации по стандартизации ISO, является универсальным, является обязательным минимумом для любой организации-разработчика,

- TickIT - отраслевой британский стандарт TickIT, регламентирует требования к системе качества для организаций-разработчиков ПО, базируется на модели ISO 9001:94,

- SEI SW-CMM - модель, в которой в отличие от ISO, предусмотрено поэтапное совершенствования процессов разработки.

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