Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Qualidade de Software | eXtreme Programing

Qualidade de Software | eXtreme Programing

Slides utilizados em aula na disciplina Qualidade de Software do Instituto de Ciências Exatas e Informática - Sistemas de Informação. Pontifícia Universidade Católica de Minas Gerais - Unidade Barreiro, 1º Semestre 2015.

Eduardo Miranda

March 17, 2015
Tweet

More Decks by Eduardo Miranda

Other Decks in Education

Transcript

  1. Modelo Incremental No desenvolvimento incremental, você adicionar um pedaço da

    imagem completa a cada iteração. A imagem está pronta quando todas as iterações forem realizadas.
  2. No desenvolvimento incremental, você adicionar um pedaço da imagem completa

    a cada iteração. A imagem está pronta quando todas as iterações forem realizadas. Modelo Incremental
  3. No desenvolvimento incremental, você adicionar um pedaço da imagem completa

    a cada iteração. A imagem está pronta quando todas as iterações forem realizadas. Modelo Incremental
  4. No desenvolvimento incremental, você adicionar um pedaço da imagem completa

    a cada iteração. A imagem está pronta quando todas as iterações forem realizadas. Modelo Incremental
  5. No desenvolvimento incremental, você adicionar um pedaço da imagem completa

    a cada iteração. A imagem está pronta quando todas as iterações forem realizadas. Modelo Incremental
  6. Modelo Iterativo No desenvolvimento iterativo, você entrega um quadro e

    então decide se você gostaria de continuar melhorando-o ou não.
  7. Modelo Iterativo No desenvolvimento iterativo, você entrega um quadro e

    então decide se você gostaria de continuar melhorando-o ou não.
  8. Modelo Iterativo No desenvolvimento iterativo, você entrega um quadro e

    então decide se você gostaria de continuar melhorando-o ou não.
  9. Modelo Iterativo No desenvolvimento iterativo, você entrega um quadro e

    então decide se você gostaria de continuar melhorando-o ou não.
  10. Modelo Iterativo No desenvolvimento iterativo, você entrega um quadro e

    então decide se você gostaria de continuar melhorando-o ou não.
  11. • É uma metedologia ágil centrada no desenvolvimento de software.

    • Enquanto o Scrum foca na priorização e feedback do trabalho de desenvolvimento no nível de gerenciamento de projetos, o XP foca nas melhores práticas de desenvolvimento de software. eXtreme Programing
  12. O XP tem 5 core values 1. Simplicidade; 2. Comunicação;

    3. Feedback; 4. Coragem; 5. Respeito. eXtreme Programing
  13. simplicidade The Standish Group Study reported at XP2002 by Jim

    Johnson, Chairman. Gráfico de utilização das funcionalidades em um sistema de acordo com o estudo do Standish Group.
  14. simplicidade The Standish Group Study reported at XP2002 by Jim

    Johnson, Chairman. Gráfico de utilização das funcionalidades em um sistema de acordo com o estudo do Standish Group.
  15. Comunicação Tenha certeza de que o profissional sabe exatamente o

    que é esperado dele e saiba em que os outros membros do time estão trabalhando.
  16. Feedback Tenha retorno o mais rápido possível, de preferência para

    que ainda haja tempo de corrigir ou incrementar uma entrega antes do release. Falhe rápido!
  17. a curva de Kent Beck Beck, K (1999) Extreme Programming

    Explained: Embrace Change, “Figure 3. The cost of change may not rise dramatically over time” (Addison Wesley 1st Ed. P 23)
  18. Coragem É preciso coragem para deixar seu trabalho 100% visível

    a todos. Na programação em par, os times sabem o que cada um fez e tem a liberdade e autonomia para corrigir e melhorar sempre.
  19. Respeito Respeito é essencial para o sucesso de um projeto

    com XP, já que todos trabalham juntos e são responsáveis pelo sucesso ou fracasso do projeto.
  20. modelo do XP Spike arquitetural Planejamento do release Iteração Teste

    de aceitação Pequenos releases Spike User Stories Próxima iteração Nova user story Velocidade do projeto bugs Cenários de teste Plano do release Última Versão Aprovação do cliente Estimativas incertas Estimativas confiantes
  21. • No XP os requisitos são representados por , que

    são utilizadas no planejamento de releases e iterações; • As iterações tem normalmente 2 semanas de duração e os desenvolvedores trabalham em par durante as iterações; eXtreme Programing
  22. • O software (produto) é submetido a testes rigorosos e

    frequentes; • Com a aprovação on-site do cliente, o software é entregue em pequenas partes, ao final de cada iteração. eXtreme Programing
  23. As tem como propósito responder a três perguntas sobre um

    requisito: 1. Quem?; 2. O quê?; 3. Por quê? user stories
  24. As possuem um formato padrão: user stories Como <papel>, eu

    gostaria de <desejo>, de modo que <benefício> As a <role>, I want <goal/desire> so that <benefit> De maneira a <receber o benefício> como <papel>, eu gostaria <benefício> In order to <receive benefit> as a <role>, I want <goal/desire> Proposta de um time da Connextra Proposta de Chris Matts
  25. user stories Como comprador, eu gostaria de receber uma nota

    fiscal da compra no meu email, de modo que eu possa comprovar a compra. Como leitor, eu gostaria de poder marcar a página que parei de ler meu e-book, de modo que eu possa retornar do mesmo lugar quando voltar a ler. De maneira a apresentar melhor a matéria como professor, eu gostaria de poder exibir conteúdo áudio visual durante a aula.
  26. são histórias utilizadas como forma de reduzir risco para a

    implementação de um requisito. • Pesquisa de um novo framework ou tecnologia; • Criação de protótipos que irão definir melhor os requisitos.
  27. Os podem ser utilizados de duas formas: • Técnico: analisa

    uma determinada tecnologia ou arquitetura a ser implementada em uma determinada • Funcional: sempre utilizado quando há dúvidas em como o usuário irá interagir com o sistema, do ponto de vista de usabilidade e comportamento.
  28. História: Como consumidor, eu gostaria de ver diariamente meu consumo

    de energia, para que eu possa avaliar o meu consumo do passado, presente e projetado. técnico: Pesquisar quanto leva para obter os dados de consumo de energia, quais são os possíveis canais de comunicação e banda necessária. funcional: Criar um protótipo de um histograma simulando um histórico de consumo e obter um feedback do usuário sobre usabilidade História complexa Funcional Técnico
  29. práticas XP • Warm rooms; • O time inclui um

    cliente que representa o negócio; • O time é multi-disciplinar; • Um coach para assegurar as práticas e processos; • Um gestor para facilitar a comunicação externa; • Especialistas generalistas; ◦ Otimização dos recursos (pessoas).
  30. Release planning : • Entrega em ambiente de produção; •

    Acontecem uma ou duas vezes por ano. Iteration planning : • Planejamento das iterações ( No Scrum → sprint); • Quebra de histórias em tarefas e estima-se o trabalho; • Comprometimento do time com a entrega.
  31. práticas XP • Pequenas entregas são realizadas a todo momento;

    • O código é constantemente disponibilizado para testes; • A qualidade é garantida com testes rigorosos e constantes; ◦ Continuous integration.
  32. práticas XP • O cliente define os critérios de aceitação;

    • Testes automatizados; • O cliente cria testes que comprovam uma determinada funcionalidade em execução: Exemplo: ◦ Após realizar uma compra, acesso minha caixa de entrada de emails e devo ter recebido uma mensagem com a nota fiscal eletrônica.
  33. práticas XP • Todos são donos de tudo. Qualquer dupla

    pode avaliar e melhorar qualquer parte do código; • Aumenta a visibilidade e o conhecimento de todo o time sobre o código; • Aumenta a qualidade do código; • Minimiza o risco na saida de membros do time.
  34. • Mesmo padrão de codificação; • Objetivo é parecer que

    o código foi escrito por uma única pessoa.
  35. • O maior ritmo de produtividade é alcançado quando o

    time possui um ritmo sustentável; • Horas extras podem eventualmente ser necessárias, mas no XP é claro que longas horas de trabalho são improdutivas e devem ser evitadas.
  36. Metáforas são utilizadas como uma forma simples de definir os

    requisitos. Exemplo: • A cada jogada o usuário pode ganhar ou perder pontos, criando um extrato parecido com uma conta corrente bancária.
  37. práticas XP • É o ato de reunir e compilar

    todo o código (normalmente diariamente) para assegurar que ele compila. • Expõe problemas de maneira antecipada antes que mais código seja desenvolvido sob um código já falho.
  38. práticas XP • O código é escrito em pares, duas

    pessoas escrevem o mesmo código simultaneamente. • Pode parecer improdutivo, mas o XP garante que que a produtividade aumenta uma vez que os defeitos são reduzidos e a comunicação entre os membros do time aumenta;
  39. práticas XP • Testes são uma parte crítica do XP;

    • Os testes são escritos antes da codificação da funcionalidade; ◦ Na primeira vez que for executado o teste tem que falhar já que a funcionalidade ainda não foi implementada. O objetivo é fazer com que o teste tenha sucesso.
  40. • Melhorar a qualidade de uma funcionalidade, sem mudança no

    comportamento externo dela. • Reduzir código duplicado, aumentar a coesão ou melhorar a performance.