A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

REFATORAÇÃO JOÃO LACERDA DJALMA LIMA. MARTIN FOWLER É um autor conhecido na área de arquitetura de software, especializado em análise orientada a objetos,

Apresentações semelhantes


Apresentação em tema: "REFATORAÇÃO JOÃO LACERDA DJALMA LIMA. MARTIN FOWLER É um autor conhecido na área de arquitetura de software, especializado em análise orientada a objetos,"— Transcrição da apresentação:

1 REFATORAÇÃO JOÃO LACERDA DJALMA LIMA

2 MARTIN FOWLER É um autor conhecido na área de arquitetura de software, especializado em análise orientada a objetos, UML, padrão de projeto de software e metodologias de desenvolvimento ágil de software, incluindo Programação extrema (XP). Ele começou a trabalhar com desenvolvimento de software no início dos anos 80 e escreveu vários livros populares sobre desenvolvimento, alguns deles já traduzidos para português.arquitetura de softwareUML padrão de projeto de software desenvolvimento ágil de software Programação extremaanos 80

3 LIVROS Padrões de Arquitetura de Aplicações Corporativas, Ed. Bookman, 20062006 Refatoração: Aperfeiçoando o projeto de código existente, Ed. Bookman, 20042004 UML Essencial,Ed. Bookman, 20042004

4 DEFINIÇÃO “Refatoração é uma técnica disciplinada para reestruturar um código fonte existente, alterando sua estrutura interna sem mudar o seu comportamento externo. Sua essência está em uma série de pequenas transformações que preservam comportamento. Cada transformação (chamada de refatoração) faz pouca coisa, mas uma sequência de pequenas transformações produz uma reestruturação significativa. Uma vez que cada refatoração é pequena, é mais improvável que algo dê errado. O sistema se mantém funcionando integralmente após cada refatoração, reduzindo as chances de o sistema sofrer um dano grave durante a reestruturação”. (Martin Fowler,2004).

5 MANTENDO A CASA EM ORDEM

6 OBJETIVO O objetivo de refatorar um código freqüentemente é manter o custo de manutenção constante ao longo do tempo.

7 TEMPO x GASTO 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)

8 CUSTOS x GASTOS 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)

9 MOTIVAÇÕES Simplicidade Flexibilidade Clareza Desempenho Facilitar a manutenção Reduzir custos

10 UTILIZAÇÃO A refatoração deve ser utilizada quando o "código cheirar mal"(bad smells in code). (Kent Beck, um dos fundadores da Programação Extrema.)

11 UTILIZAÇÃO Alguns indícios já possuem uma aceitação ampla para promover refatoração: Código duplicado (duplicated code) Método longo (long method) Classe grande (large class) Lista de parâmetros longa (long parameter list) Má indentação(Bad Indentation)

12 ANTES > CONTROLADOR EFERTUAR CONTROLE DE TRÁFEGO GERENCIAR ROTAS E TRENS Cadastrar Consultar Remover Monitorar Alterar

13 DEPOIS CONTROLADOR EFETUAR CONTROLE DE TRÁFEGO CADASTRAR ROTAS E TRENS CONSULTAR ROTAS E TRENS REMOVER ROTAS E TRENS ALTERAR ROTAS E TRENS MONITORAR ROTAS E TRENS

14 ANTES TREM + Tipo: String + Rota: String +Quant. Passageiros: Int + Tipo de carga: String + Quant. Carga: String + Periculosidade: String - Cadastrar () - Consultar () - Remover () - Monitorar () - Alterar()

15 DEPOIS TREM + Tipo: String + Rota: String - Cadastrar () - Consultar () - Remover () - Monitorar () - Alterar () PASSAGEIRO + Quantidade: String CARGA + Tipo: String + Quantidade: Double + Periculosidade: String

16 ANTES /** Salva o produto no banco de dados. */ public void save() { // Verifica propriedades if ( this.getName() == null ) { throw new Exception("Falta nome"); } else if (this.getDescription() == null ) { throw new Exception("Falta a descrição"); } this.getDatabase().save(this); }

17 DEPOIS /** Salva o produto no banco de dados. */ public void save() { this.checkProperties(); this.getDatabase().save(this); } /** Verifica as propriedades do produto. */ public void checkProperties() { if (this.getName() == null) { throw new Exception("Falta nome do produto."); } else if (this.getDescription() == null) { throw new Exception("Falta a descrição do produto."); }

18 FERRAMENTAS XRefactoring: C e Java. RefactorIT: Integrada em várias IDEs. JFactor: Java

19 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.


Carregar ppt "REFATORAÇÃO JOÃO LACERDA DJALMA LIMA. MARTIN FOWLER É um autor conhecido na área de arquitetura de software, especializado em análise orientada a objetos,"

Apresentações semelhantes


Anúncios Google