1 / 14

Introduzindo Refatoramento a Metodologias Tradicionais

Introduzindo Refatoramento a Metodologias Tradicionais. Tiago Massoni Workshop de Artigos TAES3 19/08/2003. Temos Muitos Problemas com Estrutura do Código!. Código-fonte mal estruturado Spaguetti code Dificuldades de manutenção Correção de erros Adicionar novos requisitos.

argyle
Download Presentation

Introduzindo Refatoramento a Metodologias Tradicionais

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduzindo Refatoramento a Metodologias Tradicionais Tiago Massoni Workshop de Artigos TAES3 19/08/2003

  2. Temos Muitos Problemas com Estrutura do Código! • Código-fonte mal estruturado • Spaguetti code • Dificuldades de manutenção • Correção de erros • Adicionar novos requisitos Tiago Massoni

  3. Refatoramento em uma Casca de Noz • Refatoramento altera código-fonte... • Motivado por “bad smells” • Melhora estrutura interna em algum fator de qualidade • ...e preserva comportamento externo • Usuário do sistema não percebe • Test-First Tiago Massoni

  4. Exemplos de Refatoramento public void imprimeRelatorio () { preparaRelatorio(); enviaRelatorioImpressora();} private void preparaRelatorio { //codigo preparar relatorio} private void enviaRelatorioImpressora() { // codigo enviar relatorio para impressora} public void imprimeRelatorio () { //codigo preparar relatorio //codigo enviar relatorio para impressora } Tiago Massoni

  5. Cliente Funcionario nome : String nome : String idade : Integer idade : Integer retornaNome() retornaNome() retornaIdade() retornaIdade() Exemplos de Refatoramento Pessoa nome : String idade : Integer retornaNome() retornaIdade() Cliente Funcionario Tiago Massoni

  6. Que tal Refatoramentos em Modelos? • Podemos estender refatoramento para níveis mais abstratos • Refatoramentos em análise e projeto • Melhora qualidade, preserva semântica • Algumas vantagens • Mais fácil visualizar mudanças • Exploração de decisões de projeto • Automatização pode ser poderosa Tiago Massoni

  7. Extreme Programming fez a Fama de Refatoramento! • Uma das práticas principais de XP • Intrínseco ao ciclo de vida • Refatoramentos sucessivos • Código fonte como único artefato relevante • Refatoramentos de código • Mas e para metodologias como RUP e OPEN? • Sincronização entre modelo e código • Atividades e guias adicionais a metodologias Tiago Massoni

  8. Contribuições • Estudo sobre manutenção de consistência modelo-código • Automatização • Sugestões para extensão do RUP • Atividades, guias, artefatos Tiago Massoni

  9. Estudo dos Refatoramentos pelos Níveis de Abstração Tiago Massoni

  10. Resultados... • Alguns problemas claros • Geração de código • Mapear abstrato para concreto • Alternativas para automatização • Modelo contendo código • Registro de refatoramentos Tiago Massoni

  11. Refatoramento no RUPAspectos Estáticos • Planejamento (iteração) • Atividades: planejar e avaliar (métricas) • Artefato: Plano de refatoramento • Análise & Projeto • Passo: Decisões técnicas • Passo: Refatoramentos de modelos • Implementação • Passo: Transferir mudanças de modelo • Passo: Decisões técnicas • Passo: Mudanças no código Tiago Massoni

  12. Refatoramento no RUPAspectos Dinâmicos • Elaboração • Refatoramentos consideráveis • Foco em modelos • Construção • Refatoramentos adaptativos e corretivos • Mudanças rápidas no código • Transição • Defeitos e problemas não previstos Tiago Massoni

  13. Conclusão • Refatoramento é técnica relevante • Pode aumentar produtividade • Tratamento em metodologias de software • Trabalhos futuros • Formalização do relacionamento modelo e código em refatoramentos • Ferramentas CASE com suporte a refatoramento Tiago Massoni

  14. Obrigado! Feedback é bem-vindo... Tiago Massoni

More Related