Detalhes bibliográficos
Ano de defesa: |
2021 |
Autor(a) principal: |
Cayres, Leandro Ungari [UNESP] |
Orientador(a): |
Não Informado pela instituição |
Banca de defesa: |
Não Informado pela instituição |
Tipo de documento: |
Dissertação
|
Tipo de acesso: |
Acesso aberto |
Idioma: |
por |
Instituição de defesa: |
Universidade Estadual Paulista (Unesp)
|
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: |
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. |