Выше уже отмечалось, что понятие модуля или модульного программирования возникло на определенном этапе развития технологий программирования, и было обусловлено, в первую очередь, возрастающими объемами программ, их увеличивающейся внутренней сложностью и коллективным характером разработок. Понятие модуля развивается: первоначально модульность предполагала разбиение программы на отдельные части и создание библиотек включаемых фрагментов, сейчас используются независимо хранимые и разрабатываемые, независимо компилируемые и тестируемые программные единицы со строго определенными интерфейсами, которые могут объединяться в различных сочетаниях.
В языках программирования Pascal и VB модуль сам по себе не является выполняемой программой – его ресурсы используются другими программными единицами. Все программные ресурсы модуля можно разбить на две группы: объекты, прямо предназначенные для использования другими программами или модулями (глобальные, публичные (public)), и объекты рабочего характера (локальные, private). В соответствии с этим модуль (кроме заголовка в Паскале, VB) имеет две основные части, называемые в Паскале интерфейсом и реализацией; в VB — разделом объявлений и набором определений процедур и функций.