L’essor du logiciel libre et open source favorise le développement par réutilisation de bibliothèques logicielles disponibles au sein d’écosystèmes tels que celui de Java/Maven. Cette pratique offre des avantages, notamment en termes de temps de développement.
Cependant, elle soulève aussi des problématiques de maintenance, renforcées par la présence de dépendances entre les bibliothèques elles-mêmes. Au-delà des dépendances directes d'un projet, il est crucial d'analyser l'ensemble de sa chaîne d'approvisionnement logicielle.
Dans cette thèse, réalisée en collaboration avec un partenaire industriel, l'accent est mis sur l'analyse de la qualité et la maintenance des projets en fonction de leur chaine d’approvisionnement vue sous le prisme de leurs dépendances logicielles directes et indirectes. Plus largement, l'étude concerne les écosystèmes de dépendances à une échelle globale. La première contribution de cette thèse est une analyse rigoureuse de la littérature portant sur les métriques de qualité des dépendances logicielles. Cette analyse révèle la richesse des métriques existantes, mais aussi la nécessité de fournir des moyens efficaces pour associer ces métriques aux graphes de dépendances des projets et des écosystèmes, souvent de très grande taille.
Pour répondre à cette problématique, une seconde contribution propose des approches outillées pour la fouille de graphes de dépendances à l'échelle d'un écosystème, l'étiquetage par des métriques de qualité de dépendances et le requêtage efficace de grands graphes de dépendances. Au-delà de la mesure de la qualité d'un projet en termes de dépendances, il est crucial de pouvoir réagir à des problématiques telles que l’obsolescence de bibliothèques ou la présence de vulnérabilités.
Pour cela, une troisième contribution de cette thèse concerne une approche, basée sur la programmation linéaire, permettant de proposer des plans de changement de dépendances logicielles intégrant les préférences utilisateur en termes de qualité, tout en minimisant les incompatibilités.
Les outils et les jeux de données développés dans le cadre de cette thèse sont libres et open source, certains ayant été utilisés comme base au "Mining Challenge" d'une conférence du domaine.