These Sofien

Sujet : Un environnement de spécification et de découverte pour la réutilisation des composants logiciels dans le développement des logiciels distribués

Etablissement: UPS

École doctorale: EDSYS

Drirecteur de thèse : Khalil Drira (Labo: LAAS-CNRS)

Etablissement de co-tutelle: ENIS

Drirecteur de thèse : Mohamed Jmaiel (Labo: REDCAD)

Financement: Bourse de co-tutelles du projet de coopération CMCU LAAS/ENIS, bourse de mobilité du gouvernement tunisien et contrat technologue agrégé titulaire à l'ISET-Kairouan

Résumé:

Les travaux de recherche de cette thèse abordent la problématique de l’assistance des développeurs de recherche et réutilisation des composants logiciels.

La réussite de l'approche à base de composants dépend de la précision du procédé de découverte. La précision se définit formellement comme le rapport du « nombre de solutions recherchées correctes » sur « le nombre de l’ensemble des résultats recherchés ». La haute précision est le résultat de rechercher peu de solutions non pertinentes ou inadmissibles. Elle indique la capacité du système de présenter seulement les composants appropriés. La capacité de réussite du procédé de découverte dépend également du « facteur de rappel », défini comme le rapport du « nombre de solutions correctes recherchées » sur « le nombre de solutions correctes qui existent ». Ce facteur indique la capacité du système de découvrir un grand nombre parmi, voire l’ensemble, des composants appropriés. Dans les meilleurs cas, le facteur de rappel est élevé, signifiant que des composants appropriés n’ont pas été manquées par la procédure de recherche. Pour obtenir une haute précision et des facteurs de rappel, il est important d’utiliser un référentiel de composants, ayant une structure bien définie, des composants logiciels ayant une description convenable et une procédure de comparaison judicieuse entre la description de la requête et les spécifications des composants.

Notre travail traite cette problématique et vise à élaborer une solution efficace pour la découverte et la réutilisation des composants logiciels dans les environnements de développement existants et couramment utilisés. Nous proposons un ontologie pour décrire et découvrir des composants logiciels. La description couvre à la fois les propriétés fonctionnelles et les propriétés non fonctionnelles des composants logiciels exprimées comme des paramètres de QoS. De telles propriétés englobent la disponibilité et la fiabilité et peuvent dépendre ou non de l'environnement de déploiement. Notre processus de recherche est basé sur la fonction qui calcule la distance sémantique entre la signature d’un composant et la signature d’une requête donnée, réalisant ainsi une comparaison judicieuse.

La distance sémantique recherche tous les composants qui sont « synonymes », « hyperonymes » et « hyponymes » à une requête donnée. Ceci améliore la réutilisation de l'ensemble des composants et offre plus de solutions pour les développeurs. Nous employons également la notion de « subsumption » pour comparer l'entrée-sortie de la requête et des composants. Après sélection des composants adéquats, les propriétés non fonctionnelles sont employées comme un facteur distinctif pour raffiner le résultat de publication des services résultats.

Dans ce cadre, Les objectifs principaux de ce travail de thèse sont les suivants:

- Spécifier formellement ou semi-formellement l’aspect sémantique des entités en tenant compte de leurs propriétés fonctionnelles et non fonctionnelles. Les travaux existants traitent généralement les aspects non fonctionnels. A nôtre connaissance il n y’a pas de travaux qui prennent en compte simultanément les aspects fonctionnels et non fonctionnels. Les propriétés non fonctionnelles peuvent être déterminantes pour le bon fonctionnement du système, et doivent être prises en compte pour le choix d’une entité logicielle

- Développer une méthode de recherche et de découverte d’entités qui soit intégrable dans les environnements de développement existants.

Pour cela un état de l’art des techniques de recherche des services Web et des composants logiciels est développé. Une approche basée sur les ontologies pour la recherche des entités logicielles a été mise en œuvre. Cette approche intègre les techniques ciblant les aspects fonctionnels et celles ciblant les aspects non fonctionnels. Les premières traitent la description de l’aspect logique, les dernières traitent la description de l’aspect quantitatif.

Notre approche a été validée et mise en application par l’implantation de deux versions de nos processus de description et de recherche dans le prototype SEC. Celui-ci est lui-même implanté comme un composant logiciel qui peut être intégré dans les environnements de développement existants et couramment utilisés, comme Borland C++, Vb, DELPHIE et Jbuilder. Le développeur peut charger SEC, implanté comme composant persistant qui agit en tant que moteur de recherche intelligent pour les composants logiciels. Il génère une requête à partir des spécifications du développeur. Il traite ensuite la requête produite et localise automatiquement et présente une liste de composants conformes qui pourraient être employés dans la situation courante de développement. SEC aide aussi les utilisateurs novices à comprendre la structure interne des composants et à développer leurs propres projets. Nous avons entrepris de diverses expériences pour évaluer l'efficacité de la version la plus récente de SEC, appelée SEC+. Nos résultats sont encourageants. Ils montrent la supériorité des facteurs de précision et de rappel de notre prototype final SEC+, par rapport à notre version initiale SEC, et par rapport à d'autres systèmes de recherche.

Publications : Publications de Sofien Khemakhem