Модульное программирование (МП)

Структурное программирование

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

В основе СП лежит декомпозиция сложных систем с целью реализации в виде отдельных небольших подпрограмм (до 40 ... 50 операторов).

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

- определяется общая структура программы в виде одного из трех вариантов:

 

- последовательности подзадач (например, ввод данных, преобразование данных, вывод данных),

- альтернативы подзадач (например, добавление записей к файлу или их поиск),

- повторения подзадачи (например, циклически повторяемая обработка данных);

- каждая подзадача, в свою очередь, разбивается на подзадачи с использо­ванием тех же структур;

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

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

Поддержка принципов СП была заложена в основу процедурных языков программирования. Они включали основные «структурные» операторы управления, поддерживали вложение подпрограмм, локализацию и ограничение области «видимости» данных. Наиболее известные – PL/I, ALGOL-68, Pascal, С.

Архитектура МП позволяет:

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

- осуществлять связи между модулями через специальный интерфейс,

- запретить доступ к реализации модуля (телам подпрограмм и некоторым «внутренним» переменным).

Технологию МП поддерживают современные версии языков Pascal и С (C++), языки Ада и Modula.

Использование МП упрощает разработку программ несколькими программистами:

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

- взаимодействие модулей осуществляется через специально оговоренные интерфейсы модулей;

- модули в дальнейшем могут использоваться в других разработках, что увеличивает производительность труда программистов.

Практика программирования показывает, что структурный подход в сочетании сМП позволяет получать достаточно надежные программы, размер которых не превышает 100000 операторов.

Узкие места МП:

- ошибка в интерфейсе при вызове подпрограммы выявляется только при выполнении программы (из-за раздельной компиляции модулей обнаружить эти ошибки раньше невозможно).

- при увеличении размера программы свыше 100 000 операторов возрастает сложность межмодульных интерфейсов, и предусмотреть взаимовлияние отдельных частей программы становится практически невозможно.

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