Extreme Programming Flashcards
O que é XP?
Emprega uma abordagem orientada a objetos como seu paradigma de desenvolvimento preferido e envolve um conjunto de regras e práticas constantes no contexto de quatro atividades metodológicas: planejamento, projeto, codificação e testes.
O que é a fase de Planejamento?
<p>A atividade de planejamento (também denominada o jogo do planejamento) se inicia com a atividade de ouvir — uma atividade de <strong>levantamento de requisitos</strong> que capacita os membros técnicos da equipe XP a entender o ambiente de negócios do software e possibilita que se consiga ter uma percepção ampla sobre os resultados solicitados, fatores principais e funcionalidade. A atividade de “Ouvir” conduz à <strong>criação de um conjunto de “histórias”</strong> (também denominado histórias de usuários) que descreve o resultado, as características e a funcionalidade requisitados para o software a ser construído. O <strong>cliente atribui um valor (uma prioridade) à história</strong> baseando-se no valor de negócio global do recurso ou função. Os <strong>membros da equipe XP avaliam então cada história e atribuem um custo — medido em semanas de desenvolvimento</strong> — a ela.</p>
O que é a fase de Projeto?
<p>O projeto XP <strong>segue rigorosamente o princípio KIS</strong> (keep it simple, ou seja, preserve a simplicidade). É preferível sempre um projeto simples do que uma representação mais complexa. Como acréscimo, o projeto oferece um guia de implementação para uma história à medida que é escrita — nada mais, nada menos. O projeto de funcionalidade extra (pelo fato de o desenvolvedor supor que ela será necessária no futuro) é desencorajado. O XP <strong>encoraja o uso de cartões CRC</strong> como um mecanismo eficaz para pensar sobre o software em um contexto orientado a objetos. Os cartões <strong>CRC (classe-responsabilidade-colaborador)</strong> identificam e organizam as classes orientadas a objetos relevantes para o incremento de software corrente. <strong>Se um difícil problema de projeto for encontrado como parte do projeto de uma história, a XP recomenda a criação imediata de um protótipo operacional dessa parte do projeto.</strong> Denominada solução pontual, o protótipo do projeto é implementado e avaliado.</p>
O que é a fase de Codificação?
<p>Depois de desenvolvidas as histórias e o trabalho preliminar de elaboração do projeto ter sido feito, a equipe não passa para a codificação, mas sim, desenvolve uma série de testes de unidades que exercitarão cada uma das histórias a ser inclusas na versão corrente (incremento de software). <strong>Uma vez criado o teste de unidades, o desenvolvedor poderá melhor focar-se no que deve ser implementado para ser aprovado no teste.</strong> Nada estranho é adicionado (KIS). Estando o código completo, este pode ser testado em unidade imediatamente, e, dessa forma, prover, instantaneamente, feedback para os desenvolvedores. Um conceito-chave na atividade de codificação (e um dos mais discutidos aspectos da XP) é a <strong>programação em dupla</strong>. O XP recomenda que duas pessoas trabalhem juntas em uma mesma estação de trabalho para criar código para uma história. Isso fornece um mecanismo para resolução de problemas em tempo real (duas cabeças normalmente funcionam melhor do que uma) e garantia da qualidade em tempo real (o código é revisto à medida que é criado).</p>
O que é a fase de Testes?
<p>Como os testes de unidades individuais são organizados em um “conjunto de testes universal”, <strong>os testes de integração e validação do sistema podem ocorrer diariamente</strong>. Isso dá à equipe XP uma indicação contínua do progresso e permite lançar alertas logo no início, caso as coisas não andem bem. Os <strong>testes de aceitação da XP, também denominados testes de cliente, são especificados pelo cliente</strong> e mantêm o foco nas características e na funcionalidade do sistema total que são visíveis e que podem ser revistas pelo cliente.</p>
O que são histórias de usuários?
Descreve o resultado, as características e a funcionalidade requisitados para o software a ser construído.