le 30 octobre 2025 à 14:00 à INRIA Lille
Le débogage des logiciels reste difficile et coûteux en raison de la complexité des systèmes, qui rend souvent difficile la compréhension de l’exécution des programmes et la recherche de l’origine des problèmes qu’ils comportent. Les paradigmes de programmation tels que la programmation orientée objet (POO) peuvent amplifier cette complexité en introduisant des concepts tels que l’encapsulation, les interactions entre objets et les couches d’abstraction. Pour déboguer un programme orienté objet, les développeurs disposent traditionnellement de debuggers (débogueurs) dotés de fonctionnalités telles que les breakpoints (points d’arrêt), steps (instruction de navigation) et d’une call-stack (d’une pile d’appels), qui leur permettent de naviguer dans le code source et les méthodes impliquées dans l’exécution d’un programme. Cependant, des recherches suggèrent que, lors de la maintenance de programmes orientés objet, les développeurs ne pensent pas seulement en termes de code source et de méthodes, mais aussi en termes de comportement des objets, de transitions d’état et d’interactions avec d’autres objets. Pour remédier à l’écart entre les outils de débogage et les informations dont les développeurs ont besoin lors du débogage, les chercheurs ont proposé l’object-centric debugging (débogage centré sur les objets). L’object-centric debugging est une approche qui utilise des outils de débogage focalisés sur des objets particuliers plutôt que sur des classes et des méthodes. Ces outils comprennent des object-centric breakpoints (points d’arrêt centrés sur les objets), qui suspendent l’exécution pour des objets spécifiques, et des débogueurs omniscients, qui permettent aux développeurs de capturer et d’explorer le comportement des objets pendant l’exécution. Bien que des évaluations de cette approche aient été proposées, à travers des benchmarks et des études de cas, des recherches supplémentaires sont nécessaires pour connaître l’impact du débogage centré sur les objets. L’objectif général de cette thèse est d’étudier l’impact de l’object-centric debugging et de proposer des solutions pour améliorer cette approche. Pour ce faire, nous avons mené une évaluation empirique des object-centric breakpoints. Nos résultats suggèrent que ces breakpoints pourraient aider les développeurs à gagner du temps lors du débogage. Cependant, ils révèlent également des limites dans les scénarios impliquant des bugs dans l’initialisation des objets. Nous avons mis ces résultats en relation avec les solutions de debugging object-centric basées sur des debuggers omniscients, en réalisant une étude de cas dans laquelle nous avons examiné des sessions de débogage avec des breakpoints object-centric et l’équivalent omniscient que nous avons implémenté, les Time-Traveling Object-Centric Breakpoints (TTOCBs). Nos observations suggèrent que les TTOCBs aideraient les développeurs à déboguer des scénarios pour lesquels les breakpoints object-centric semblent limités. Enfin, nous avons comparé les caractéristiques des debuggers object-centric existants avec les méthodologies de débogage décrites dans la littérature. Nous avons constaté que ces debuggers n’apportent pas de soutien technologique pour aider les développeurs à suivre la méthode de débogage systématique. Pour remédier à ce problème, nous proposons Scopeo, un debugger omniscient, interrogeable (via des requêtes) et centré sur les objets, qui introduit les exploration scopes (périmètres d’exploration). Les exploration scopes sont des sous-parties de l’exécution du programme que les développeurs peuvent créer et réutiliser dans le cadre de requêtes. Nous avons présenté une étude de cas illustrant la faisabilité du débogage à l’aide des exploration scopes et avons identifié des pistes potentielles pour de futures recherches.
M. Steven COSTIOU Université de Lille, INRIA Lille Nord Europe Directeur de thèse, M. Christophe DONY Université de Montpellier Examinateur, Mme Elisa GONZALEZ BOIX Vrije Universiteit Brussel (VUB) Rapporteure, M. Jannik LAVAL Université Lumière Lyon 2 Rapporteur, M. Walter RUDAMETKIN Centre Inria de l’Université de Rennes Examinateur.