Passer à la navigation principale Passer à la recherche Passer au contenu principal

Leveraging informal documentation to automatically summarize the usage of code entities

Traduction de l'intitulé de la thèse: Tirer parti de la documentation informelle pour automatiquement résumer l’utilisation des entités de code
  • Amirhossein Naghshzan

Thèses et mémoires: Thèse de doctoratDoctorat en génie: Génie

Résumé

La génération automatique de résumé de code source génère des informations synthétisées à propos des méthodes et des classes (objectif, mise en oeuvre, utilisation) qui facilite la compréhension de ces entités de code. Ces résumés contiennent des informations précieuses qui peuvent aider et guider les développeurs de logiciels dans des tâches telles que le développement, la maintenance et le remaniement du code source. En général, les développeurs s’appuient sur la documentation officielle pour comprendre les entités de code et les méthodes API utilisées dans un projet. Cependant, les chercheurs ont identifié plusieurs cas où la documentation s’avère insuffisante ou inadéquate, ou encore présente des défauts dans la présentation de la structure complexe des méthodes. Ces éléments constituent des obstacles à l’apprentissage d’une API. Par conséquent, pour comprendre une API, les développeurs peuvent se référer à d’autres ressources telles que Stack Overflow, GitHub, etc. D’après les résultats de recherches récentes, la documentation non officielle est une source précieuse de connaissances pour générer des résumés de code. Cependant, la collecte de données à partir de ces sources exige du temps et des efforts supplémentaires de la part des développeurs afin de trouver et d’extraire les informations nécessaires, et ce d’autant plus que les données ne sont pas exactes et peuvent contenir des erreurs. Notre recherche propose une nouvelle approche pour résumer les entités de code en tirant parti des algorithmes d’apprentissage profond et de la documentation informelle, c’est-à-dire Stack Overflow, pour produire des résumés de haute qualité pour les méthodes API. Notre approche prend le nom de la méthode API en entrée, génère un résumé en langage naturel en utilisant les discussions Stack Overflow et fournit des informations sur les problèmes fréquents et les solutions potentielles liées à l’API. Dans la première partie de cette thèse, nous avons utilisé l’algorithme d’apprentissage automatique non supervisé TextRank pour générer des résumés extractifs des méthodes API. Pour évaluer la qualité des résumés générés, nous avons interrogé seize développeurs professionnels afin d’évaluer les résumés générés automatiquement et de les comparer à la documentation officielle d’Android. Nos résultats indiquent que bien que les développeurs utilisent généralement la documentation officielle, nos résumés générés sont des sources d’information précieuses, en particulier lorsqu’ils fournissent des détails d’implémentation. En outre, les développeurs ont convenu que nos résumés pourraient être utilisés comme une source complémentaire à la documentation officielle, aidant les développeurs de logiciels dans leurs tâches de développement et de maintenance. Dans la deuxième partie, nous avons amélioré la qualité des résumés en appliquant un algorithme d’apprentissage profond (BART) pour générer des résumés de type abstractif. Nous avons également créé un oracle de résumés générés par l’homme pour évaluer nos résumés générés automatiquement à l’aide des métriques ROUGE et BLEU, qui sont fréquemment utilisées dans la synthèse de code et plus particulièrement dans l’évaluation de résumés automatiques. Enfin, nous avons évalué la qualité de nos résumés de code par rapport aux résumés produits dans la première partie de notre recherche. Nos résultats indiquent que les algorithmes d’apprentissage profond améliorent la qualité des résumés de code générés. Les améliorations apportées par notre approche dans la deuxième partie de notre recherche ont considérablement augmenté la précision de notre approche, atteignant une moyenne de 57 percent pour la précision, 66 percent pour le rappel et 61 percent pour la mesure F. De plus, la nouvelle approche est plus performante en termes de temps d’exécution, s’exécutant 4,4 fois plus rapidement que la première. Dans la troisième et dernière partie de notre étude, nous avons appliqué l’algorithme BERTopic pour déterminer les sujets clés des discussions sur les API Android sur Stack Overflow, qui sert de source de documentation informelle importante. En outre, nous avons utilisé l’algorithme BERT pour identifier les problèmes fréquents et leurs solutions possibles, en créant des résumés brefs mais informatifs pour ces sujets. Pour évaluer l’efficacité de nos résultats, nous avons demandé à trente développeurs Android d’examiner ces résumés, en se concentrant sur leurs performances, leur cohérence et leur interopérabilité. Cela nous a permis d’obtenir des informations cruciales sur l’applicabilité de notre méthode dans le monde réel.
Date8 juin 2024
langue originaleAnglais américain
Établissement diplômant
  • École de technologie supérieure
SuperviseurSylvie Ratté (Directeur(-trice))

Mots-clés

  • synthèse
  • apprentissage automatique
  • apprentissage profond
  • NLP
  • LLMs

Citer cette ressource

'