O documento discute refatoração de código, definindo-a como o processo de reestruturar um sistema sem alterar suas funcionalidades para tornar o código mais legível e de fácil manutenção. A refatoração pode ajudar a reduzir custos ao evitar problemas com códigos complexos e de difícil manutenção.
2. OBJETIVO
Auxiliar no desenvolvimento de sistemas orientados a
objetos implementados na linguagem Java que possuem
baixa reusabilidade de código, manutenção difícil e a
adição ou adequação a novos requisitos demandar muito
esforço do engenheiro de Software, programador, analista
de sistemas pontos que podem gerar grande custo ao
projeto.
2
3. TEMPO x GASTO
Tempo
Gasto
Figura 1 Estima-se que cerca de 50% do tempo de um engenheiro de Software é gasto com tarefas
de manutenção e compreensão de código
Fonte: Maia (2004)
3
4. CUSTOS x GASTOS
Custos
Gastos
Figura 2 ao longo das últimas três décadas mais de 60% dos custos de desenvolvimento de Software
das organizações foram gastos com manutenção.
Fonte: Maia (2004)
4
5. REFATORAÇÃO
A refatoração ajuda a tornar o código mais
legível e resolver problemas de códigos mal
escritos (MAIA,2004).
5
7. Motivos para usar a reforação
a) melhorar o projeto do Software;
b) ter um o Software mais fácil de entender a
nível de código;
c) programar mais rapidamente
7
8. VANTAGENS
a) a técnica de refatoração pode ser aplicada no
desenvolvimento e manutenção do Software;
b) refatoração possibilita o acréscimo de nova
funcionalidade de maneira fácil evitando a
desestruturação do código;
c) com o uso da refatoração gasta-se menor
tempo possível na manutenção a nível de código,
melhora a legibilidade e estrutura o código.
8
9. Quando Refatorar ?
Segundo Fowler (2004):
a) Código Duplicado;
b) Método Longo;
c) Comentários supérfulos;
d) Comandos switch
9
10. Ferramentas
a) XRefactoring:As linguagens compatíveis são C e
Java essa ferramenta possibilita a geração de documentação
no formato HTML.
b) RefactorIT: É uma ferramenta para refatoração que
pode integrada em várias IDEs.
c) JFactor:É uma ferramenta que permite a aplicação
automática da refatoração a programas em Java.
10
11. Resultados
a) Facilita no processo de manutenção e
desenvolvimento do Software
b) Pode ser aplicada a qualquer linguagem
orientada a objetos
c) Torna o Software flexivel para adição de novas
funcionalidades sem desestruração do código
d) mantém o comportamento do Software
11
12. Exemplo
SUBSTITUIR NÚMERO LITERAL POR
CONSTANTES SIMBÓLICAS
São números com valores especiais no sistemas
As vezes são usados em mais de um lugar
Dificultam a leitura e entendimento
double energiaPotencial(double massa, double
altura{
return massa * 9.81 * altura;
3.}
12
13. Código Refatorado
static final double CONSTANTE_GRAVTACIONAL = 9.81;
double energiaPotencial(double massa, double
altura){
return massa * CONSTANTE_GRAVTACIONAL * altura;
5.}
MECÂNICA
declare uma constante e atribua a ela o valor do número literal;
encontre aonde o número aparece;
veja se a mudança pode ser feita, caso positivo altere o número pela
constante;
compile;
assim que os números literal forem substituídos, teste.
13
14. Referências
MAIA, P. H. REFAX:Um arcabouço para desenvolvimento de
ferramamentas de refatoração baseado XML. Programa de Pós
Graduação em Ciência da Computação . Ceará, Fortaleza: UFC,
2004.
FOWLER, M. Refatoração Aperfeiçando o Projeto de Código
Existente (1ª Edição ed.). (A. Fernandes, Trad.) Porto Alegre - RS:
Bookman,2004.
Refactoring http://www.refactoring.com
14