Модульное программирование
Мо́дульное программи́рование, технология разработки компьютерных программ, основанная на представлении программируемой задачи в виде структуры подзадач, для каждой из которых разрабатывается программный модуль – поименованная программная компонента с заданным интерфейсом.
Позволяет эффективно разделить разработку программ между программистами, уменьшить общий размер исходного кода на языке программирования (ЯП) и улучшить его читаемость. Модули программируются, транслируются и отлаживаются раздельно, что позволяет значительно сократить время разработки программы и упростить процесс выявления ошибок. Готовые модули, предназначенные для решения типовых задач (вычислительных, обработки текстов, работы с файлами, сетевого взаимодействия и др.), могут повторно использоваться в других программах (в том числе написанных на других ЯП). Широко применяемые модули часто объединяют в библиотеки программ, многие из которых включают в инструментальные системы программирования.
Модульное программирование начинается с проектирования структуры подзадач и интерфейсов модулей. Интерфейс каждого модуля представлен спецификацией данных и/или подпрограмм, предназначенных для использования в других модулях. Например, подпрограмма может быть многократно вызвана из разных модулей, что позволяет не повторять идентичные блоки исходного кода. Реализация алгоритмов подпрограмм скрыта внутри модуля и может быть неизвестна разработчикам других модулей. Если интерфейс модуля неизменен, то изменение его реализации не влечёт за собой изменений других модулей. Файлы готовых модулей, содержащие исходные коды на ЯП, раздельно обрабатываются транслятором и компонуются в исполняемый код программы.
Основные принципы модульного программирования сформулировал в 1972 г. Д. Парнас (Канада) – специалист в области разработки программного обеспечения: для написания одного модуля должно быть достаточно минимальных знаний об исходном коде других модулей (т. н. принцип утаивания); изменение модуля и его повторная трансляция не должны приводить к изменениям и повторной трансляции других модулей. В конце 1970-х гг. эти принципы были реализованы швейцарским учёным в области информатики Н. Виртом в ЯП Modula-2, который был основан на разработанных им же ЯП Pascal и Modula. В 1990-х гг. стандартом модульного программирования стало объектно ориентированное программирование, парадигма которого поддерживается ЯП C++, Java, современными версиями Pascal, BASIC и многих др. В начале 21 в. модульное программирование применяется при разработке всех достаточно сложных программ.