• Aucun résultat trouvé

Une démarche de sélection, un outil et deux expérimentations

Chapitre 5 Les travaux sur les architectures et les composants

5.3 La sélection de composants

5.3.9 Une démarche de sélection, un outil et deux expérimentations

Sur la base des deux opérateurs de comparaison précédents, une démarche de sélection comportant plusieurs étapes a été proposée. Cette démarche promeut, en particulier, une

recherche itérative utilisant des comparaisons alternant aussi bien les niveaux d‟abstraction que les sémantiques de pondération. Classiquement, trois itérations peuvent être proposées :

1. Un premier filtrage des candidats est réalisé sur la base de critères uniquement de haut niveau (en utilisant le premier opérateur avec une sémantique de pondération de type ressemblance) ;

2. Un second filtrage utilisant tous les éléments du composant recherché est conduit (avec le même opérateur et la même sémantique de pondération que dans l‟étape précédente) ;

3. Un classement des quelques candidats restant est effectué en usant d‟une estimation de l‟effort d‟adaptation à fournir (avec le second opérateur estimant l‟effort d‟adaptation de chaque candidat).

Pour valider cette démarche et les deux opérateurs qui la portent, nous avons réalisé deux expérimentations sur un marché réel : ComponentSource. Elles ont montré la faisabilité pratique et l'intérêt de notre proposition. Toutes deux sont des cas d‟étude menés en laboratoire. Ils furent conduits par Bart George. Nous nous étions placés dans le contexte suivant : un concepteur recherche pour son application un composant réseau parmi tous les candidats disponibles dans la section « communication internet » du marché aux composants

ComponentSource. Cette section contenait 131 composants au moment où nous avons effectué

nos deux expérimentations. Nous avons préalablement produit (semi automatiquement), pour chaque composant de cette section, une description conforme à notre langage de comparaison. C'est sur la base de ces 131 descriptions que nos deux cas d‟étude ont été conduits. Différents types de filtrage ont été réalisés mélangeant les niveaux d‟abstraction et les sémantiques de comparaison. Les calculs ont été réalisés à l‟aide de notre outil appelé Substitute. Cet outil prend en paramètre les fichiers XML décrivant le modèle de qualité choisi et l'ensemble des descriptions des composants utilisés (le composant recherché comme les composants candidats). Il peut retourner aussi bien les indices de ressemblance locaux pour les éléments fils (opérations, NFP...), que l'indice global de ressemblance de chaque composant candidat.

Les deux cas d‟étude ont mis en évidence le principal avantage de l'automatisation de la sélection : les indices ont été calculés sur plusieurs dizaines de composants en quelques secondes, alors qu'une évaluation manuelle de chaque candidat pour chaque critère aurait pris plusieurs jours. De plus, il a été possible d‟interpréter graphiquement les résultats à l'aide d‟un outil de visualisation tiers, offrant une autre forme d'agrégation : une agrégation visuelle dans laquelle plusieurs mesures sur un même composant sont représentées par des attributs graphiques (taille, couleur, orientation). Cette méthode permet de repérer intuitivement et en un coup d'œil les meilleurs candidats. Elle permet également à l'utilisateur d'effectuer ses propres compromis de sélection en ayant accès aux indices locaux de tous les candidats en même temps. Cette étude montre enfin que notre approche de sélection multi niveaux permet des comparaisons fines, qui exploitent dans une large mesure les propriétés fonctionnelles et non fonctionnelles des composants.

5.3.10 Bilan du thème

Une des qualités de ce travail est d‟être en totale adéquation avec l‟état actuel des marchés aux composants. Il est applicable tel quel in vivo. Ils existent des travaux dans la littérature ouvrant, en théorie, des perspectives bien plus séduisantes, proposant des recherches usant de critères sémantiques (Mili, et al., 1997) (Zaremski, et al., 1997) (Morel, et al., 2004), gérant mieux la variabilité ou offrant une représentation beaucoup plus fine des aspects non fonctionnels (Zschaler, 2009). Mais toutes les approches que j‟ai pu étudier posent de telles hypothèses sur les documentations (souvent formelles) des composants ou sur l‟existence d‟hypothétiques modèles « universels » (par exemple des ontologies complètes sur un vaste domaine) qu‟elles sont inapplicables dans les marchés actuels et pour plusieurs années encore. Notre travail est moins ambitieux mais en prise avec la réalité.

Il nous reste cependant à progresser sur plusieurs points. La traduction des descriptions des composants candidats dans notre format documentaire est un obstacle important. Les deux cas d‟études sur le marché ComponentSource ont nécessité un travail laborieux pour traduire les 131 composants concernés. Ce travail a occupé une personne pendant plusieurs jours malgré l‟usage d‟un outil ad hoc permettant d‟extraire automatiquement depuis des documents webs de l‟information respectant certains formats. Nous avons commencé à explorer la piste de la transformation de modèles, mais on se heurte à la trop grande diversité des formats et à l‟absence de métamodèles décrivant les formats utilisés. Ce sont aux marchés de progresser sur ces deux derniers points pour permettre le développement d‟outils de recherches multi-marchés.

Le premier opérateur de comparaison pourrait intégrer des mécanismes plus puissants pour les mots-clés et les noms d‟opération, par exemple s‟appuyant sur des distances calculées dans des ontologies. Les systèmes d‟agrégation des scores des nœuds fils pour obtenir le score du nœud père par pondération et visualisation peuvent être utilement complétés par d‟autres types de pondération. Nous avons étudié une agrégation bayésienne qui permet de représenter le caractère indispensable de certaines propriétés. Cette pondération ouvre aussi la voie à des mécanismes d‟inférence. Le second opérateur pourrait se connecter aux travaux estimant l‟effort d‟adaptation d‟un composant. Mieux, il y a sans doute des ponts à tirer entre ce travail et les travaux proposant d‟automatiser l‟adaptation d‟un composant (Bracciali, et al., 2005) qui prennent en entrée les différences constatées.

Enfin, il aurait été préférable de séparer dans le métamodèle du langage de comparaison : le langage décrivant la structure des composants, l‟expression de la variabilité et les informations nécessaires à l‟agrégation. Il serait ainsi plus facile de faire évoluer les uns indépendamment des autres. Plus encore on pourrait envisager de « composer » à la demande le langage de description en « tissant » ces trois préoccupations.