Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Programao Extrema (XP) Proposta a partir de boas prticas de desenvolvimento iterativo Prope o envolvimento do cliente ao extremo O cliente (ou seu representante) deve estar disponvel durante todo o desenvolvimento Programadores trabalham em pares Dos Requisitos aos Testes Os requisitos so escritos como cenrios (estrias do usurio) Estas estrias so implementadas diretamente por um conjunto de tarefas Para cada tarefa, desenvolvido um conjunto de testes Testes so feitos antes da implementao Modelo de Processo XP O espao de tempo entre releases curto Selecionar histrias do usurio Dividir histrias em tarefas Planejar a verso e os testes Desenvolver, integrar e testar Liberar software Avaliar o sistema Prticas de XP Planejamento incremental Pequenas releases Projeto simples Desenvolvimento dirigido por testes Refatorao Reestruturao constante de cdigo Prticas de XP Programao por pares Propriedade coletiva do cdigo Qualquer um pode modificar qualquer coisa (no h ilha de conhecimento) Integrao contnua Ritmo sustentvel Cliente sempre disponvel Pequenas Releases Novas verses do sistema podem ser compiladas vrias vezes por dia Testes unitrios automatizados devem ser executados aps cada compilao Incrementos so entregues ao cliente a cada duas semanas Refatoraes XP prega que modelar o sistema para mudanas futuras um esforo intil Refatoraes so constantemente aplicadas para permitir adaptaes Testes em XP XP enfatiza mais as atividades de teste que outros mtodos geis Prticas Desenvolver primeiro os testes Codificao incremental a partir dos testes Envolvimento do usurio na escrita e validao dos testes Uso de ferramentas para testes automatizados Testes de aceitao tambm so incrementais Desvantagens de Testar Primeiro Programadores preferem programar do que testar Teste podem ser mal feitos ou incompletos Alguns testes so difceis de escrever Pode ser to difcil quando implementar difcil avaliar a abrangncia dos testes Programao por Pares (PP) Dois programadores sentam juntos na frente de um mesmo computador Os pares nem sempre so os mesmos A alocao dinmica dos pares sugerido, pois favorece a propriedade coletiva do cdigo Vantagens de PP Responsabilidade comum As acertos e falhas so de responsabilidade de toda a equipe Processo informal de reviso Enquanto um programa, o parceiro revisa informalmente o cdigo Favorece a melhoria da qualidade Os parceiros discutem oportunidades para refatoraes Bibliografia Principal Ian Sommerville. Engenharia de Software, 9 Edio. Pearson Education, 2011. Cap. 3 (Seo 3.3) Bibliografia Adicional (XP) Kent Beck and Cynthia Andres. Extreme Programming Explained: Embrace Change, 2nd Edition. Addison-Wesley Professional, 2004.