Mohsenzadeh Korayem, Elmira (2019). Towards automatic context-aware summarization of code entities. Mémoire de maîtrise électronique, Montréal, École de technolgie supérieure.
Prévisualisation |
PDF
Télécharger (4MB) | Prévisualisation |
Prévisualisation |
PDF
Télécharger (513kB) | Prévisualisation |
Résumé
Software developers are working with different methods and classes and in order to understand those that perplex them and–or that are part of their tasks, they need to tackle with a huge amount of information. Therefore, providing developers with high-quality summaries of code entities can help them during their maintenance and evolution tasks.
To provide useful information about the purpose of code entities, informal documentation (Stack Overflow) has been shown to be an important source of information that can be leveraged.
In this study, we investigate bug reports as a type of informal documentation and we apply machine learning to produce summaries of code entities (methods and classes) in bug reports. In the proposed approach, code entities are extracted using a technique in a form of an island parser that we implemented to identify code in bug reports. Additionally, we applied machine learning to select a set of useful sentences that will be part of the code entities’ summaries. We have used logistic regression as our machine learning technique to rank sentences based on their importance. To this aim, a corpus of sentences is built based on the occurrence of code entities in the sentences belonging to bug reports containing the code entities in question. In the last step, summaries have been evaluated using surveys to estimate the quality of produced summaries.
The results show that the automatically produced summaries can reduce time and effort to understand the usage of code entities. Specifically, the majority of participants found summaries extremely helpful to decrease the understanding time (43.5%) and the effort to understand the code entities (39.1%).
In the future, summaries can be produced by using other informal documentation such as mailing lists or stack overflow, etc. Additionally, the approach can be applied in practical settings. Consequently, it can be used within an IDE such as Eclipse to assist developers during their software maintenance and evolution tasks.
Titre traduit
Vers une synthèse automatique contextuelle des entités de code
Résumé traduit
Les développeurs de solutions informatiques utilisent différentes classes et méthodes dans l’accomplissement de leurs tâches quotidiennes. Dans cette perspective, ils doivent synthétiser une quantité importante d’information pour comprendre celles qui font parties de leurs tâches. Produire des résumés de qualités des dites informations permettrait d’aider les développeurs à accomplir leurs tâches de maintenance et d’évolution logicielle. Dans le but de fournir de l’information synthétisée sur l’utilisation des éléments de code, la documentation informelle comme les rapports de bugs peuvent être une source d’information pertinente.
Dans ce travail, nous proposons une approche basée sur une technique de machine learning, afin de produire des résumés pour les éléments de code (méthodes ou classes) présents dans les rapports de bogues. Dans l’approche suggérée, les éléments de code sont extraits en se basant sur une approche d’identification de code dans la documentation informelle, ensuite le résultat avec le contenu des bogues est utilisé par une technique de machine learning afin de générer un ensemble de phrase formant le résumé. Dans notre approche, nous appliquons l’algorithme d’apprentissage machine « logistic regression » pour classifier les phrases par importance. Le but est de construire un corpus de phrases pertinentes relatives aux éléments de code. En dernier lieu, une étude a été mené afin d’évaluer la qualité des résumés proposés. Pour finir, nous discuterons de l’utilité des résumés produits à partir de rapports de bugs en utilisant un algorithme de machine learning ainsi que des limitations de notre approche. Les résultats nous indiquent que les résumés peuvent réduire le temps et l’effort nécessaires à la compréhension des éléments de code. En effet, 43,5% trouvent que les résumés sont utiles pour réduire le temps de compréhension du code. En outre, 39,1% trouvent que les résumés sont utiles pour réduire l’effort de compréhension du code.
Dans le future, les résumés peuvent être produits à partir d’autres documentation. De plus, cette approche peut être appliquée dans des configurations pratiques. Par conséquent, il peut être utilisé dans un environnement de développement intégré tel que Eclipse pour aider les développeurs lors de leurs tâches de maintenance et d’évolution des logiciels.
Type de document: | Mémoire ou thèse (Mémoire de maîtrise électronique) |
---|---|
Renseignements supplémentaires: | "Thesis presented to École de technologie supérieure in partial fulfillment for the degree of a master's degree". Comprend des références bibliographiques (pages 67-69). |
Mots-clés libres: | résumé du code, entités de code, rapport de bogue, apprentissage automatique, documentation informelle, documentation formelle |
Directeur de mémoire/thèse: | Directeur de mémoire/thèse Guerrouj, Latifa |
Programme: | Maîtrise en ingénierie > Génie |
Date de dépôt: | 27 janv. 2020 20:33 |
Dernière modification: | 27 janv. 2020 20:33 |
URI: | https://espace.etsmtl.ca/id/eprint/2433 |
Gestion Actions (Identification requise)
Dernière vérification avant le dépôt |