SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
REFATORAÇÃO
 http://www.refactoring.com



       CAMILO LOPES
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
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
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
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
DEFINIÇÃO REFATORAÇÃO


Refatoração é o processo de reestruturar o
sistema sem alterar suas funcionalidades.
             (Fowler,2004).




                      6
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
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
Quando Refatorar ?
Segundo Fowler (2004):

a) Código Duplicado;

b) Método Longo;

c) Comentários supérfulos;

d) Comandos switch

                     9
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
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
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
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
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
DUVIDAS?
    CONTATO: camilosi@hotmail.com




    http://camilolopes.wordpress.com





               OBRIGADO!


                           15

Weitere ähnliche Inhalte

Was ist angesagt?

Geração de código linguagem c
Geração de código   linguagem cGeração de código   linguagem c
Geração de código linguagem cJefferson Bessa
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem corvel
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 
Instruções de iteração e atribuição composta
Instruções de iteração e atribuição compostaInstruções de iteração e atribuição composta
Instruções de iteração e atribuição compostaDaniel Araújo
 
REfacTool - Uma ferramenta de refactoring para disciplinar anotações em linha...
REfacTool - Uma ferramenta de refactoring para disciplinar anotações em linha...REfacTool - Uma ferramenta de refactoring para disciplinar anotações em linha...
REfacTool - Uma ferramenta de refactoring para disciplinar anotações em linha...Antonio Correia
 
Aula 6 emu8086
Aula 6   emu8086Aula 6   emu8086
Aula 6 emu8086LCCIMETRO
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programaçãoLCCIMETRO
 

Was ist angesagt? (11)

Geração de código linguagem c
Geração de código   linguagem cGeração de código   linguagem c
Geração de código linguagem c
 
Seminário: C++
Seminário: C++Seminário: C++
Seminário: C++
 
Introducao a LPC
Introducao a LPCIntroducao a LPC
Introducao a LPC
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Compiladores 1
Compiladores 1Compiladores 1
Compiladores 1
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Instruções de iteração e atribuição composta
Instruções de iteração e atribuição compostaInstruções de iteração e atribuição composta
Instruções de iteração e atribuição composta
 
REfacTool - Uma ferramenta de refactoring para disciplinar anotações em linha...
REfacTool - Uma ferramenta de refactoring para disciplinar anotações em linha...REfacTool - Uma ferramenta de refactoring para disciplinar anotações em linha...
REfacTool - Uma ferramenta de refactoring para disciplinar anotações em linha...
 
Aula 6 emu8086
Aula 6   emu8086Aula 6   emu8086
Aula 6 emu8086
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programação
 

Andere mochten auch

Refactoring for Design Smells - ICSE 2014 Tutorial
Refactoring for Design Smells - ICSE 2014 TutorialRefactoring for Design Smells - ICSE 2014 Tutorial
Refactoring for Design Smells - ICSE 2014 TutorialTushar Sharma
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Eduardo Bohrer
 
TDD And Refactoring
TDD And RefactoringTDD And Refactoring
TDD And RefactoringNaresh Jain
 
Construcao de uma balança simples para medir tensao superficial de liquidos
Construcao de uma balança simples para medir tensao superficial de liquidosConstrucao de uma balança simples para medir tensao superficial de liquidos
Construcao de uma balança simples para medir tensao superficial de liquidosGrupo de Pesquisa em Nanoneurobiofisica
 
Foodscapes Simplesmente Genial
Foodscapes   Simplesmente GenialFoodscapes   Simplesmente Genial
Foodscapes Simplesmente GenialCES FGV
 
Apresentação Symantec no "Upgrade" da ArmRebel
Apresentação Symantec no "Upgrade" da ArmRebelApresentação Symantec no "Upgrade" da ArmRebel
Apresentação Symantec no "Upgrade" da ArmRebelRossito
 
Política Nacional de Mudanças Climáticas - OC
Política Nacional de Mudanças Climáticas - OCPolítica Nacional de Mudanças Climáticas - OC
Política Nacional de Mudanças Climáticas - OCCES FGV
 
Entrevista Estadão
Entrevista EstadãoEntrevista Estadão
Entrevista EstadãoCES FGV
 
Cartilha Setembro Verde
Cartilha Setembro VerdeCartilha Setembro Verde
Cartilha Setembro VerdeCES FGV
 
Engajamento para Erradicação do Trabalho Escravo no Brasil
Engajamento para Erradicação do Trabalho Escravo no BrasilEngajamento para Erradicação do Trabalho Escravo no Brasil
Engajamento para Erradicação do Trabalho Escravo no BrasilCES FGV
 

Andere mochten auch (20)

Refatoracao
RefatoracaoRefatoracao
Refatoracao
 
Refactoring for Design Smells - ICSE 2014 Tutorial
Refactoring for Design Smells - ICSE 2014 TutorialRefactoring for Design Smells - ICSE 2014 Tutorial
Refactoring for Design Smells - ICSE 2014 Tutorial
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
 
Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015
 
TDD And Refactoring
TDD And RefactoringTDD And Refactoring
TDD And Refactoring
 
Sobrexploração dos Mares
Sobrexploração dos MaresSobrexploração dos Mares
Sobrexploração dos Mares
 
Construcao de uma balança simples para medir tensao superficial de liquidos
Construcao de uma balança simples para medir tensao superficial de liquidosConstrucao de uma balança simples para medir tensao superficial de liquidos
Construcao de uma balança simples para medir tensao superficial de liquidos
 
Parto bajo el agua
Parto bajo el aguaParto bajo el agua
Parto bajo el agua
 
Twain.la historia del inválido
Twain.la historia del inválidoTwain.la historia del inválido
Twain.la historia del inválido
 
El inefable numero pi
El inefable numero piEl inefable numero pi
El inefable numero pi
 
Foodscapes Simplesmente Genial
Foodscapes   Simplesmente GenialFoodscapes   Simplesmente Genial
Foodscapes Simplesmente Genial
 
Apresentação Symantec no "Upgrade" da ArmRebel
Apresentação Symantec no "Upgrade" da ArmRebelApresentação Symantec no "Upgrade" da ArmRebel
Apresentação Symantec no "Upgrade" da ArmRebel
 
Arte com papel
Arte com papel Arte com papel
Arte com papel
 
Política Nacional de Mudanças Climáticas - OC
Política Nacional de Mudanças Climáticas - OCPolítica Nacional de Mudanças Climáticas - OC
Política Nacional de Mudanças Climáticas - OC
 
Entrevista Estadão
Entrevista EstadãoEntrevista Estadão
Entrevista Estadão
 
Cartilha Setembro Verde
Cartilha Setembro VerdeCartilha Setembro Verde
Cartilha Setembro Verde
 
Engajamento para Erradicação do Trabalho Escravo no Brasil
Engajamento para Erradicação do Trabalho Escravo no BrasilEngajamento para Erradicação do Trabalho Escravo no Brasil
Engajamento para Erradicação do Trabalho Escravo no Brasil
 

Ähnlich wie Seminario Refatoracao

Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 
Reengenharia de Software
Reengenharia de SoftwareReengenharia de Software
Reengenharia de SoftwareRafael Berto
 
Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
Estudos de caso reais de reutilização de Software A seguir são apresentados a...
Estudos de caso reais de reutilização de Software A seguir são apresentados a...Estudos de caso reais de reutilização de Software A seguir são apresentados a...
Estudos de caso reais de reutilização de Software A seguir são apresentados a...josecarlos413721
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 RefactoringWildtech
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshopguestd37c23
 
Reuso de software
Reuso de softwareReuso de software
Reuso de softwarerebekinha
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateRicardo Rinco
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaFernando Camargo
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve reviewLaís Berlatto
 
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATEESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATEFernando A. Barbeiro Campos
 
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisSimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisCaio Ribeiro Pereira
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioRalph Rassweiler
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 

Ähnlich wie Seminario Refatoracao (20)

Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Reengenharia de Software
Reengenharia de SoftwareReengenharia de Software
Reengenharia de Software
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Estudos de caso reais de reutilização de Software A seguir são apresentados a...
Estudos de caso reais de reutilização de Software A seguir são apresentados a...Estudos de caso reais de reutilização de Software A seguir são apresentados a...
Estudos de caso reais de reutilização de Software A seguir são apresentados a...
 
Aula13
Aula13Aula13
Aula13
 
Aula13
Aula13Aula13
Aula13
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 Refactoring
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshop
 
Reuso de software
Reuso de softwareReuso de software
Reuso de software
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em Java
 
Programando php com excelência
Programando php com excelênciaProgramando php com excelência
Programando php com excelência
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve review
 
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATEESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
 
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisSimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
 
Síntese do Fórum do livro-apf Outubro
Síntese do Fórum do livro-apf  OutubroSíntese do Fórum do livro-apf  Outubro
Síntese do Fórum do livro-apf Outubro
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócio
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 

Mehr von Camilo Lopes

Mitos e verdades startup
Mitos e verdades startupMitos e verdades startup
Mitos e verdades startupCamilo Lopes
 
Usecash - Meio de Pagamento através do Troco
Usecash - Meio de Pagamento através do TrocoUsecash - Meio de Pagamento através do Troco
Usecash - Meio de Pagamento através do TrocoCamilo Lopes
 
Tdc2014 scrum remoto rola ou nao rola
Tdc2014  scrum remoto rola ou  nao rolaTdc2014  scrum remoto rola ou  nao rola
Tdc2014 scrum remoto rola ou nao rolaCamilo Lopes
 
Apresentando Scrum ao cliente
Apresentando Scrum ao clienteApresentando Scrum ao cliente
Apresentando Scrum ao clienteCamilo Lopes
 
ITS de Startup para Startups
ITS  de Startup para StartupsITS  de Startup para Startups
ITS de Startup para StartupsCamilo Lopes
 
Overview about AngularJS Framework
Overview about AngularJS Framework Overview about AngularJS Framework
Overview about AngularJS Framework Camilo Lopes
 
Start-up adotando Scrum
Start-up adotando ScrumStart-up adotando Scrum
Start-up adotando ScrumCamilo Lopes
 
Como ser escritor no brasil
Como ser escritor no brasilComo ser escritor no brasil
Como ser escritor no brasilCamilo Lopes
 
Boas práticas com TDD
Boas práticas com TDD Boas práticas com TDD
Boas práticas com TDD Camilo Lopes
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberCamilo Lopes
 
Scrum in few minutes
Scrum in few minutesScrum in few minutes
Scrum in few minutesCamilo Lopes
 
Convencendo o cliente usar Scrum 5min
Convencendo o cliente usar Scrum 5minConvencendo o cliente usar Scrum 5min
Convencendo o cliente usar Scrum 5minCamilo Lopes
 
Guia JEE com Frameworks
Guia JEE com FrameworksGuia JEE com Frameworks
Guia JEE com FrameworksCamilo Lopes
 
Palestra Exchange Program - NewZealand
Palestra Exchange Program - NewZealandPalestra Exchange Program - NewZealand
Palestra Exchange Program - NewZealandCamilo Lopes
 
Guia de Bolso SCJP
Guia de Bolso SCJPGuia de Bolso SCJP
Guia de Bolso SCJPCamilo Lopes
 

Mehr von Camilo Lopes (19)

Mitos e verdades startup
Mitos e verdades startupMitos e verdades startup
Mitos e verdades startup
 
Usecash - Meio de Pagamento através do Troco
Usecash - Meio de Pagamento através do TrocoUsecash - Meio de Pagamento através do Troco
Usecash - Meio de Pagamento através do Troco
 
Tdc2014 scrum remoto rola ou nao rola
Tdc2014  scrum remoto rola ou  nao rolaTdc2014  scrum remoto rola ou  nao rola
Tdc2014 scrum remoto rola ou nao rola
 
Apresentando Scrum ao cliente
Apresentando Scrum ao clienteApresentando Scrum ao cliente
Apresentando Scrum ao cliente
 
ITS de Startup para Startups
ITS  de Startup para StartupsITS  de Startup para Startups
ITS de Startup para Startups
 
Overview about AngularJS Framework
Overview about AngularJS Framework Overview about AngularJS Framework
Overview about AngularJS Framework
 
Start-up adotando Scrum
Start-up adotando ScrumStart-up adotando Scrum
Start-up adotando Scrum
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
Como ser escritor no brasil
Como ser escritor no brasilComo ser escritor no brasil
Como ser escritor no brasil
 
Boas práticas com TDD
Boas práticas com TDD Boas práticas com TDD
Boas práticas com TDD
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saber
 
Mock with Mockito
Mock with MockitoMock with Mockito
Mock with Mockito
 
Scrum in few minutes
Scrum in few minutesScrum in few minutes
Scrum in few minutes
 
Convencendo o cliente usar Scrum 5min
Convencendo o cliente usar Scrum 5minConvencendo o cliente usar Scrum 5min
Convencendo o cliente usar Scrum 5min
 
Guia JEE com Frameworks
Guia JEE com FrameworksGuia JEE com Frameworks
Guia JEE com Frameworks
 
Palestra Exchange Program - NewZealand
Palestra Exchange Program - NewZealandPalestra Exchange Program - NewZealand
Palestra Exchange Program - NewZealand
 
Guia de Bolso SCJP
Guia de Bolso SCJPGuia de Bolso SCJP
Guia de Bolso SCJP
 
Certificacao Java
Certificacao JavaCertificacao Java
Certificacao Java
 
Refactoring
RefactoringRefactoring
Refactoring
 

Seminario Refatoracao

  • 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
  • 6. DEFINIÇÃO REFATORAÇÃO Refatoração é o processo de reestruturar o sistema sem alterar suas funcionalidades. (Fowler,2004). 6
  • 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
  • 15. DUVIDAS? CONTATO: camilosi@hotmail.com  http://camilolopes.wordpress.com  OBRIGADO! 15