Text summarization techniques applied to source code summary generation and evaluation
Summary
Abstract. This dissertation explores the use of text summarization technology for generating automatic descriptions of source code artifacts. Firstly, the thesis reports the results of empirical studies aimed at investigating how developers summarize code artifacts when understanding them. These results are useful in explaining how developers abstract source code, in gaining insights about the comprehension process, in explaining the role of code elements in such a process, and for the development of automatic source code summarization tools. Secondly, the dissertation describes several approaches for creating short and accurate textual descriptions for various types of code entities. The results of the evaluations indicate that text summarization techniques are suitable for automatic source code summarization since developers generally agree with the summaries produced by the proposed methods. Thus, these summaries can be useful for improving software comprehension processes, which usually occur during software maintenance tasks. Esta tesis explora el uso de tecnologías de resumen de textos para la generación automática de descripciones de artefactos de código fuente. En primer lugar, la tesis reporta los resultados de estudios empíricos que tuvieron como propósito investigar cómo los programadores resumen artefactos de código, durante el proceso de compresión de los mismos. Estos resultados son útiles para explicar cómo los programadores sintetizan trozos de código fuente, para obtener conocimiento acerca del proceso de comprensión, para explicar el rol de las partes del artefacto en ese proceso, y para el desarrollo de herramientas de resumen automático de código fuente. En segundo lugar, este trabajo de tesis describe varios métodos para la creación automática de descripciones textuales, cortas y precisas, para varios tipos de artefactos de código. Los resultados de las evaluaciones indican que las técnicas de resumen de texto son adecuadas para el resumen automático de código fuente, teniendo en cuenta que los desarrolladores generalmente están de acuerdo con los resúmenes producidos mediante los métodos descritos. En consecuencia, estos resúmenes pueden ser útiles para mejorar los procesos de comprensión de software que usualmente ocurren cuando se realizan tareas de mantenimiento de software.