Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de código

Detalhes bibliográficos
Autor(a) principal: Cayres, Leandro Ungari [UNESP]
Data de Publicação: 2021
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UNESP
Texto Completo: http://hdl.handle.net/11449/202725
Resumo: Uma característica de sistemas de software é o seu constante estado de evolução, em que diferentes tipos de modificações são aplicadas, as quais podem aumentar a complexidade do código-fonte, e consequentemente, reduzir a manutenabilidade do software. A refatoração de software é uma prática amplamente reconhecida para a redução de complexidade e reestruturação do código-fonte. Contudo, as abordagens existentes de identificação de oportunidades de refatorações apresentam diversas limitações, tanto em relação ao número de técnicas de refatoração disponíveis quanto à complexidade de modificações contempladas, o que pode não suprir as reais necessidades por parte dos desenvolvedores. Nesse sentido, este trabalho propõe um processo de aprendizado de modificações de código-fonte baseado em exemplos, com o intuito de identificar padrões sintáticos de modificações que propiciem a melhoria contínua do código-fonte, para que esses possam ser reaproveitadas e replicados no mesmo e em outros repositórios. O processo de aprendizado de modificações foi conduzido de modo individualizado em cada um dos repositórios. A partir dos resultados extraídos de um conjunto de repositórios, foi possível identificar um conjunto de instâncias de modificações simples, principalmente relacionadas com movimentação e renomeação de entidades de código-fonte, e também um conjunto de refatorações de software simples e compostas.
id UNSP_4c534e75e085865fea6d8dc5cfc0861c
oai_identifier_str oai:repositorio.unesp.br:11449/202725
network_acronym_str UNSP
network_name_str Repositório Institucional da UNESP
repository_id_str 2946
spelling Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de códigoLearning syntactic patterns using version history for automated suggestion of code changesHistórico de versãoPadrões de modificação de código-fonteManutenabilidade de softwareHistory versionPatterns of source code changesSoftware maintainabilityUma característica de sistemas de software é o seu constante estado de evolução, em que diferentes tipos de modificações são aplicadas, as quais podem aumentar a complexidade do código-fonte, e consequentemente, reduzir a manutenabilidade do software. A refatoração de software é uma prática amplamente reconhecida para a redução de complexidade e reestruturação do código-fonte. Contudo, as abordagens existentes de identificação de oportunidades de refatorações apresentam diversas limitações, tanto em relação ao número de técnicas de refatoração disponíveis quanto à complexidade de modificações contempladas, o que pode não suprir as reais necessidades por parte dos desenvolvedores. Nesse sentido, este trabalho propõe um processo de aprendizado de modificações de código-fonte baseado em exemplos, com o intuito de identificar padrões sintáticos de modificações que propiciem a melhoria contínua do código-fonte, para que esses possam ser reaproveitadas e replicados no mesmo e em outros repositórios. O processo de aprendizado de modificações foi conduzido de modo individualizado em cada um dos repositórios. A partir dos resultados extraídos de um conjunto de repositórios, foi possível identificar um conjunto de instâncias de modificações simples, principalmente relacionadas com movimentação e renomeação de entidades de código-fonte, e também um conjunto de refatorações de software simples e compostas.The continuous evolution state is a common to any software system, which developers conduct different types of code changes and may increase code complexity, resulting in the reduction of software maintainability. Software refactoring is a widely known practice to the reduction of complexity by the reestructuring of source code. However, the existing approaches to identify opportunities of refactorings present plenty of limitations, such as the number of available refactorings techniques and the complexity of their transformations, which may not supply the indeed needs of developers. From that, this study proposes a process of learning source code changes based on examples, to identify code patterns which further the continuous improvement of source code, and they allow the reuse and replication of them through the same and other repositories. We conducted this process trough each repository separately. From the obtained results, we identify a set of simple code changes, mainly related to move and rename modifications of code entities, and also, some of simple and composed software refactorings.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)CAPES: 88882.434383/2019-01Universidade Estadual Paulista (Unesp)Garcia, Rogério Eduardo [UNESP]Universidade Estadual Paulista (Unesp)Cayres, Leandro Ungari [UNESP]2021-02-17T21:16:02Z2021-02-17T21:16:02Z2021-01-26info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/11449/20272533004153073P280310125732593610000-0003-1248-528Xporinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UNESPinstname:Universidade Estadual Paulista (UNESP)instacron:UNESP2023-11-02T06:08:42Zoai:repositorio.unesp.br:11449/202725Repositório InstitucionalPUBhttp://repositorio.unesp.br/oai/requestopendoar:29462023-11-02T06:08:42Repositório Institucional da UNESP - Universidade Estadual Paulista (UNESP)false
dc.title.none.fl_str_mv Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de código
Learning syntactic patterns using version history for automated suggestion of code changes
title Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de código
spellingShingle Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de código
Cayres, Leandro Ungari [UNESP]
Histórico de versão
Padrões de modificação de código-fonte
Manutenabilidade de software
History version
Patterns of source code changes
Software maintainability
title_short Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de código
title_full Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de código
title_fullStr Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de código
title_full_unstemmed Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de código
title_sort Aprendizado de padrões sintáticos utilizando histórico de versão para sugestão automatizada de modificações de código
author Cayres, Leandro Ungari [UNESP]
author_facet Cayres, Leandro Ungari [UNESP]
author_role author
dc.contributor.none.fl_str_mv Garcia, Rogério Eduardo [UNESP]
Universidade Estadual Paulista (Unesp)
dc.contributor.author.fl_str_mv Cayres, Leandro Ungari [UNESP]
dc.subject.por.fl_str_mv Histórico de versão
Padrões de modificação de código-fonte
Manutenabilidade de software
History version
Patterns of source code changes
Software maintainability
topic Histórico de versão
Padrões de modificação de código-fonte
Manutenabilidade de software
History version
Patterns of source code changes
Software maintainability
description Uma característica de sistemas de software é o seu constante estado de evolução, em que diferentes tipos de modificações são aplicadas, as quais podem aumentar a complexidade do código-fonte, e consequentemente, reduzir a manutenabilidade do software. A refatoração de software é uma prática amplamente reconhecida para a redução de complexidade e reestruturação do código-fonte. Contudo, as abordagens existentes de identificação de oportunidades de refatorações apresentam diversas limitações, tanto em relação ao número de técnicas de refatoração disponíveis quanto à complexidade de modificações contempladas, o que pode não suprir as reais necessidades por parte dos desenvolvedores. Nesse sentido, este trabalho propõe um processo de aprendizado de modificações de código-fonte baseado em exemplos, com o intuito de identificar padrões sintáticos de modificações que propiciem a melhoria contínua do código-fonte, para que esses possam ser reaproveitadas e replicados no mesmo e em outros repositórios. O processo de aprendizado de modificações foi conduzido de modo individualizado em cada um dos repositórios. A partir dos resultados extraídos de um conjunto de repositórios, foi possível identificar um conjunto de instâncias de modificações simples, principalmente relacionadas com movimentação e renomeação de entidades de código-fonte, e também um conjunto de refatorações de software simples e compostas.
publishDate 2021
dc.date.none.fl_str_mv 2021-02-17T21:16:02Z
2021-02-17T21:16:02Z
2021-01-26
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/11449/202725
33004153073P2
8031012573259361
0000-0003-1248-528X
url http://hdl.handle.net/11449/202725
identifier_str_mv 33004153073P2
8031012573259361
0000-0003-1248-528X
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Estadual Paulista (Unesp)
publisher.none.fl_str_mv Universidade Estadual Paulista (Unesp)
dc.source.none.fl_str_mv reponame:Repositório Institucional da UNESP
instname:Universidade Estadual Paulista (UNESP)
instacron:UNESP
instname_str Universidade Estadual Paulista (UNESP)
instacron_str UNESP
institution UNESP
reponame_str Repositório Institucional da UNESP
collection Repositório Institucional da UNESP
repository.name.fl_str_mv Repositório Institucional da UNESP - Universidade Estadual Paulista (UNESP)
repository.mail.fl_str_mv
_version_ 1799964790636937216