Модульне програмування
Мо́дульне програмува́ння — парадигма програмування, орієнтована на зменшення складності програмних продуктів та можливості перенесення окремих рішень з одних програмних проектів у інші. Побудована як наслідок модульна архітектура підкреслює поділ функціональності програми на незалежні змінні модулі, таких, що кожен з них містить все необхідне, щоб виконати тільки один аспект необхідної функціональності. Модулі, як правило, включені в програму через інтерфейси.
Парадигма базується на механізмах, що дозволяють будувати програму з окремих модулів шляхом забезпечення:
- реалізації окремих елементів програми (описів структур даних, реалізації функцій або класів) в окремих файлах (для окремих мов програмування — також у каталогах) з можливістю об'єднання модулів в програмний продукт на етапі компіляції або виконання;
- логічної завершеності модулів, коли кожен окремий модуль містить елементи, що реалізують деякі логічно закінчені описи та алгоритми;
- обмеженості модулів у функціональності та розмірах, що дозволяє найкращим способом організувати модулі у програму або переносити модулі між програмами та підтримувати їх;
- замкнутості модулів, коли кожен модуль надає свій чітко визначений інтерфейс іншим модулям і використовує інші модулі через їх чітко визначений інтерфейс при повній незалежності одних модулів від значень даних, що містяться в інших модулях;
- універсальності модулів, коли параметри обробки та дані для обробки передаються з інших модулів або файлів конфігурації, а не містяться у модулі як константи або змінні;
- мінімалістичності модулів, коли кожен модуль надає якомога простий інтерфейс.
Модульне програмування дозволяє зменшити обсяг вихідних текстів програм, зробити їх прозорішими, прискорити написання і тестування програм, зменшити витрати на супровід (експлуатацію) програм. Ознакою якості модульного програмування є організація програми, що складається з можливо більшої кількості модулів при можливо меншій кількості зв'язків між ними.