Busca por oportunidades de refatoração para aplicação de padrões de projeto

Detalhes bibliográficos
Autor(a) principal: Pauli, Guinther de Bitencourt
Data de Publicação: 2014
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Manancial - Repositório Digital da UFSM
dARK ID: ark:/26339/0013000014cn2
Texto Completo: http://repositorio.ufsm.br/handle/1/5443
Resumo: It is difficult to maintain and to adapt poorly written code presenting shortcomings in its structure. Refactoring techniques are used to improve the source code and the structure of applications, making them better and easier to modify. Design patterns are reusable solutions used in similar problems in object-oriented systems, so there is no need to recreate the solutions. Applying design patterns in the context of refactoring in a corrective way becomes a desired activity in the life cycle of a specific software system. However, for medium and large-scale projects, the manual examination of artifacts to find problems and opportunities to apply a design pattern is a hard task. In this context, we present a set of metric-based heuristic functions to detect where a design pattern can be applied in a given project, more specifically, the Strategy, Factory Method, Template Method, Creation Method and Chain Constructors patterns. To evaluate the heuristic functions and its results we have also built a tool to show the results. This tool can examine source code traversing ASTs (Abstract Syntax Trees), searching for opportunities to apply the patterns, indicating the exact location in the source code where the pattern is suggested, also showing some evidences used in the detection.
id UFSM_47fb97913008db1f69e65a059358d1cd
oai_identifier_str oai:repositorio.ufsm.br:1/5443
network_acronym_str UFSM
network_name_str Manancial - Repositório Digital da UFSM
repository_id_str
spelling Busca por oportunidades de refatoração para aplicação de padrões de projetoSearching for refactoring opportunities to apply design patternsPadrões de projetoRefatoraçãoRefatoração para padrõesDesign patternsRefactoringRefactoring to patternsCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOIt is difficult to maintain and to adapt poorly written code presenting shortcomings in its structure. Refactoring techniques are used to improve the source code and the structure of applications, making them better and easier to modify. Design patterns are reusable solutions used in similar problems in object-oriented systems, so there is no need to recreate the solutions. Applying design patterns in the context of refactoring in a corrective way becomes a desired activity in the life cycle of a specific software system. However, for medium and large-scale projects, the manual examination of artifacts to find problems and opportunities to apply a design pattern is a hard task. In this context, we present a set of metric-based heuristic functions to detect where a design pattern can be applied in a given project, more specifically, the Strategy, Factory Method, Template Method, Creation Method and Chain Constructors patterns. To evaluate the heuristic functions and its results we have also built a tool to show the results. This tool can examine source code traversing ASTs (Abstract Syntax Trees), searching for opportunities to apply the patterns, indicating the exact location in the source code where the pattern is suggested, also showing some evidences used in the detection.Manter e adaptar código mal escrito, com problemas estruturais, é uma tarefa difícil. As técnicas de refatoração são usadas para melhorar o código e a estrutura de aplicações, aumentando sua qualidade e tornando-as mais fáceis de serem modificadas. Padrões de projeto são soluções reutilizáveis usadas para resolver problemas comumente encontrados em sistemas orientados a objetos. A aplicação de padrões de projeto no contexto de refatoração usando uma abordagem corretiva torna-se uma atividade interessante no ciclo de vida de um sistema de software. Contudo, para projetos de média e larga-escala, examinar manualmente os artefatos de software na busca por problemas e oportunidades para aplicar um determinado padrão de projeto é uma tarefa árdua e difícil. Nesse contexto, apresentamos um conjunto de funções heurísticas baseadas em métricas que permitem detectar onde um padrão de projeto pode ser aplicado nos artefatos de código de um determinado projeto, mais especificamente, os padrões de projeto Strategy, Factory Method, Template Method, Creation Method e Chain Constructors. Para avaliar as funções propostas, desenvolvemos uma ferramenta que avalia código-fonte e exibe possíveis oportunidades para aplicar uma refatoração rumo a tais padrões. Essa ferramenta foi desenvolvida usando-se ASTs (Abstract Syntax Trees), procurando por oportunidades de refatoração, indicando os locais no código fonte onde o padrão é sugerido e mostrando algumas evidências usadas para a detecção.Universidade Federal de Santa MariaBRCiência da ComputaçãoUFSMPrograma de Pós-Graduação em InformáticaPiveta, Eduardo Kesslerhttp://lattes.cnpq.br/8687196768910831Fontoura, Lisandra Manzonihttp://lattes.cnpq.br/8979575031016933Pimenta, Marcelo Soareshttp://lattes.cnpq.br/2202679279260042Pauli, Guinther de Bitencourt2015-03-312015-03-312014-08-27info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfapplication/pdfPAULI, Guinther de Bitencourt. SEARCHING FOR REFACTORING OPPORTUNITIES TO APPLY DESIGN PATTERNS. 2014. 98 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Santa Maria, Santa Maria, 2014.http://repositorio.ufsm.br/handle/1/5443ark:/26339/0013000014cn2porinfo:eu-repo/semantics/openAccessreponame:Manancial - Repositório Digital da UFSMinstname:Universidade Federal de Santa Maria (UFSM)instacron:UFSM2022-08-17T12:33:59Zoai:repositorio.ufsm.br:1/5443Biblioteca Digital de Teses e Dissertaçõeshttps://repositorio.ufsm.br/ONGhttps://repositorio.ufsm.br/oai/requestatendimento.sib@ufsm.br||tedebc@gmail.comopendoar:2022-08-17T12:33:59Manancial - Repositório Digital da UFSM - Universidade Federal de Santa Maria (UFSM)false
dc.title.none.fl_str_mv Busca por oportunidades de refatoração para aplicação de padrões de projeto
Searching for refactoring opportunities to apply design patterns
title Busca por oportunidades de refatoração para aplicação de padrões de projeto
spellingShingle Busca por oportunidades de refatoração para aplicação de padrões de projeto
Pauli, Guinther de Bitencourt
Padrões de projeto
Refatoração
Refatoração para padrões
Design patterns
Refactoring
Refactoring to patterns
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Busca por oportunidades de refatoração para aplicação de padrões de projeto
title_full Busca por oportunidades de refatoração para aplicação de padrões de projeto
title_fullStr Busca por oportunidades de refatoração para aplicação de padrões de projeto
title_full_unstemmed Busca por oportunidades de refatoração para aplicação de padrões de projeto
title_sort Busca por oportunidades de refatoração para aplicação de padrões de projeto
author Pauli, Guinther de Bitencourt
author_facet Pauli, Guinther de Bitencourt
author_role author
dc.contributor.none.fl_str_mv Piveta, Eduardo Kessler
http://lattes.cnpq.br/8687196768910831
Fontoura, Lisandra Manzoni
http://lattes.cnpq.br/8979575031016933
Pimenta, Marcelo Soares
http://lattes.cnpq.br/2202679279260042
dc.contributor.author.fl_str_mv Pauli, Guinther de Bitencourt
dc.subject.por.fl_str_mv Padrões de projeto
Refatoração
Refatoração para padrões
Design patterns
Refactoring
Refactoring to patterns
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic Padrões de projeto
Refatoração
Refatoração para padrões
Design patterns
Refactoring
Refactoring to patterns
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description It is difficult to maintain and to adapt poorly written code presenting shortcomings in its structure. Refactoring techniques are used to improve the source code and the structure of applications, making them better and easier to modify. Design patterns are reusable solutions used in similar problems in object-oriented systems, so there is no need to recreate the solutions. Applying design patterns in the context of refactoring in a corrective way becomes a desired activity in the life cycle of a specific software system. However, for medium and large-scale projects, the manual examination of artifacts to find problems and opportunities to apply a design pattern is a hard task. In this context, we present a set of metric-based heuristic functions to detect where a design pattern can be applied in a given project, more specifically, the Strategy, Factory Method, Template Method, Creation Method and Chain Constructors patterns. To evaluate the heuristic functions and its results we have also built a tool to show the results. This tool can examine source code traversing ASTs (Abstract Syntax Trees), searching for opportunities to apply the patterns, indicating the exact location in the source code where the pattern is suggested, also showing some evidences used in the detection.
publishDate 2014
dc.date.none.fl_str_mv 2014-08-27
2015-03-31
2015-03-31
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 PAULI, Guinther de Bitencourt. SEARCHING FOR REFACTORING OPPORTUNITIES TO APPLY DESIGN PATTERNS. 2014. 98 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Santa Maria, Santa Maria, 2014.
http://repositorio.ufsm.br/handle/1/5443
dc.identifier.dark.fl_str_mv ark:/26339/0013000014cn2
identifier_str_mv PAULI, Guinther de Bitencourt. SEARCHING FOR REFACTORING OPPORTUNITIES TO APPLY DESIGN PATTERNS. 2014. 98 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Santa Maria, Santa Maria, 2014.
ark:/26339/0013000014cn2
url http://repositorio.ufsm.br/handle/1/5443
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
application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Santa Maria
BR
Ciência da Computação
UFSM
Programa de Pós-Graduação em Informática
publisher.none.fl_str_mv Universidade Federal de Santa Maria
BR
Ciência da Computação
UFSM
Programa de Pós-Graduação em Informática
dc.source.none.fl_str_mv reponame:Manancial - Repositório Digital da UFSM
instname:Universidade Federal de Santa Maria (UFSM)
instacron:UFSM
instname_str Universidade Federal de Santa Maria (UFSM)
instacron_str UFSM
institution UFSM
reponame_str Manancial - Repositório Digital da UFSM
collection Manancial - Repositório Digital da UFSM
repository.name.fl_str_mv Manancial - Repositório Digital da UFSM - Universidade Federal de Santa Maria (UFSM)
repository.mail.fl_str_mv atendimento.sib@ufsm.br||tedebc@gmail.com
_version_ 1815172446811062272