Modelos de Processo de Software eXtreme Programming MO409 – Engenharia de Software Profa. Eliane Martins André Drummond Danilo Benzatti RA 992640 RA 980942 Assuntos abordados Introdução Visão Geral Regras e Práticas – – – – Planejando Projetando Codificando Testando Qualidade Configuração de Software Dificuldades na Vida Real Conclusões Introdução Desenvolvida nos anos 1990 e primeiramente utilizada em março de 1996 por Kent Beck. Diretrizes – – – – Simplicidade Comunicação Coragem Feedback Visão Geral Cenários de Teste Clientes Requisitos Plano de Entregas Requisitos Novos Requisitos Iteração Plano de Iteração Velocidade Bugs Desenvolvimento Versão Atual Testes de Aceitação Entrega de Versões Planejando Cenários de Teste Clientes Requisitos Plano de Entregas Histórias Plano de Entregas Pequenas Versões Velocidade Requisitos Novos Requisitos Iteração Plano de Iteração Velocidade Bugs Desenvolvimento Versão Atual Testes de Aceitação Entrega de Versões Planejando (II) Cenários de Teste Clientes Requisitos Plano de Entregas Requisitos Novos Requisitos Iteração Plano de Iteração Velocidade Bugs Desenvolvimento Versão Atual Testes de Aceitação Entrega de Versões Iterações Plano de Iteração Mova as Pessoas Reuniões Rápidas Conserte o XP Projetando Cenários de Teste Clientes Requisitos Plano de Entregas Requisitos Novos Requisitos Iteração Plano de Iteração Velocidade Bugs Desenvolvimento Versão Atual Testes de Aceitação Entrega de Versões Simplicidade Metáfora do Sistema Cartões CRC Soluções Rápidas Reestruturação Codificando Cenários de Teste Clientes Requisitos Plano de Entregas Requisitos Novos Requisitos Iteração Plano de Iteração Velocidade Bugs Desenvolvimento Versão Atual Testes de Aceitação Entrega de Versões Disponibilidade do Cliente Padrões de Codificação Priorize o Teste Unitário Programação em Pares Integração de Código Posse Coletiva do Código Sem Horas Extras Testando Cenários de Teste Clientes Requisitos Plano de Entregas Teste Unitário Bugs Testes de Aceitação Requisitos Novos Requisitos Iteração Plano de Iteração Velocidade Bugs Desenvolvimento Versão Atual Testes de Aceitação Entrega de Versões Qualidade Mova as Pessoas Simplicidade Cartões CRC Reestruturação Código Padronizado Programação em Pares [Willians, 2001] XP vs CMM [Paulk, 2001] Configuração de Software [Asklund, 2004] Aspectos Positivos: – – – – Reuniões Rápidas Plano de Entregas Teste Unitário Testes de Aceitação Aspectos Negativos – Posse Coletiva do Código – Pequenas Entregas Dificuldades na Vida Real Equipes com mais de 20 programadores [Crocker, 2001] Comprometimento com código existente para manter aplicações existentes; Longos períodos requeridos para feedback; Distribuição geográfica de programadores; Sistemas de grande porte. Conclusões XP não tenta prever o futuro Equipes Pequenas, Requerimentos Vagos, Freqüente Mudanças de Escopo Organiza o processo de desenvolvimento sem criar burocracias rígidas Não use Extreme Programming se... – Você já utiliza um processo e os desenvolvedores e clientes estão satisfeitos; – Seus requisitos são realmente fixos; Referências http://www.extremeprogramming.org/ http://www.xispe.com.br/ [Willians, 2001] Laurie Williams , Richard L. Upchurch, In support of student pair-programming, Proceedings of the thirty-second SIGCSE [Paulk, 2001] Mark C. Paulk, Extreme Programming from a CMM Perspective, IEEE Software, November/December 2001 [Asklund, 2004] Ulf Asklund, Lars Bendix, Torbjörn Ekman, Software Configuration Management Practices for eXtreme Programming Teams, Lund Institute of Technology [Crocker, 2001] Ron Crocker. The 5 reasons XP can't scale and what to do about them, Motorola, Inc. Backup Backup (II) Backup (III) Backup (IV) Backup (V)