Hakimi, Hafida (2017). Étude de l’impact de différentes sources d’informations sur la synthèse des entités de code logiciel. Mémoire de maîtrise électronique, Montréal, École de technologie supérieure.
Prévisualisation |
PDF
Télécharger (1MB) | Prévisualisation |
Prévisualisation |
PDF
Télécharger (510kB) | Prévisualisation |
Résumé
Les développeurs logiciel mentionnent ou discutent des entités/éléments de code (méthodes et classes) dans plusieurs sources d’informations logiciel telles que le code source, le site Stack Overflow, les discussions de développeurs, les rapports de bogues, etc. Pour aider les développeurs à comprendre rapidement les éléments de code, des recherches antérieures ont suggéré la synthèse de code. Alors que plusieurs travaux sur la synthèse de code ont utilisé le code source pour synthétiser les classes et les méthodes, il existe très peu de travaux menés sur l’utilisation de la documentation informelle pour la synthèse des éléments de code.
Dans ce présent mémoire, nous étudions l’utilisation de quatre différents types de sources d’informations pour synthétiser la mise en oeuvre et l’utilité des classes et des méthodes. Les sources d’informations examinées comprennent le code source, le Stack Overflow, les rapports de bogues et la combinaison des trois sources d’informations (code source, Stack Overflow et les rapports de bogues). Nous avons mené une étude auprès de 24 développeurs professionnels issus de différentes entreprises et institutions canadiennes. Les développeurs ont été invites à effectuer des tâches de synthèse de quatre éléments de code différents en utilisant le code source, le Stack Overflow, les rapports de bogues ou la combinaison de ces trois sources d’informations. Ces quatre éléments de code sont choisis parmi un ensemble de huit éléments de code issus de quatre projets Java open-source : Eclipse, JMeter, Tomcat, Netbeans.
Les synthèses fournies par les développeurs professionnels ont été évaluées par rapport à des synthèses fournies par des annotateurs.
Les résultats montrent que la performance des développeurs professionnels lors de la synthèse des éléments de code en termes de précision, rappel et F-mesure est meilleure par l’utilisation du code source et du Stack Overflow. Cependant, il n’existe pas de différences statistiquement significatives en termes de performances des développeurs professionnels lors de l’utilisation des quatre différents types de sources d’informations logiciel. Nous pouvons donc conclure que la documentation informelle (c’est-à-dire le Stack Overflow, les rapports de bogues ou la combinaison des sources d’informations logiciel) est aussi importante que le code source et qu’elle peut être utilisée pour effectuer la tâche de synthèse d’éléments de code.
Ces résultats sont intéressants et peuvent être utiles pour déterminer les informations pertinentes à inclure lors de la création d’outils de synthèse d’éléments de code.
Comme futurs travaux, il serait intéressant de mettre l’accent sur la stratégie adoptée par les développeurs lors de la synthèse des éléments de code lorsqu’ils utilisent du code source et la documentation informelle, et de définir les parties (c’est-à-dire, le texte en langage naturel, les exemples de code, les traces de pile, etc.) dont les développeurs tirent le plus d’informations lors de la préformation des tâches de synthèse de code.
Titre traduit
Study of the impact of different sources of information on the synthesis of software code elements
Résumé traduit
Software developers mention or discuss code elements (methods and classes) from multiple sources of software information such as source code, stack overflow, developer discussions, bug reports, etc. In order to help developers quickly understand code elements, previous research works have suggested code synthesis. Several works on code synthesis has used source code to synthesize classes and methods, there is a few work on using informal documentation to summarize code elements.
In this thesis, a study is conducted on the use of four different types of information sources to synthesize the implementation and usefulness of classes and methods. Sources of information examined includes source code, Stack Overflow, bug reports, and the combination of these three sources. A study was conducted with 24 professional developers from different Canadian companies and institutions. The developers were asked to perform tasks that summarize four different parts of the code using source code, stack overflow, bug reports, or the combination of these three sources of information. These four pieces of code are chosen from a set of code elements from four open-source projects Java : Eclipse, JMeter, Tomcat, Netbeans.
The summaries provided by the professional developers were evaluated against the summaries provided by three annotators.
The results show that developers are better synthesized when they use source code and Stack Overflow. However, there are no statistically significant differences in the accuracy of syntheses provided by developers when using four different sources of information. An empirical evidence states that informal documentation (such as Stack Overflow or bug reports) is as important as the source code and can be used to perform the code summarization task.
These results are interesting and can be useful in determining the relevant information when creating powerful and efficient automatic code-element summarization tools.
As a future work, it would be interesting to focus on the strategy adopted by developers when summarizing code elements using source code and informal documentation, and defining the parts (natural language text, code samples, stack traces, etc.) where developers get the most information from reproducing code synthesis tasks.
Type de document: | Mémoire ou thèse (Mémoire de maîtrise électronique) |
---|---|
Renseignements supplémentaires: | "Mémoire présenté à l’École de technologie supérieure comme exigence partielle à l’obtention de la maîtrise avec mémoire en génie logiciel". Comprend des références bibliographiques (pages 101-104). |
Mots-clés libres: | éléments de code, synthèse, code source, Stack Overflow, rapport de bogues, documentation informelle, documentation formelle, expérimentation contrôlée, développeurs professionnels |
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: | 20 janv. 2021 14:00 |
Dernière modification: | 20 janv. 2021 14:00 |
URI: | https://espace.etsmtl.ca/id/eprint/1992 |
Gestion Actions (Identification requise)
Dernière vérification avant le dépôt |