JAIME Damien

Doctorant
Équipe : MoVe
Date d'arrivée : 15/07/2021
    Sorbonne Université - LIP6
    Boîte courrier 169
    Couloir 25-26, Étage 2, Bureau 203
    4 place Jussieu
    75252 PARIS CEDEX 05

Tel: 01 44 27 87 71,
https://lip6.fr/

Direction de recherche : Pascal POIZAT

Analyse de dépendances et évolution dans les écosystèmes logiciels

Dans les logiciels modernes, de petits changements peuvent avoir de grandes conséquences, comme cela a pu être observé lors du "left pad incident". La suppression de cette fonction de 10 lignes du registre du gestionnaire de packages npm, a causé des problèmes pour des milliers de projets qui en dépendaient, directement ou indirectement. L'enchevêtrement entre pièces les composant est une cause bien connue de la complexité des logiciels. C'est le cas aux bas niveaux avec des dépendances entre fonctions, méthodes ou classes. Mais des niveaux plus élevés, comme celui des écosystèmes logiciels, apportent encore plus à la complexité. L'objectif de la thèse est de proposer de nouvelles solutions, éventuellement basées sur l'apprentissage automatique, aidant les organisations à analyser leurs écosystèmes logiciels et à réaliser l'évolution au niveau de leurs dépendances. Dans cet objectif, la série de questions de recherche suivante sera abordée. RQ1. Quels sont les attributs de qualité pertinents, au niveau des dépendances logicielles, en lien avec l'évolution des écosystèmes logiciels ? RQ2. Quelles sont les métriques de qualité qui peuvent être associées aux graphes de dépendance, et comment sont-elles liées aux attributs de qualité de RQ1 ? RQ3. Est-il possible de définir des odeurs architecturales / anti-patrons en lien avec RQ2 ? RQ4. Les solutions aux questions RQ1 à RQ3 prennent-elles en charge la nature hétérogène (par exemple, plusieurs langages de programmation, présence à la fois de fichiers de code source et de configuration DevOps) des écosystèmes logiciels, et, sinon, est-il possible de les étendre ? RQ5. Les solutions aux questions RQ1 à RQ3 prennent-elles en charge la nature dynamique des nouvelles architectures logicielles (par exemple, basées sur des micro-services), et, sinon, est-il possible de les étendre ? RQ6. Est-il possible d'appliquer les solutions développées à des écosystèmes logicielles à l'échelle industrielle ? RQ7. Quelle est la perception des praticiens sur les solutions développées ? RQ8. Est-il possible de prendre en compte le coût humain (par exemple, par rapport à l'expertise des développeurs) dans l'évolution des écosystèmes logiciels ? RQ9. Les solutions d'apprentissage automatique existantes pour la détection des odeurs de code, l'analyse de la dette technique et la prédiction de la qualité peuvent-elles être étendues à l'analyse de l'évolution des dépendances dans les écosystèmes logiciels ? RQ10. Comment récupérer des données d'entraînement pour l'application de l'apprentissage automatique à notre contexte ? RQ11. Est-il possible d'automatiser l'évolution des dépendances dans les écosystèmes logiciels ?