- •Тема 2.2 Структурный подход к разработке по.
- •2.2.1 Принципы структурного подхода
- •2.2.2 Функциональная иерархия данных
- •2.2.3. Иерархия программных компонентов
- •Восходящее и нисходящее проектирование
- •Элементарные базовые конструкции, используемые при создании структурированной программы
- •2.2.6 Типовая структура программного комплекса
- •Модульное программирование
- •Структурное моделирование
- •Методология idef0-моделирования
-
Модульное программирование
Модульное программирование представляет собой способ написания программ небольшими функционально законченными частями, которые называются модулями и оформляются как подпрограммы, функции или пакеты прикладных программ. Каждый модуль выполняет одну или несколько функций, входящих в общую задачу. Модуль может быть использован в одном или нескольких местах системы.
Хорошим примером модульности является библиотека стандартных процедур. Каждая программа такой библиотеки выполняет определенную задачу и может быть вызвана по желанию программиста в любом нужном месте системы.
Однако модульность следует понимать шире. Модуль не обязательно должен быть универсальным. Это может быть компонент, который будет использован в нескольких местах определенной программы, причем наличие нужного модуля сделает программу удобной для модификации и сопровождения. Модульное программирование имеет ряд преимуществ:
-
программы легче проектировать и разрабатывать,
-
легче читать, проверять и модифицировать,
-
появляется возможность создать библиотеку из универсальных модулей, которые будут использоваться во многих программах системы, что очень важно с точки зрения надежности.
Как правило модули выполняются как отдельно компилируемые или внешние подпрограммы. Важное значение имеет связь модулей с данными. Наиболее распространенной формой такой связи является список параметров.
Модули которые связываются с данными только через список параметров называются полностью закрытыми. Такой модуль может быть легко перенесет в другую программу, как библиотечная подпрограмма. Такая форма связи хороша тем, что все данные, используемые модулем идентифицируются и выделяются. При этом модуль не может оказать неожиданное побочное воздействие на вызывающую его программу, что возможно в том случае, когда модуль модифицирует глобальные переменные.
Но в некоторых случаях модулю может понадобиться доступ к большему числу данных, чем определено в списке параметров. В этом случае связь будет осуществляться через глобальные переменные вместе со списком параметров. Такие модули называются частично закрытыми. Они работают с данными, которые связывают их с телом программы, что затрудняет их перенос в другие программы. Как следствие возникает концепция пакета, который содержит общую БД и несколько использующих ее процедур или функций. В этом случае ограничения накладываются на доступ ко входной информации для данного пакета.
Модульное программирование значительно облегчает чтение программы в том случае, когда известны функции ее модулей, иначе чтение значительно затрудняется. Для облегчения чтения программы необходимо выполнять следующие правила:
-
помещать комментарии в начале каждого модуля, а т.ж. при их вызове в вызывающей программе,
-
помещать комментарии в начале блоков, имеющих принципиальное значение для решения поставленной задачи,
-
помещать комментарии при описании переменных,
-
имена переменных должны соответствовать внутреннему содержанию.
-
скобки ( begin … end) ставить на одном уровне,
-
условные и циклические блоки смещать вправо,