Thèse soutenue

Outils basés sur l'exploration de données pour soutenir la mise à jour des bibliothèques

FR  |  
EN
Auteur / Autrice : Oleksandr Zaytsev
Direction : Stéphane DucasseNicolas Anquetil
Type : Thèse de doctorat
Discipline(s) : Informatique et applications
Date : Soutenance le 28/10/2022
Etablissement(s) : Université de Lille (2022-....)
Ecole(s) doctorale(s) : École doctorale Mathématiques, sciences du numérique et de leurs interactions (Lille ; 2021-....)
Partenaire(s) de recherche : Laboratoire : Centre de Recherche en Informatique, Signal et Automatique de Lille - Centre Inria de l'Université de Lille
Jury : Président / Présidente : Olga Kouchnarenko
Rapporteurs / Rapporteuses : Romain Robbes, Coen De Roover

Résumé

FR  |  
EN

Les logiciels modernes peuvent être caractérisés par un haut degré de réutilisation d'artefacts externes.Les applications dépendent de plusieurs bibliothèques et frameworks, qui peuvent à leur tour dépendre d'autres bibliothèques et frameworks. Comme tout autre logiciel, les bibliothèques évoluent. Elles publient de nouvelles versions, souvent incompatibles avec les précédentes. Cela oblige les applications clientes qui dépendent de ces bibliothèques à mettre à jour leur code en réponse à l'évolution des bibliothèques.La mise à jour des dépendances peut être une tâche difficile et chronophage pour les développeurs clients. Elle implique des opérations répétitives et nécessite la connaissance des modifications apportées à la bibliothèque. Ces connaissances peuvent être partagées par les développeurs de la bibliothèque ou extraites par des outils automatisés à partir du code source ou de l'historique des livraisons.Ces dernières années, de nombreuses approches ont été proposées pour exploiter les données ou appliquer des techniques d'apprentissage automatique et extraire des connaissances sur les mises à jour des bibliothèques sous forme de règles. Cependant, la plupart de ces approches se concentrent uniquement sur les développeurs des applications clients et ne prennent pas en compte l'expertise des développeurs de bibliothèques. Elles ne considèrent que les remplacements simples de méthode à méthode et ne sont conçues que pour les langages de programmation à typage statique.Dans cette thèse, nous abordons cette lacune dans la littérature avec cinq contributions principales :(1) une enquête auprès des développeurs de bibliothèques et de clients de deux entreprises industrielles et d'une communauté open-source ;(2) la première documentation détaillée de l'approche et de l'outil Deprewriter dans Pharo qui introduit des dépréciations qui mettent automatiquement à jour le code client avec des règles de transformation ;(3) une étude de la façon dont Deprewriter a été adopté par la communauté Pharo à travers l'analyse du code source dans Pharo~8 et une enquête auprès des développeurs ;(4) DepMiner --- une nouvelle approche pour déduire les règles de Deprewriter à partir de l'historique des livraisons d'un projet ;(5) une généralisation de DepMiner comme une nouvelle approche holistique pour aider les développeurs de bibliothèques dans la tâche de mise à jour des bibliothèques.Les résultats rapportés dans cette thèse font progresser le domaine de la mise à jour automatique des bibliothèques en explorant la perspective des développeurs de bibliothèques et le contexte des langages à typage dynamique qui ont souvent été négligés dans les études précédentes.