(en) Component software: beyond object-oriented programming
La notion de couplage concerne les dépendances des éléments logiciels les uns avec les autres. Les diagrammes de composants permettent de visualiser ce couplage (dépendance entre composants). Au niveau technologique, il existe plusieurs façons de réaliser un couplage ; la complexité de celui-ci étant croissante en fonction de la disparité technologique des composants.
Du point de vue du programmeur, le couplage entre module est habituellement transparent et se fait par une interface de programmation (abrégé API). Puisqu'ils sont destinés à être utilisés par d'autres logiciels, les module ont tous une interface de programmation.
Un module de code source d'un langage de programmation quelconque contenant des classes, objets et/ou fonctions peut-être réutilisé tel quel par un autre module écrit dans le même langage.
Une version compilé de ce code source peut générer une librairie (dynamique ou statique) de code natif pouvant être utilisée par n'importe quel langage de programmation générant du code natif pour la même plate-forme.
La création de proxy et l'utilisation du marshalling permettent le couplage dynamique de composants usant de codes machines différents et/ou se trouvant distribués sur différentes plates-formes en utilisant un middleware comme DCOM, de Microsoft, JavaBeans de Sun Microsystems et CORBA de OMG.
Habituellement, un module se couple à une ou plusieurs base de données en utilisant un client multibases.