<  Retour au portail Polytechnique Montréal

Deep Reinforcement Learning in Software Engineering: Empirical Insights and Practical Guidelines

Paulina Stevia Nouwou Mindom

Thèse de doctorat (2025)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (3MB)
Afficher le résumé
Cacher le résumé

Résumé

Le génie logiciel vise à développer des approches structurées et économiques pour garantir des logiciels de haute qualité et fiables, à travers les processus de conception, développement, assurance qualité et maintenance. Choisir la bonne approche est essentielle, car la technique inadéquates peut compromettre la qualité du produit final et retarder sa livraison. Les revues de code et les tests manuels contribuent à améliorer la qualité des logiciels, mais ils sont coûteux, prennent du temps et n’éliminent pas toujours les fautes dans les systèmes complexes. Pour faire face ces défis, l’apprentissage automatique offre des solutions prometteuses pour automatiser certaines tâches du génie logiciel. Cependant, il est souvent difficile de savoir quelles approches d’automatisation conviennent le mieux à une tâche donnée. De plus, les approches actuelles sont confrontées à des défis comme la gestion de données non stationnaire ou la complexité implicite des tâches, ce qui souligne la nécessité d’études pratiques pour mieux cerner les limites de ces approches et améliorer leurs utilisations. Dans cette thèse, nous avons mené plusieurs études empiriques et développés un outil pour explorer des tâches clés du génie logiciel et évaluer l’efficacité des approches d’automatisation actuelles. Ces travaux s’appuient sur trois constats majeurs : (1) Les performances des approches d’automatisation actuelles varient considérablement d’une tâche à l’autre, ce qui souligne l’importance d’orienter les professionnels du génie logiciel vers les approches les plus adaptées; (2) les solutions dites « généralistes », pré-entraînées sur des données variées, s’adaptent plus rapidement à de nouvelles situations et réduisent les efforts d’entraînement, ce qui les rend particulièrement utiles pour les tâches complexes ou dynamiques; et finalement (3) les techniques classiques d’automatisation peinent à s’adapter aux évolutions constantes des données, mais des approches basées sur l’apprentissage continu pourraient apporter des améliorations notables.

Abstract

Software engineering focuses on developing structured and cost-efficient methodologies to ensure the delivery of high-quality, reliable software, through design, development, quality assurance, and maintenance. Selecting the right techniques is crucial, as inappropriate choices can undermine productivity and software quality. Manual peer reviews and testing improve software quality but are time-intensive and costly, often leading to undetected bugs in complex systems. To address these challenges, researchers can leverage Machine Learning techniques, such as Deep Reinforcement Learning, to automate Software Engineering tasks. Yet it is often unclear which automation techniques are suitable for the task at hand. Additionally, current automation techniques often struggle with task-specific challenges, such as non-stationary behavior and inherent complexity of tasks, highlighting the need for empirical studies to better understand the limitations of such automating techniques and optimize their applicability. In this thesis, we conduct several empirical studies and propose a framework that tackles widely used Software Engineering tasks and current Deep Reinforcement Learning techniques, to offer valuable recommendations and best practices for applying Deep Reinforcement Learning techniques to Software Engineering tasks. To do so, we built from the following observations: (1) Deep Reinforcement Learning techniques show significant performance differences within the same Software Engineering task, emphasizing the need for guidelines to assist practitioners in selecting the most appropriate technique for specific tasks; (2) unlike traditional Deep Reinforcement Learning techniques, pre-trained generalist agents adapt faster to new tasks and reduce training costs, making them more suitable for dynamic and resource-intensive Software Engineering tasks; and (3) Deep Reinforcement Learning techniques struggle with concept drift, but Continual Learning could improve adaptability and effectiveness when applied to dynamic software artifacts.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Foutse Khomh et John Mullins
URL de PolyPublie: https://publications.polymtl.ca/62960/
Université/École: Polytechnique Montréal
Date du dépôt: 26 août 2025 09:19
Dernière modification: 26 août 2025 11:11
Citer en APA 7: Nouwou Mindom, P. S. (2025). Deep Reinforcement Learning in Software Engineering: Empirical Insights and Practical Guidelines [Thèse de doctorat, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/62960/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document