Модульное программирование - метод разработки программ, предполагающий разбиение программы на независимые модули.
Модуль – это замкнутая программа, которую можно вызвать из другого модуля и самостоятельно откомпилировать.
Модуль характеризуют:
– один вход и один выход – на входе программный модуль получает определенный набор исходных данных, выполняет содержательную обработку и возвращает один набор результатных данных, т.е. реализуется стандартный принцип IPO – вход–процесс–выход;
– функциональная завершенность – модуль выполняет перечень регламентированных операций для реализации каждой отдельной функции в полном составе, достаточных для завершения начатой обработки;
– логическая независимость – результат работы программного модуля зависит только от исходных данных, но не зависит от работы других модулей;
– слабые информационные связи с другими программными модулями – обмен информацией между модулями должен быть по возможности минимизирован.
Каждый модуль состоит из спецификации и тела. Спецификации определяют правила использования модуля, а тело – способ реализации процесса обработки.
Модуль – это программа, обладающая тремя основными атрибутами:
3. 3. используется в одном или нескольких контекстах.
При этом функция – это то, что делает модуль, а не то, как он это делает. А вот логика характеризует, как модуль выполняет свои функции. Контекст описывает конкретное применение.
Основная причина по которой разрабатываемое ПО разбивается на модули – борьба со сложностью ПО.
Для качественной характеристики модулей введены 7 классов прочности модулей и 5 видов сцепления модулей. Класс прочности является мерой связи предложений внутри модуля. Сцепление модулей — это мера зависимости между модулями.
Назовем эти классы в порядке возрастания прочности. Вы должны понимать, что чем к большему по номеру классу относится конкретный программный модуль, тем он “доброкачественнее”.
Чтобы отнести модуль к тому или иному классу, нужно проанализировать выполняемую им функцию (или функции).
Между предложениями модуля нет устойчивых смысловых связей. Такая ситуация возникает, если повторяющуюся группу предложений программы оформляют в виде отдельного модуля и используют его в разных контекстах.
2. Прочность по логике - при каждом вызове выполняется некоторая функция из набора функций модуля. Как следует из этого определения, прочный по логике модуль выполняет несколько функций, и требуемая в конкретный момент функция выбирается (определяется) вызывающим модулем.
3. Прочность по классу — модуль выполняет несколько функций, отнесенных разработчиком к одному классу.
4. Процедурно-прочный модуль — выполняет несколько функций относящихся к одной функциональной процедуре решения задачи.