XP (EXTREME PROGRAMMING) Jonas Elan, Thales Renan, João Victor e Cleiton Barbosa INTRODUÇÃO Caracteriscas ● ● ● ● ● ● Acompanhamento do cliente; Coragem para desenvolver; Visa a simplicidade; Respeitar o cliente; Voltado a OO Voltados para equipes pequenas e médias Vantagens Desvantagens x Vantagens Acompanhamento do cliente Teste de software Necessidade de uma equipe exclusiva Desvantagens Resultado melhor Planejamento Interativo ● Interação entre Cliente e Equipe de desenvolvimento. ● Planejamento em realeases que dura em média 2 meses. ● Ciclo Semanal Reunião entre cliente e equipe de desenvolvimento Desenvolvedores estimam Cartão Priorização Quadro de Histórias Aguarde e Confie Encerramento de Interação (Semanal) Recomeço Principais Etapas Objetivos; Desenvolvimento Interno; Planejamento; Análise; Projeto e Codificação; Testes; Implementação. Etapas de Cada Ciclo Atividades Projeto • Princípio KIS ( Keep It Simple ) • Cartões CRC • cartões CRC (Class Responsability Collaborator) identificam e organizam classes O.O. que são relevantes • Problema • criação de um protótipo operacional Codificação • Equipe desenvolve uma série de testes em cada historia • feeback imediato do cliente • Pair programming (Programação em par) • conceito de que duas cabeças pensando no mesmo problema são melhores do que uma Testes Integração Validação Aceitação Algumas Praticas • Jogo de planejamento (planning game) Algumas Praticas • Pequenos lançamentos (small releases) Algumas Praticas • Design Simples (simple design) ●Projeto Simples ●Não permitimos que se implemente nenhuma função adicional que não será usada na atual iteração. ●Não contém código duplicado. ●Tem o mínimo de classes e métodos. Algumas Praticas • Programação em duplas (pair programming ) ● ● ● ● Melhor qualidade do design, código e testes. Revisão constante do código. Nivelamento da equipe. Maior comunicação. Artefatos Artefato Obrigatoriedade Definição dos requisitos Obrigatório. Os requisitos são atualizados ao longo do desenvolvimento. Projeto de software Opcional. Surge informalmente durante o desenvolvimento do software. Desenvolvimento Implementa os incrementos (user stories) levantados junto ao cliente. Teste de sistema É feito um plano de teste antes da implementação que vão sendo executados freqüentemente. Implantação Parte do software vai sendo implantada até concluir todos os requisitos.