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. / 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.
Identifer | oai:union.ndltd.org:IBICT/oai:repositorio.ufsm.br:1/5446 |
Date | 28 August 2014 |
Creators | Teixeira Júnior, Jânio Elias |
Contributors | Piveta, Eduardo Kessler, Vizzotto, Juliana Kaizer, Bois, André Rauber Du |
Publisher | Universidade Federal de Santa Maria, Programa de Pós-Graduação em Informática, UFSM, BR, Ciência da Computação |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis |
Format | application/pdf |
Source | reponame:Repositório Institucional da UFSM, instname:Universidade Federal de Santa Maria, instacron:UFSM |
Rights | info:eu-repo/semantics/openAccess |
Relation | 100300000007, 400, 300, 300, 300, 300, 1cfb7530-fa3a-4c24-bc53-2e9457c38de6, 0f25522a-26e9-430d-8873-90ad4d6f2b4e, a28a3f9d-068c-4165-b538-7bab497c78dc, 41dd28aa-e335-47e6-844f-023f6f2ca56b |
Page generated in 0.1515 seconds