Busca por oportunidades de refatoração para aplicação de padrões de projeto
Autor(a) principal: | |
---|---|
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 |