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