Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/ESBF-9P9MJ9
Full metadata record
DC FieldValueLanguage
dc.contributor.advisor1Marco Tulio de Oliveira Valentept_BR
dc.contributor.advisor-co1Ricardo Terra Nunes Bueno Villelapt_BR
dc.contributor.referee1Ricardo Terra Nunes Bueno Villelapt_BR
dc.contributor.referee2Eduardo Magno Lages Figueiredopt_BR
dc.contributor.referee3Nicolas Anquetilpt_BR
dc.contributor.referee4Nicolas Tsantalispt_BR
dc.creatorDanilo Ferreira e Silvapt_BR
dc.date.accessioned2019-08-13T01:20:11Z-
dc.date.available2019-08-13T01:20:11Z-
dc.date.issued2014-07-29pt_BR
dc.identifier.urihttp://hdl.handle.net/1843/ESBF-9P9MJ9-
dc.description.abstractExtract Method is a key refactoring for improving program comprehension and maintainability. However, recent empirical research shows that the refactoring tools designed to automate this refactoring are often underused. To tackle this issue, we propose a novel approach to identify and rank Extract Method opportunities that are directly automated by IDE-based refactoring tools. JExtract, the tool we built to implement our approach, recommends the extraction of code fragments into new methods that encapsulate structural dependencies, based on the design principle of separation of concerns. Our evaluation shows that JExtract is more effective (w.r.t. recall and precision) than current state-of-the-art tools.pt_BR
dc.description.resumoExtração de Método é uma refatoração chave para aprimorar a manutenibilidade de sistemas, visto que métodos pequenos com nomes significativos favorecem legibilidadee reúso de código. Por tais razões, Extração de Método é uma das refatorações mais populares e versáteis. Entretanto, estudos empíricos recentes indicam que ferramentas dedicadas a automação dessa refatoração são frequentemente sub-utilizadas e, maisimportante, não oferecem auxílio aos desenvolvedores na identificação de potenciais fragmentos de código a serem extraídos.Para suprir essa deficiência, propõe-se uma abordagem para identificar oportunidades de Extração de Método que podem ser aplicadas de forma automatizada por ferramentas de refatoração de IDEs. A abordagem utiliza uma heurística para ordenar as oportunidades identificadas, centrada no princípio de design de separação de responsabilidades. Especificamente, assume-se que as dependências estruturais estabelecidas por um fragmento de código candidato a extração devem ser bem diferente daquelas estabelecidas pelo código restante no método original. Em um primeiro estudo envolvendo um conjunto sintetizado de oportunidades de Extração de Método, introduzidas pela expansão de invocações de métodos (Inline Method), a abordagem proposta mostrou-se mais efetiva (considerando revocação e precisão) do que uma ferramenta que representa o estado da arte. Em um segundo estudo envolvendo 13 sistemas de código aberto, uma a abordagem proposta alcançou revocação global de 59,1%. Além disso, ao se tolerar pequenas variações em oportunidades de Extração de Método conhecidas (por exemplo, incluindo/excluindo umaúnica sentença de código), a revocação global sobe para 66,6%.pt_BR
dc.languagePortuguêspt_BR
dc.publisherUniversidade Federal de Minas Geraispt_BR
dc.publisher.initialsUFMGpt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectRefatoração Extração de Métodopt_BR
dc.subjectSistemas de recomendaçãopt_BR
dc.subjectde dependênciaspt_BR
dc.subjectConjuntopt_BR
dc.subject.otherSistemas de recomendaçãopt_BR
dc.subject.otherComputaçãopt_BR
dc.subject.otherEngenharia de softwarept_BR
dc.titleRecommending automated extract method refactoringspt_BR
dc.typeDissertação de Mestradopt_BR
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
daniloferreiraesilva.pdf3.41 MBAdobe PDFView/Open


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