Machine learning for change-prone class prediction : a history-based approach

Detalhes bibliográficos
Ano de defesa: 2022
Autor(a) principal: Silva, Rogério de Carvalho
Orientador(a): Vergilio, Silvia Regina, 1966-
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Não Informado pela instituição
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://hdl.handle.net/1884/78778
Resumo: Orientador: Silvia Regina Vergilio
id UFPR_7aa04cce98adc2a6c25137324c5aa1bd
oai_identifier_str oai:acervodigital.ufpr.br:1884/78778
network_acronym_str UFPR
network_name_str Repositório Institucional da UFPR
repository_id_str
spelling Silva, Rogério de CarvalhoUniversidade Federal do Paraná. Setor de Ciências Exatas. Programa de Pós-Graduação em InformáticaVergilio, Silvia Regina, 1966-2022-10-27T13:49:03Z2022-10-27T13:49:03Z2022https://hdl.handle.net/1884/78778Orientador: Silvia Regina VergilioTese (doutorado) - Universidade Federal do Paraná, Setor de Ciências Exatas, Programa de Pós-Graduação em Informática. Defesa : Curitiba, 24/08/2022Inclui referênciasÁrea de concentração: Ciência da ComputaçãoResumo: À medida que os projetos de software evoluem, novos artefatos são criados, modificados ou removidos. Um dos principais artefatos gerados no desenvolvimento de software orientado a objetos é a classe. A classe tem um ciclo de vida muito dinâmico em projetos de software orientados a objetos. Classes são criadas, modificadas ou removidas devido a diferentes motivos, como por exemplo a necessidade de refatoração, resultando em custos adicionais ao projeto. Uma maneira de mitigar isso é detectar, logo nos estágios iniciais do projeto, classes que estão propensas a mudanças. Isso pode impactar positivamente na produtividade da equipe, na alocação de recursos e na qualidade do software desenvolvido. Vários trabalhos na literatura tentam prever a propensão a mudanças de uma classe. Alguns deles adotam abordagens baseadas em estatística, outros usam aprendizado de máquina (AM), muitas vezes coletando métricas de classe ou informações relacionadas a code smells como base para previsões. O problema com essas abordagens tradicionais é que elas não consideram a dependência temporal entre diferentes versões da classe ao longo do projeto, isto é, elas consideram que as instâncias de treinamento são independentes. Para preencher essa lacuna, este trabalho apresenta uma abordagem para predizer classes propensas a mudanças baseada no histórico de mudanças da classe. A abordagem utiliza o método de janela deslizante e adota como preditores, métricas estruturais, evolutivas, bem como frequência e diversidade de code smells. O trabalho também explora algumas técnicas de resample que geram dados sintéticos para aumentar o conjunto de dados e melhorar a capacidade preditiva dos modelos. Cinco projetos e quatro algoritmos de AM são usados na avaliação. Na grande maioria dos casos, a abordagem proposta supera a abordagem tradicional considerando a maioria dos indicadores. Além disso, observa-se que as medidas evolutivas desempenham um papel importante na predição de mudança em classes. Entre os quatro algoritmos de AM testados, Random Forest apresenta o melhor desempenho, e o uso de informações relacionadas aos code smells não impacta os resultados.Abstract: As software projects evolve, new artifacts are created, modified or removed. One of the main artifacts generated in the development of object-oriented software is the class. Classes have a very dynamic life cycle in object-oriented software projects. They can be created, modified or removed due to different reasons, e.g. need of refactoring, which results in additional costs to the project. One way to mitigate this is to detect, in the early stages of the project, classes that are prone to change. This can positively impact the team’s productivity, the allocation of resources and the quality of the software developed. To predict the change proneness of a class, most works in the literature adopt approaches based on statistics, others use machine learning (ML), often collecting class metrics or smells information as the basis for predictions. The problem with these traditional approaches is that they do not consider the temporal dependency between different versions of the class throughout the project, that is, they consider the training instances are independent. To fill this gap, this work presents an approach for predicting class change proneness, based on the history of the class changes. The approach uses the sliding window method and adopts structural and evolutionary metrics as predictors, as well as the frequency and diversity of code smells. The work also explores some resample techniques to generate synthetic data to increase the dataset and improve the predictive ability of the models. Five projects and four ML algorithms are used in the evaluation. In the great majority of the cases, our approach overcomes the traditional approach considering most of the indicators. We also highlight that evolutionary measures play an important role in class change-prone prediction. Among the four ML algorithms tested, Random Forest has the best performance, and the use of smell-based information does not impact the results.1 recurso online : PDF.application/pdfSoftware - DesenvolvimentoSoftware - ManutençãoCiência da ComputaçãoMachine learning for change-prone class prediction : a history-based approachinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisengreponame:Repositório Institucional da UFPRinstname:Universidade Federal do Paraná (UFPR)instacron:UFPRinfo:eu-repo/semantics/openAccessORIGINALR - D - ROGERIO DE CARVALHO SILVA.pdfapplication/pdf1740303https://acervodigital.ufpr.br/bitstream/1884/78778/1/R%20-%20D%20-%20ROGERIO%20DE%20CARVALHO%20SILVA.pdfe03f245c5c592bb1a2aa4630c304bd09MD51open access1884/787782022-10-27 10:49:03.612open accessoai:acervodigital.ufpr.br:1884/78778Repositório InstitucionalPUBhttp://acervodigital.ufpr.br/oai/requestinformacaodigital@ufpr.bropendoar:3082022-10-27T13:49:03Repositório Institucional da UFPR - Universidade Federal do Paraná (UFPR)false
dc.title.pt_BR.fl_str_mv Machine learning for change-prone class prediction : a history-based approach
title Machine learning for change-prone class prediction : a history-based approach
spellingShingle Machine learning for change-prone class prediction : a history-based approach
Silva, Rogério de Carvalho
Software - Desenvolvimento
Software - Manutenção
Ciência da Computação
title_short Machine learning for change-prone class prediction : a history-based approach
title_full Machine learning for change-prone class prediction : a history-based approach
title_fullStr Machine learning for change-prone class prediction : a history-based approach
title_full_unstemmed Machine learning for change-prone class prediction : a history-based approach
title_sort Machine learning for change-prone class prediction : a history-based approach
author Silva, Rogério de Carvalho
author_facet Silva, Rogério de Carvalho
author_role author
dc.contributor.other.pt_BR.fl_str_mv Universidade Federal do Paraná. Setor de Ciências Exatas. Programa de Pós-Graduação em Informática
dc.contributor.author.fl_str_mv Silva, Rogério de Carvalho
dc.contributor.advisor1.fl_str_mv Vergilio, Silvia Regina, 1966-
contributor_str_mv Vergilio, Silvia Regina, 1966-
dc.subject.por.fl_str_mv Software - Desenvolvimento
Software - Manutenção
Ciência da Computação
topic Software - Desenvolvimento
Software - Manutenção
Ciência da Computação
description Orientador: Silvia Regina Vergilio
publishDate 2022
dc.date.accessioned.fl_str_mv 2022-10-27T13:49:03Z
dc.date.available.fl_str_mv 2022-10-27T13:49:03Z
dc.date.issued.fl_str_mv 2022
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://hdl.handle.net/1884/78778
url https://hdl.handle.net/1884/78778
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 1 recurso online : PDF.
application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPR
instname:Universidade Federal do Paraná (UFPR)
instacron:UFPR
instname_str Universidade Federal do Paraná (UFPR)
instacron_str UFPR
institution UFPR
reponame_str Repositório Institucional da UFPR
collection Repositório Institucional da UFPR
bitstream.url.fl_str_mv https://acervodigital.ufpr.br/bitstream/1884/78778/1/R%20-%20D%20-%20ROGERIO%20DE%20CARVALHO%20SILVA.pdf
bitstream.checksum.fl_str_mv e03f245c5c592bb1a2aa4630c304bd09
bitstream.checksumAlgorithm.fl_str_mv MD5
repository.name.fl_str_mv Repositório Institucional da UFPR - Universidade Federal do Paraná (UFPR)
repository.mail.fl_str_mv informacaodigital@ufpr.br
_version_ 1847526264148066304