En architecture logicielle, un composant logiciel est un élément constitutif d'un logiciel tel qu'un module (paquetage, fichiers source, bibliothèque, exécutable), des données (fichiers, bases de données) ou encore des éléments de configuration (paramètres, scripts, fichiers de commandes).
Les composants logiciels sont développés par des professionnels de l'informatique en vue d'être réutilisés dans leurs propres logiciels, ou en vue d'être mis sur le marché et incorporés dans des logiciels tiers. Les composants peuvent être distribués comme pièces détachées dans le commerce sous licence propriétaire ou libre.
Tous les éléments d'architecture logicielle réutilisables, depuis les patterns jusqu'aux composants logiciels peuvent être classifiés en fonction de trois axes : la granularité, l'activité et la dépendance vis-à-vis d'un domaine d'expertise particulier.
Il serait également possible de classifier les composants en fonction des services rendus. Il s'agit d'ailleurs de la seule typologie dans les architectures de médiation (voir architecture orientée services, architecture ARPA I3).
Un plugin ou plugiciel est un composant logiciel destiné à apporter des nouvelles fonctionnalités à un logiciel applicatif.
Un codec est un composant logiciel destiné à transformer une information numérique de et vers un certain format de données en appliquant un procédé, par exemple de compression de données.
Un widget est un composant logiciel qui anime un certain type d'élément visuel des interface graphique. exemple: bouton, zone de texte, barre de défilement.
Un pilote (anglais driver) est un composant logiciel qui assure l'utilisation d'une pièce de matériel informatique.
Une bibliothèque logicielle est un ensemble de composants en rapport avec un sujet particulier et réunis dans le même logiciel. exemple: calcul mathématique, manipulation de fichiers, compression de données.
Un moteur de calcul est une bibliothèque logicielle ou un composant unique qui effectue un travail de manière automatique. exemples: moteur de script, moteur de recherche, moteur de jeu, moteur de rendu, moteur de base de données embarqué.
Un framework (cadriciel) est une bibliothèque logicielle destinés à donner à un logiciel une architecture. Le logiciel est alors construit sur le squelette créé par le cadriciel.
Une base de donnée est une collection de données utilisé par un système informatique.
Une ontologie est un composant logiciel permettant de définir la sémantique d'un système informatique (voir architecture de médiation).