Um catálogo de refatorações envolvendo expressões lambda em Java
Ano de defesa: | 2014 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Santa Maria
BR Ciência da Computação UFSM Programa de Pós-Graduação em Informática |
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://repositorio.ufsm.br/handle/1/5446 |
Resumo: | Programming language evolution provides room for improving existing programs. Developers can upgrade their projects, applying new features available in the latest language versions. However, during maintenance activities, the code artefacts can become distant from their original conception. In this context, the use of transformation techniques and processes can be interesting, as it reduces the error-proneness when improving source code structure. Refactoring is a process of improving the design of a software system, modifying its internal structure without changing its external observable behavior. From this scenario, this work presents a refactoring catalog focused on the new features of the Java language. Such refactorings are related to lambda expressions and seek to allow the transformation of features implemented in Java 7 for the current version 8. To evaluate the proposed refactorings applicability, we developed a static analysis and used it in a set of open source projects aiming to search for opportunities to apply those refactorings. |
id |
UFSM_3e3b2af245f5daabd0596bb8e5c5d117 |
---|---|
oai_identifier_str |
oai:repositorio.ufsm.br:1/5446 |
network_acronym_str |
UFSM |
network_name_str |
Manancial - Repositório Digital da UFSM |
repository_id_str |
|
spelling |
Um catálogo de refatorações envolvendo expressões lambda em JavaA catalog of refactorings involving lambda expressions in JavaRefatoraçãoExpressões lambdaClosuresRefactoringLambda expressionsClosuresCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOProgramming language evolution provides room for improving existing programs. Developers can upgrade their projects, applying new features available in the latest language versions. However, during maintenance activities, the code artefacts can become distant from their original conception. In this context, the use of transformation techniques and processes can be interesting, as it reduces the error-proneness when improving source code structure. Refactoring is a process of improving the design of a software system, modifying its internal structure without changing its external observable behavior. From this scenario, this work presents a refactoring catalog focused on the new features of the Java language. Such refactorings are related to lambda expressions and seek to allow the transformation of features implemented in Java 7 for the current version 8. To evaluate the proposed refactorings applicability, we developed a static analysis and used it in a set of open source projects aiming to search for opportunities to apply those refactorings.A evolução de uma linguagem de programação fornece espaços para melhorias de programas existentes. Dessa forma, desenvolvedores podem atualizar projetos de sistemas de software, aplicando os novos recursos disponíveis na linguagem. No entanto, ao adaptar, melhorar e modificar um sistema de software, seu código pode se afastar de sua concepção original. Nesse contexto, o uso de técnicas e processos de transformação pode ser interessante, pois reduz a possibilidade de erros ao realizar uma melhoria em uma estrutura de código, por exemplo. A refatoração é um processo de melhoria do projeto de um sistema de software, que altera sua estrutura interna, sem modificar seu comportamento externo observável. A partir desse cenário, este trabalho tem como principal objetivo apresentar um catálogo de refatorações direcionadas às novas funcionalidades da linguagem Java. Tais refatorações estão relacionadas às expressões lambda e visam permitir a transformação de construções implementadas em Java 7 para sua atual versão 8. Para avaliar a aplicabilidade das refatorações propostas, um conjunto de projetos de código aberto foi submetido a uma ferramenta de análise estática, desenvolvida para realizar buscas por oportunidades de refatoração.Universidade Federal de Santa MariaBRCiência da ComputaçãoUFSMPrograma de Pós-Graduação em InformáticaPiveta, Eduardo Kesslerhttp://lattes.cnpq.br/8687196768910831Vizzotto, Juliana Kaizerhttp://lattes.cnpq.br/4384914116033913Bois, André Rauber Duhttp://lattes.cnpq.br/3277487290886063Teixeira Júnior, Jânio Elias2015-04-272015-04-272014-08-28info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfapplication/pdfTEIXEIRA JÚNIOR, Jânio Elias. A CATALOG OF REFACTORINGS INVOLVING LAMBDA EXPRESSIONS IN JAVA. 2014. 92 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Santa Maria, Santa Maria, 2014.http://repositorio.ufsm.br/handle/1/5446porinfo:eu-repo/semantics/openAccessreponame:Manancial - Repositório Digital da UFSMinstname:Universidade Federal de Santa Maria (UFSM)instacron:UFSM2022-01-28T12:34:08Zoai:repositorio.ufsm.br:1/5446Biblioteca Digital de Teses e Dissertaçõeshttps://repositorio.ufsm.br/ONGhttps://repositorio.ufsm.br/oai/requestatendimento.sib@ufsm.br||tedebc@gmail.comopendoar:2024-07-29T10:47:48.257163Manancial - Repositório Digital da UFSM - Universidade Federal de Santa Maria (UFSM)false |
dc.title.none.fl_str_mv |
Um catálogo de refatorações envolvendo expressões lambda em Java A catalog of refactorings involving lambda expressions in Java |
title |
Um catálogo de refatorações envolvendo expressões lambda em Java |
spellingShingle |
Um catálogo de refatorações envolvendo expressões lambda em Java Teixeira Júnior, Jânio Elias Refatoração Expressões lambda Closures Refactoring Lambda expressions Closures CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
title_short |
Um catálogo de refatorações envolvendo expressões lambda em Java |
title_full |
Um catálogo de refatorações envolvendo expressões lambda em Java |
title_fullStr |
Um catálogo de refatorações envolvendo expressões lambda em Java |
title_full_unstemmed |
Um catálogo de refatorações envolvendo expressões lambda em Java |
title_sort |
Um catálogo de refatorações envolvendo expressões lambda em Java |
author |
Teixeira Júnior, Jânio Elias |
author_facet |
Teixeira Júnior, Jânio Elias |
author_role |
author |
dc.contributor.none.fl_str_mv |
Piveta, Eduardo Kessler http://lattes.cnpq.br/8687196768910831 Vizzotto, Juliana Kaizer http://lattes.cnpq.br/4384914116033913 Bois, André Rauber Du http://lattes.cnpq.br/3277487290886063 |
dc.contributor.author.fl_str_mv |
Teixeira Júnior, Jânio Elias |
dc.subject.por.fl_str_mv |
Refatoração Expressões lambda Closures Refactoring Lambda expressions Closures CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
topic |
Refatoração Expressões lambda Closures Refactoring Lambda expressions Closures CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
description |
Programming language evolution provides room for improving existing programs. Developers can upgrade their projects, applying new features available in the latest language versions. However, during maintenance activities, the code artefacts can become distant from their original conception. In this context, the use of transformation techniques and processes can be interesting, as it reduces the error-proneness when improving source code structure. Refactoring is a process of improving the design of a software system, modifying its internal structure without changing its external observable behavior. From this scenario, this work presents a refactoring catalog focused on the new features of the Java language. Such refactorings are related to lambda expressions and seek to allow the transformation of features implemented in Java 7 for the current version 8. To evaluate the proposed refactorings applicability, we developed a static analysis and used it in a set of open source projects aiming to search for opportunities to apply those refactorings. |
publishDate |
2014 |
dc.date.none.fl_str_mv |
2014-08-28 2015-04-27 2015-04-27 |
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 |
TEIXEIRA JÚNIOR, Jânio Elias. A CATALOG OF REFACTORINGS INVOLVING LAMBDA EXPRESSIONS IN JAVA. 2014. 92 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Santa Maria, Santa Maria, 2014. http://repositorio.ufsm.br/handle/1/5446 |
identifier_str_mv |
TEIXEIRA JÚNIOR, Jânio Elias. A CATALOG OF REFACTORINGS INVOLVING LAMBDA EXPRESSIONS IN JAVA. 2014. 92 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Santa Maria, Santa Maria, 2014. |
url |
http://repositorio.ufsm.br/handle/1/5446 |
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_ |
1814349734044762112 |