Comment différencier un module et un composant dans l’architecture de conception logicielle


En ce qui me concerne, il n'y a pas de définition unique convenue de ces termes (celle qui existe est très vague ou simplement bien définie pour l'usage de l'entreprise/équipe).

Voici comment j'utilise ces termes.


Un module est un morceau de logiciel qui est regroupé par responsabilité, par exemple, un module de journalisation, un module d'authentification, un module HTTP, etc. Il encapsule un ensemble défini de fonctionnalités et fournit une interface bien définie pour utiliser ce module. Le module est généralement matérialisé sous la forme d'une bibliothèque liée statiquement ou dynamiquement, mais il peut également s'agir d'un service distinct comme dans l'architecture microservices. De plus, les modules peuvent être définis à différents niveaux de l'architecture ; d'un point de vue global, un module peut être en fait un couple de services travaillant ensemble, fournissant un ensemble de fonctionnalités (comme le module d'accès aux données, qui peut être un système en soi). Dans une vue plus détaillée, vous pourriez nommer une seule classe un module.


Composant est plus lié à la matérialisation réelle, phisique du logiciel. Il est utilisé lorsqu'on parle de déploiements ou lors de la planification de la topologie de l'installation du système. Dans ces termes, un composant peut être un service unique, un logiciel fournissant une inspection des logs, un serveur frontal, etc.

Pour simplifier, j'utilise module quand on discute de l'architecture logicielle en termes fonctionnels, sans trop creuser comment exactement les choses seraient mises en œuvre ou déployées. Component est utilisé quand on discute de la décomposition phisique du logiciel en morceaux déployables.

Ne perdez pas de vue que l'important est que vous définissiez ces termes au sein de votre équipe, afin que tout le monde parle le même langage. La façon dont vous appelez les choses n'est pas si importante, tant que tout le monde a la même compréhension du terme. Malgré tout, il vaut la peine de ne pas trop s'écarter de la "norme" globale (même si elle est très vague), car cela rend l'adaptation difficile pour les nouveaux membres de l'équipe.