Por favor, use este identificador para citar o enlazar este ítem:
https://repositorio.ufpe.br/handle/123456789/38791
Comparte esta pagina
Registro completo de metadatos
Campo DC | Valor | Lengua/Idioma |
---|---|---|
dc.contributor.advisor | TEIXEIRA, Leopoldo Motta | - |
dc.contributor.author | LOLI, Samuel Bristot | - |
dc.date.accessioned | 2020-11-26T19:05:46Z | - |
dc.date.available | 2020-11-26T19:05:46Z | - |
dc.date.issued | 2020-09-11 | - |
dc.identifier.citation | LOLI, Samuel Bristot. Code smells no contexto de mapeamento objeto-relacional em projetos Java: um catálogo e uma ferramenta de detecção. 2020. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2020. | pt_BR |
dc.identifier.uri | https://repositorio.ufpe.br/handle/123456789/38791 | - |
dc.description.abstract | Más escolhas durante o desenvolvimento de software podem causar futuros problemas de manutenção e desempenho. Code smells são tipicamente utilizados como indicadores de tais problemas. Vários code smells foram propostos anteriormente com foco no código genérico. Neste trabalho, focamos nas especificidades do código Object Relational Mapping (ORM) em Java. Desenvolvedores normalmente utilizam frameworks ORM para abstrair a complexidade de acesso ao banco de dados. No entanto, quando mal utilizados podem causar problemas que afetam a manutenção e o desempenho geral do sistema. Isto posto, apresentamos um catálogo contendo oito code smells ORM extraídos do estado de pesquisa e da prática, por meio de uma combinação de Rapid Review RR e Grey Literature Review (GLR). Para cada smell, também apresentamos uma solução sugerida e discussão a cerca do tema. Para avaliar o catálogo, realizamos uma pesquisa com 84 participantes. A maioria dos participantes concorda que os code smells ORM são um problema e que as soluções sugeridas são adequadas. Além do catálogo, apresentamos uma ferramenta para detectar e sugerir soluções em quatro code smells por meio de análise estática do código. Avaliamos a ferramenta quanto à precisão e revocação utilizando uma pequena aplicação de referência desenvolvida com exemplos de smells e posteriormente em quatro projetos reais extraídos do Github e do GitLab do Instituto Federal de Santa Catarina (IFSC). Aplicamos a ferramenta também em 379 projetos para análise da difusão geral dos code smells ORM, detectando 2829 smells em 75% dos projetos analisados. Em conclusão, este trabalho contribui com uma maneira sistemática de descrever os code smells ORM em um catálogo inicial, que pode ser útil tanto para pesquisadores quanto para profissionais, avaliado positivamente pelos nossos resultados iniciais, além de uma ferramenta para detecção automática por meio de análise estática do código de um subconjunto dos smells definidos. | pt_BR |
dc.language.iso | por | pt_BR |
dc.publisher | Universidade Federal de Pernambuco | pt_BR |
dc.rights | openAccess | pt_BR |
dc.rights | Attribution-NonCommercial-NoDerivs 3.0 Brazil | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/br/ | * |
dc.subject | Engenharia da Computação | pt_BR |
dc.subject | ORM | pt_BR |
dc.subject | Code smells | pt_BR |
dc.subject | Java | pt_BR |
dc.title | Code smells no contexto de mapeamento objeto-relacional em projetos Java : um catálogo e uma ferramenta de detecção | pt_BR |
dc.type | masterThesis | pt_BR |
dc.contributor.advisor-co | CARTAXO, Bruno Falcão de Souza | - |
dc.contributor.authorLattes | http://lattes.cnpq.br/6906525639794139 | pt_BR |
dc.publisher.initials | UFPE | pt_BR |
dc.publisher.country | Brasil | pt_BR |
dc.degree.level | mestrado | pt_BR |
dc.contributor.advisorLattes | http://lattes.cnpq.br/2117651910340729 | pt_BR |
dc.publisher.program | Programa de Pos Graduacao em Ciencia da Computacao | pt_BR |
dc.description.abstractx | Bad choices during software development might lead to maintenance and performance issues. Code smells are typically used to indicate such problems. A number of smells have been proposed, usually focused on generic code problems. In this work, we focus on the specifics of Object-Relational Mapping (ORM) code in Java. Developers use ORM frameworks to abstract the complexity of accessing a database. However, when poorly used, frameworks can lead to problems that might affect maintenance and overall performance of the system. Therefore, we present a catalog of eight smells extracted from the state of research and practice, through a combination of rapid review and grey literature review. For each smell, we also present a suggested solution and rationale. To evaluate the catalog, we conducted a survey with 84 respondents. The majority of the respondents agree both that the code smells are a problem, as well as that the suggested solution is adequate. In addition to the catalog, we present a tool to detect and suggest solutions in four code smells through static code analysis. We evaluated the tool for precision and recall using a small reference application developed with some examples of smells and after using real projects extracted from Github and GitLab from the Federal Institute of Santa Catarina (IFSC). The tool will also be applied in 379 projects to analyze the general diffusion of ORM code smells detecting 2829 smells in 75% of the analyzed projects. In conclusion, this work contributes with a systematic way of describing ORM code smells and an initial catalog, which can be useful for researchers and practitioners, positively evaluated by our initial results. In addition, we present a tool that detects ORM code smells through static code analysis in an automated way. | pt_BR |
dc.contributor.advisor-coLattes | http://lattes.cnpq.br/3125607007070020 | pt_BR |
Aparece en las colecciones: | Dissertações de Mestrado Profissional - Ciência da Computação |
Ficheros en este ítem:
Fichero | Descripción | Tamaño | Formato | |
---|---|---|---|---|
DISSERTAÇÃO Samuel Bristot Loli.pdf | 3,32 MB | Adobe PDF | ![]() Visualizar/Abrir |
Este ítem está protegido por copyright original |
Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons