Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1839
Title: Estudo do uso de vocabulários para analisar o impacto de relatórios de defeitos a código-fonte.
Other Titles: Study the use of vocabularies to analyze the impact of defect reports on source code.
???metadata.dc.creator???: CAVALCANTI, Diego Tavares.
???metadata.dc.contributor.advisor1???: FIGUEIREDO, Jorge César Abrantes de.
???metadata.dc.contributor.advisor2???: GUERRERO, Dalton Dario Serey.
???metadata.dc.contributor.referee1???: MASSONI, Tiago Lima.
???metadata.dc.contributor.referee2???: CHAVEZ, Christina Von Flach Garcia.
Keywords: Localização de defeitos - software;Vocabulário de software;Engenharia de software;Software - localização de defeitos;Relatórios de defeitos - software;Código-fonte;Manutenção de software;Desenvolvimento de software;Análise de impactos de relatórios de defeitos - software;Software maintenance;Software vocabulary;Defect Reports - Software;Análise de vocabulário - software
Issue Date: 26-Nov-2012
Publisher: Universidade Federal de Campina Grande
Citation: CAVALCANTI, Diego Tavares. Estudo do uso de vocabulários para analisar o impacto de relatórios de defeitos a código-fonte. 2012. 92f. (Dissertação de Mestrado em Ciência da Computação) Programa de Pós-graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande - Paraiba - Brasil, 2012. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1839
???metadata.dc.description.resumo???: Localizar e corrigir defeitos são tarefas comuns no processo de manutenção de software. Entretanto, a atividade de localizar entidades de código que são possivelmente defeituosas e que necessitam ser modificadas para a correção de um defeito, não é trivial. Geralmente, desenvolvedores realizam esta tarefa por meio de um processo manual de leitura e inspeção do código, bem como de informações cadastradas em relatórios de defeitos. De fato, é necessário que os desenvolvedores tenham um bom conhecimento da arquitetura e do design do software a fim de realizarem tal tarefa. Entretanto, este conhecimento fica espalhado por entre a equipe e requer tempo para ser adquirido por novatos. Assim, é necessário o desenvolvimento de técnicas que auxiliem na tarefa de análise de impacto de relatórios de defeitos no código, independente da experiência do desenvolvedor que irá executá-la. Neste trabalho, apresentamos resultados de um estudo empírico no qual avaliamos se a análise automática de vocabulários de relatórios de defeitos e de software pode ser útil na tarefa de localizar defeitos no código. Nele, analisamos similaridade de vocabulários como fator para sugerir classes que são prováveis de serem impactadas por um dado relatório de defeito. Realizamos uma avaliação com oito projetos maduros de código aberto, desenvolvidos em Java, que utilizam Bugzilla e JIRA como seus repositórios de defeitos. Nossos resultados indicam que a análise de ambos os vocabulários é, de fato, uma fonte valiosa de informação, que pode ser utilizada para agilizar a tarefa de localização de defeitos. Para todos os sistemas estudados, ao considerarmos apenas análise de vocabulário, vimos que, mesmo com um ranking contendo apenas 8% das classes de um projeto, foi possível encontrar classes relacionadas ao defeito buscado em até 75% dos casos. Portanto, podemos concluir que, mesmo que não possamos utilizar vocabulários de software e de relatórios de defeitos como únicas fontes de informação, eles certamente podem melhorar os resultados obtidos, ao serem combinados com técnicas complementares.
Abstract: Locating and fixing bugs described in bug reports are routine tasks in software development processes. A major effort must be undertaken to successfully locate the (possibly faulty) entities in the code that must be worked on. Generally, developers map bug reports to code through manual reading and inspection of both bug reports and the code itself. In practice, they must rely on their knowledge about the software architecture and design to perform the mapping in an efficient and effective way. However, it is well known that architectural and design knowledge is spread out among developers. Hence, the success of such a task is directly depending on choosing the right developer. In this paper, we present results of an empirical study we performed to evaluate whether the automated analysis of bug reports and software vocabularies can be helpful in the task of locating bugs. We conducted our study on eight versions of six mature Java open-source projects that use Bugzilla and JIRA as bug tracking systems. In our study, we have used Information Retrieval techniques to assess the similarity of bug reports and code entities vocabularies. For each bug report, we ranked ali code entities according to the measured similarity. Our results indicate that vocabularies are indeed a valuable source of information that can be used to narrow down the bug-locating task. For ali the studied systems, considering vocabulary similarity only, a Top 8% list of entities has about 75% of the target entities. We conclude that while vocabularies cannot be the sole source of information, they can certainly improve results if combined with other techniques.
Keywords: Localização de defeitos - software
Vocabulário de software
Engenharia de software
Software - localização de defeitos
Relatórios de defeitos - software
Código-fonte
Manutenção de software
Desenvolvimento de software
Análise de impactos de relatórios de defeitos - software
Software maintenance
Software vocabulary
Defect Reports - Software
Análise de vocabulário - software
???metadata.dc.subject.cnpq???: Ciência da Computação.
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1839
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
DIEGO TAVARES CAVALCANTI - DISSERTAÇÃO PPGCC 2012.pdfDiego Tavares Cavalcanti - Dissertação PPGCC 2012.12.56 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.