- Este evento já passou.
Identifying Technical Debt Through Code Comment Analysis
25 - agosto - 2017 | 14:00 - 17:00
Evento Navegação
O Programa Multi-institucional em Ciência da Computação (UFBA/UEFS/UNIFACS) convida a todos para a 29ª Defesa de Tese de Doutorado em Ciência da Computação.
Aluno: Mario André de Freitas Farias
Dia:25/08/2017
Local: Sala 12 – Instituto de Matemática e Estatística
Horário: 14H
Banca de Avaliação:
Prof. Dr. Manoel Gomes de Mendonça Neto (Orientador – UFBA)
Prof. Dr.Ivan do Carmo Machado(UFBA)
Prof. Dr. Rodrigo Rocha Gomes e Souza(UFBA)
Prof. Dr. Márcio de Oliveira Barros(UNIRIO)
Prof. Dr.Marcos Kalinowski(PUC-RIO)
The identification of technical debt (TD) is an important step to effectively manage TD items and make TD manageable and explicit to keep the amount of TD under control. TD identification is the first TD management activity, and it is essential to know what types of TD exist, where they are, and what their impact on the project is. In this context, researchers have developed automated approaches to identify TD items using indicators derived from source code metrics. However, those indicators do not always point to TD that developer teams consider real problems and cannot identify many types of relevant TD. This work starts from the premise that one must employ several TD identification strategies to identify debts automatically. Objective: Our strategy is to consider code comments as an information source for TD. Code comments are readily available and store a richness of semantic information written in natural language. Our goal is to propose an approach to support and automate the identification of different TD types through code comment analysis. Method: First, we proposed a model and a contextualized vocabulary for identifying TD. Next, we develop a tool named eXcomment. The tool extracts and filters comments from source code using the vocabulary aiming to filter comments having a TD context. We then experimentally explore, evaluate and evolve the approach using a family of experiments named FindTD. Work performed: We evolve the approach over four studies. First, we performed an exploratory study (FindTD I) to characterize the feasibility of the proposed model. Next, we performed a controlled experiment (FindTD II) extending FindTD I with an additional quantitative analysis. Based on its insights, we run FindTD III changing the original setup and controlling other variables of interest. Finally, we performed the FindTD IV to show that is possible to identify automatically TD items through code comments using a contextualized vocabulary. Results: Our findings indicate that the model, vocabulary, and eXcomment make possible to select a list of suitable comments to support TD identification automatically. The experimentation allowed us to evolve the model, vocabulary, and identify patterns that are useful to classify different types of debt. These experiments provided new evidence on how software engineers can use code comments to detect and classify TD items automatically. Conclusion: This thesis contributes to bridge the gap between the TD identification area and code comment analysis, successfully using code comments to detect several types of TD. The evidence indicates that exploring developers’ point of view (human factors) can be useful to improve the current practice of automatic TD identification based of source code with more contextual and qualitative data.