Модульное программирование основано на понятии модуля – логически взаимосвязанной совокупности функциональных элементов, оформленных в виде отдельных программных модулей. Модуль характеризуют:
– один вход и один выход – на входе программный модуль получает определенный набор исходных данных, выполняет содержательную обработку и возвращает один набор результатных данных, т.е. реализуется стандартный принцип IPO – вход–процесс–выход;
– функциональная завершенность – модуль выполняет перечень регламентированных операций для реализации каждой отдельной функции в полном составе, достаточных для завершения начатой обработки;
– логическая независимость – результат работы программного модуля зависит только от исходных данных, но не зависит от работы других модулей;
– слабые информационные связи с другими программными модулями – обмен информацией между модулями должен быть по возможности минимизирован.
Каждый модуль состоит из спецификации и тела. Спецификации определяют правила использования модуля, а тело – способ реализации процесса обработки. Принципы модульного программирования программных продуктов во многом сходны с принципами нисходящего проектирования. Сначала определяются состав и подчиненность функций, а затем – набор программных модулей, реализующих эти функции. Однотипные функции реализуются одними и теми же модулями. Функция верхнего уровня обеспечивается главным модулем; он управляет выполнением нижестоящих функций, которым соответствуют подчиненные модули. При определении набора модулей, реализующих функции конкретного алгоритма, необходимо учитывать следующее:
– каждый модуль вызывается на выполнение вышестоящим модулем и, закончив работу, возвращает работу вызвавшему его модулю;
– принятие основных решений в алгоритм выносится на максимально «высокий» по иерархии уровень;
– для использования одной и той же функции в разных местах алгоритма создается один модуль, который вызывается на выполнение по мере необходимости.
Состав и вид программных модулей, их назначение и характер использования в программе в значительной степени определяются инструментальными средствами. Например: применительно к средствам СУБД отдельными модулями могут быть:
– экранные формы ввода и/или редактирования информации базы данных;
– отчеты генератора отчетов;
– макросы;
– стандартные процедуры обработки информации;
– меню, обеспечивающее выбор функции обработки и др.
Алгоритмы большой сложности обычно представляются с помощью схем двух видов:
– обобщенной схемы алгоритма – раскрывает общий принцип функционирования алгоритма и основные логические связи между отдельными модулями на уровне обработки информации (ввод и редактирование данных, вычисления, печать результатов и т.п.);
– детальной схемы алгоритма – представляет содержание каждого элемента обобщенной схемы с использованием управляющих структур в блок–схемах алгоритма, псевдокода либо алгоритмических языков высокого уровня.
|