Titre original :

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

Titre traduit :

Data Mining-based tools to support library update

Mots-clés en français :
  • Évolution Logicielle
  • Mise à jour des bibliothèques

  • Logiciels -- Développement
  • Logiciels -- Réingénierie
  • Exploration de données
  • Apprentissage automatique
  • Code source (informatique)
  • Pharo (langage de programmation)
Mots-clés en anglais :
  • Software Evolution
  • Library Update
  • Library Migration
  • Data Mining
  • Artificial Intelligence
  • Software Engineering

  • Langue : Anglais
  • Discipline : Informatique et applications
  • Identifiant : 2022ULILB028
  • Type de thèse : Doctorat
  • Date de soutenance : 28/10/2022

Résumé en langue originale

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.

Résumé traduit

Modern software can be characterized by high degree of reuse of external artefacts. Applications depend on multiple libraries and frameworks, which in turn can also depend on other libraries and frameworks. Like any other software, libraries evolve. They release new versions, often incompatible with the previous ones. This forces client applications that depend on those libraries to update their code in response to library evolution.Updating the dependencies can be a difficult and time consuming task for client developers. It involves repetitive operations and requires the knowledge about the changes that were made to the library. Knowledge that can be shared by library developers or extracted by automated tools from source code or commit history.In recent years, multiple approaches have been proposed to mine the data or apply machine learning techniques and extract knowledge about library update in forms of rules. However, most of those approaches only focus on client developers and do not consider the expertise of library developers. They consider only simple method-to-method replacements and are only designed for statically-typed programming languages.In this thesis, we address this gap in literature with five main contributions:(1) a survey of library and client developers from two industrial companies and an open-source community;(2) first detailed documentation of the Deprewriter approach and tool in Pharo which introduces deprecations that dynamically update client code with transformation rules;(3) a study of how Deprewriter was adopted by the Pharo community through the analysis of source code in Pharo~8 and a developer survey;(4) DepMiner --- a novel approach to infer the rules for Deprewriter based on the commit history of a project;(5) a generalization of DepMiner as a new holistic approach to support library developers in the task of library update.The results of the research reported in this thesis will advance the field of automated library update by exploring the perspective of library developers and the context of the dynamically-typed languages that were often overlooked in the previous studies.

  • Directeur(s) de thèse : Ducasse, Stéphane - Anquetil, Nicolas
  • Président de jury : Kouchnarenko, Olga
  • Rapporteur(s) : Robbes, Romain - De Roover, Coen
  • Laboratoire : Centre de Recherche en Informatique, Signal et Automatique de Lille - Centre Inria de l'Université de Lille
  • École doctorale : Ecole doctorale Mathématiques, sciences du numérique et de leurs interactions (Lille)

AUTEUR

  • Zaytsev, Oleksandr
Droits d'auteur : Ce document est protégé en vertu du Code de la Propriété Intellectuelle.
Accès libre