Portal de Administração de Conferências - CEFET-MG, 20ª Semana de Ciência e Tecnologia do CEFET-MG

Tamanho da fonte: 
CONSTRUÇÃO DE DATASET DE PROPAGAÇÃO DE MODIFICAÇÕES EM SOFTWARE
Kecia Aline Marques Ferreira, Mívian Marques Ferreira, Samuel Augusto Oliveira Magalhães

Última alteração: 2024-09-23

Resumo


No cenário do desenvolvimento de software, a análise e a compreensão de propagação de modificações são essenciais para garantir a qualidade e a eficiência na manutenção de sistemas. Este trabalho visa contribuir para a análise do histórico de modificações colaterais (co-changes) realizadas em software. Uma co-change entre duas entidades do software ocorre quando elas são modificadas em uma mesma atividade de manutenção. Especificamente, o trabalho tem por objetivo construir uma base de dados históricos sobre co-changes em softwares de código aberto, desenvolvidos em Java e hospedados no GitHub. Para isso, foram estendidos e implementados os algoritmos de três heurísticas para mineração de dados de co-changes. Posteriormente, foi realizada a extensão da ferramenta CK Tool, uma ferramenta de coleta de métricas de software Java, para que ela passe a coletar os tipos de acoplamentos entre as classes do software. Utilizando-se a ferramenta CK Tool estendida e os programas em Python estendidos e implementados neste trabalho, foram coletados os seguintes dados em um conjunto de 336 softwares Java de código aberto hospedados no GitHub: dados de co-changes, métricas de software, tipos de acoplamento entre as classes e grafo de dependência das classes do software. A extração e análise dos repositórios demandaram um total de 204,78 horas de processamento na construção do conjunto de dados. O dataset construído será aplicado para a criação de um modelo preditivo de propagação de modificações em software que está sendo elaborado em uma tese de doutorado. Além disso, os programas e as ferramentas estendidas poderão ser utilizados em outros estudos empíricos acerca de modificações em software.

Palavras-chave


Manutenção de software. Propagação de modificações. Repositório de software. Mineração de repositório. Java.

É necessário inscrever-se na conferência para visualizar os documentos.