Mémoire de maîtrise (2025)
Résumé
Le développement logiciel moderne est souvent confronté à des défis de performance découlant d’un code sous-optimal, d’algorithmes inefficaces ou d’une gestion inadéquate des ressources. Le refactoring, technique traditionnellement employée pour améliorer la qualité et la maintenabilité du code sans en modifier le comportement, peut contribuer à atténuer ces problèmes. Alors que la recherche s’est largement penchée sur le lien entre refactoring et bugs fonctionnels, son influence sur la performance reste relativement peu étudiée. Dans ce mémoire, nous présentons deux études empiriques complémentaires examinant la relation entre les pratiques de refactoring et la performance logicielle. La première étude porte sur 255 projets Java open source, analysés à partir de données issues de l’API de GitHub et de RefactoringMiner. Nos résultats indiquent que les problèmes de performance sont fréquemment résolus par des modifications de la structure des classes et de la configuration des méthodes, avec l’opération « Change Variable Type » comme stratégie de refactoring la plus marquante. L’analyse statistique révèle que les commits liés à la performance sont 1,77 fois plus susceptibles de contenir des opérations de refactoring que les commits non liés à la performance. De plus, une classification manuelle de 300 instances de refactoring ciblant la performance met en évidence 11 motivations distinctes pour le refactoring dans ces contextes, ainsi que trois environnements principaux de mise en oeuvre. Fortes de ces constatations, nos recherches se poursuivent dans une deuxième étude consacrée à l’impact du refactoring sur le temps d’exécution dans 15 projets Java open source. À l’aide d’outils automatisés pour tracer les modifications de code et mesurer la performance, nous identifions les types de refactoring les plus souvent associés à des fluctuations de performance en particulier l’extraction de méthodes et l’inlining de variables et évaluons l’ampleur de ces changements. Nous soulignons également des facteurs contextuels qui influent sur la direction et l’ampleur des effets de performance, tels que la structure du code, la fréquence d’invocation des méthodes et la couverture de tests. Globalement, nos résultats soulignent la nature nuancée et ambivalente du refactoring : bien qu’il améliore la maintenabilité, il peut aussi avoir un impact significatif sur les performances, engendrant parfois des gains notables et occasionnellement des régressions. En proposant une méthodologie reproductible pour évaluer les variations de performance liées au refactoring, cette recherche offre des orientations précieuses aux développeurs et aux chercheurs désireux de concilier la qualité du code et l’efficacité à l’exécution.
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements
