Composants logiciels
Composants logiciels - Acceuil
Au départ
C'était l'approche procédurale

La fiabilité et la performance sont deux aspects essentiels de la qualité d'un produit industriel. Le produit logiciel, en tant que produit industriel, doit répondre à ces éxigences.

Au cours des années 1970, le logiciel était fondé sur le concept de traitement des données par des procédures implémentant des algorithmes. La fiabilité et la performance de ces algorithmes déterminaient, en grande partie, la fiabilité et la performance du logiciel. Par ailleurs, d'autres aspects sont aussi importants pour tout produit industriel. Parmis ces aspects on note la maintenabilité, le coût de production et, pour le logiciel, l'évolutivité. L'approche procédurale de construction des logiciels de l'époque a permis d'améliorer ces aspects mais de manière très limitée.

 
Ensuite
l'approche objet

L'émergence de l'approche objet au début des années 1990 a constitué une évolution déterminante pour l'informatique. La structure du logiciel qui était, jusque là, centrée sur les traitements (algorithmes) eux mêmes structurés en procédures, est devenue centrée sur les objets. Les objets sont des entités encapsulants et les données et les traitements qui les manipulent. Cet aspect des objets les dote d'une grande robustesse et par conséquent une plus grande fiabilité. D'autres aspects, tel que l'héritage et le polymorphisme, les dotent d'une plus grande flexibilité et par conséquent une plus grande évolutivité. Grossièrement, un logiciel est devenu, grâce à cette nouvelle approche, un ensemble d'objets qui communiquent entre eux par l'envoi de messages.

Malgrè ses atouts importants, l'approche objet souffre au moins de deux insuffisances majeures. D'abord, à cause de la forte intéractivité et les liens rigides entre les objets, les logiciels ainsi conçus manquent de capacités évolutives. En deuxième lieu, et contrairement à ce qui a été avancé à l'émergence de ce nouveau paradigme, ils manquent de réutilisabilité. Ce manque est dû au fait que l'objet, ou son modèle la classe, s'est avéré de granularité trop faible pour être réellement réutilisable. Par réutilisabilité, on entend la possibilité d'utiliser le même code dans d'autres circonstances que celles pour lesquelles il a été conçu à l'origine. Ce dernier handicap est un défaut de taille car il est en relation avec le coût de production des logiciels, désormais, de plus en plus complexes et chers à produire.