Programmation modulaire

En informatique, la programmation modulaire reprend l'idée de fabriquer un produit (le programme) à partir de composants (les modules).

Elle décompose une application complexe en modules, groupes de fonctions, de méthodes et de traitement. Chaque élément peut ainsi être développé, amélioré et optimisé indépendamment. Puis, il est réutilisable dans d'autres applications.

Le développement du code des modules peut être attribué à des (groupes de) personnes différentes, qui effectuent leurs tests unitaires indépendamment.

Cette méthode de regroupement permet de réaliser une encapsulation comparable par certains aspects à celle de la programmation objet, et permet l'organisation du code source en unités de travail logiques. Les modules définissent également des espaces de noms utiles lors de leur utilisation.

La programmation modulaire n'implique pas l'usage d'un style de ou d'un paradigme de programmation particulier ; les éléments qu'elle structure peuvent être de style objet, impératif ou fonctionnel.

L'opposée de la programmation modulaire est le raffinement.

Ce style de programmation facilite grandement l'amélioration progressive, la ré-utilisabilité et le partage du code, et est particulièrement utile pour la réalisation de bibliothèques.

De plus, suivant les langages de programmation, les modules peuvent être paramétrés et/ou polymorphes (foncteur) ce qui apporte une modularité dont la souplesse décuplée amène alors à parler de généricité.

La programmation générique est un sur-ensemble qui peut tirer avantageusement parti de la modularité apportée par la programmation modulaire.