Suporte a refatorações em um sistema de transformação de propósito geral

Detalhes bibliográficos
Ano de defesa: 2006
Autor(a) principal: SANTOS, Gustavo Alexandre dos
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Pernambuco
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: https://repositorio.ufpe.br/handle/123456789/2603
Resumo: A técnica de refatoração de código vem se tornando cada vez mais comum em processos de desenvolvimento de software. A reestruturação contínua durante o processo de desenvolvimento contribui para um aumento da qualidade do código em termos de legibilidade, modularidade e reusabilidade. Desta forma, ganha-se em produtividade no processo como um todo. Por esta razão, refatorações são fortemente estimuladas em metodologias ágeis, como Extreme Programming (XP). Apesar do benefício trazido pela aplicação de refatorações durante o desenvolvimento, sua execução manual costuma ser cansativa e suscetível a erros. Por isto, tem crescido a adoção de ferramentas para aplicação automática de refatorações. Embora estas ferramentas ofereçam uma grande vantagem em relação ao processo manual, elas compartilham uma limitação comum: oferecem suporte a um número limitado de refatorações. Quando da necessidade por parte do usuário de customizar ou definir novas refatorações, a tarefa se mostra custosa e pouco amigável, já que é necessária a alteração direta do código fonte das ferramentas existentes. Este trabalho apresenta o desenvolvimento de um sistema de transformação de propósito geral que permite, de forma amigável para o programador convencional, a definição e aplicação de refatorações. Tal sistema é desenvolvido como uma extensão de JaTS, um sistema de transformação para a linguagem Java. Entre as contribuições do trabalho aqui apresentado estão a definição de uma linguagem de transformação com suporte a refatorações e a implementação das refatorações Self Encapsulate Field e Extract Method