Your SlideShare is downloading. ×
Introdução a Metodologia XP (E Xtreme Programming)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Introdução a Metodologia XP (E Xtreme Programming)

15,254
views

Published on

Material para palestra sobre a Metodologia de desenvolvimento Extreme Programming, ministrada no 1º ENDESDISMO - Encontro de Desenvolvimento de Software p/ Dispositivos Móveis - UNOPAR CCET …

Material para palestra sobre a Metodologia de desenvolvimento Extreme Programming, ministrada no 1º ENDESDISMO - Encontro de Desenvolvimento de Software p/ Dispositivos Móveis - UNOPAR CCET LONDRINA/PR


0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
15,254
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introdução à Metodologia de Desenvolvimento de Software Extreme Programming Rennan Martini Rodrigues 5º Semestre             Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
  • 2. O que é Metodologia? A Metodologia é o estudo dos métodos.  As etapas a seguir num determinado processo. Conjunto de métodos que utilizam ferramentas e práticas diferenciadas para realizar o desenvolvimento do software. No contexto da Engenharia de Software...
  • 3. Metodologias existentes
    • • Metodologia Estruturada     - Análise Estruturada     - Projeto Estruturado     - Programação Estruturada     - Análise Essencial     - SADT     - DFD - Diagrama de Fluxo de Dados     - MER - Modelo de Entidades e Relacionamentos
  • 4. Metodologias existentes
    • • Metodologia Orientada a Objetos     - Rational Unified Process (RUP)     • Desenvolvimento ágil de software         - Feature Driven Development (FDD)         - Enterprise Unified Process (EUP)         - Scrum         - Crystal (Crystal Clear)         - Programação extrema (XP)
    • • Outras Metodologias     - Microsoft Solution Framework (MSF)
  • 5. Avanços
    • • Nos últimos 30 anos...     ▪ Melhoria nos processos         ▪ Interativo Incremental, Evolucionário...
    •     ▪ Melhorias nas ferramentas
    •         ▪ IDEs, automação...          ▪ Maior abstração no desenvolvimento
    •         ▪ Paradigma Orientado a Objetos
    •         ▪ Orientação a Aspectos
    •         ▪ Entre outros...
  • 6. Mudanças sempre ocorrem
      • Clientes não sabem o que querem no início
    •  
      • Desenvolvedores não sabem qual a melhor maneira de fazer o software no início
    •  
      • Medo da mudança trava o desenvolvimento
      • Engenheiros de software devem ser ágeis o suficiente para responder a um ambiente de negócios mutante.       -> Surgimento do Desenvolvimento Ágil
  • 7. Surgiu de um Manifesto
    • Em meados de 2000/2001, um grupo de 17 profissionais veteranos na área de software decidiram se reunir em uma estação de esqui, nos EUA, para discutir formas de melhorar o desempenho de seus projetos. Embora cada envolvido tivesse suas próprias práticas e teorias sobre como fazer um projeto de software ter sucesso, cada qual com as suas particularidades, todos concordavam que, em suas experiências prévias, um pequeno conjunto de princípios sempre parecia ter sido respeitado quando os projetos davam certo.
    •  
    • Chegaram a um consenso e elaboraram o Manifesto para o Desenvolvimento Ágil de Software
  • 8. Manifesto Ágil
    • "Estamos evidenciando maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo." 
    •                        
  • 9. Manifesto Ágil
      • Assinado por 17 desenvolvedores com reconhecimento mundial em Utah em fevereiro/2001.
      • Declaração de 4 valores.
    •                                      
    • veja mais em http://www.agilemanifesto.org/
  • 10. Valor Declarado no Manifesto
    • Indivíduos e interações  
    • são mais importantes que 
    • processos e ferramentas.
  • 11. Valor Declarado no Manifesto
    • Software funcionando é mais importante do que 
    • documentação completa e detalhada
  • 12. Valor Declarado no Manifesto
    •           Colaboração com o cliente         é mais importante do que 
    •          negociação de contratos
  • 13. Valor Declarado no Manifesto
    •          Adaptação a mudanças         é mais importante do que 
    •         seguir o plano inicial
  • 14. Metodologias Ágeis
      • XP - eXtreme Programming
      • FDD Feature Driven Development (Desenv. Guiado por Funcionalidades)
      • Lean Software Development
      • Cristal Family
      • Scrum
      • Entre outras...
  • 15. Surgimento do XP
      • Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software
    •       
          • Identificou o que tornava simples e o que dificultava o desenvolvimento de software
      • Em Março de 1996, ele iniciou um projeto com novos conceitos que resultaram na metodologia XP - eXtreme Programming.
  • 16. Extreme Programming
    • “ Trata-se de uma metodologia de desenvolvimento de software ágil para equipes pequenas e médias desenvolvendo software com requisitos vagos e em constante mudança.”                                                                                                            Kent Beck
  • 17. Programando ao Extremo
    • Afinal, como funciona o modelo de programação XP?
  • 18. XP Inclui
    • 4 valores como base :    ▪ Simplicidade    ▪ Comunicação    ▪ Feedback
    •    ▪ Coragem
  • 19. Simplicidade
    • Necessária desde a forma como se levanta requisitos até a codificação e os testes da solução desenvolvida
  • 20. Comunicação
    • É obrigatória para que não haja lacunas em processos e problemas entre equipe, cliente e fornecedor
  • 21. Feedback
    • Prática fundamentada em retornar informações entre os membros da equipe e também na relação com o cliente
  • 22. Coragem
    • Saber dizer NÃO quando necessário, ou então para dizer que o projeto vai demorar além do estimado, pois os novos requisitos precisam ser codificados ou o código já em funcionamento precisa ser refatorado.
  • 23. Atividades no XP
    • • Usa a O.O. como seu paradigma de desenvolvimento
    •  
    • • Inclui um conjunto de regras e práticas que ocorrem no contexto de quatro atividades:
    •      Planejamento    Projeto    Codificação    Testes
    • • Objetivo: assegurar que o cliente receba o máximo de valor a cada dia de trabalho da equipe de desenvolvimento. • Seus valores e práticas atuam de forma harmônica e coesa para assegurar que o cliente sempre receba um alto retorno do investimento em software.
  • 24. Planejamento
    • • Se inicia com a criação de histórias         ▪ Cada história é escrita pelo cliente e colocada em um cartão de indexação          
    •         ▪ O cliente atribui um valor (prioridade) para a história, com base no valor de negócio global da característica ou da função          
    •          ▪ Membros da equipe XP analisam cada história e atribuem custos - medido em semanas de desenvolvimento.          ▪ Se a história precisar mais do que 3 semanas para ser desenvolvida então ela é divida em histórias menores
  • 25. Planejamento
    •         ▪ Novas histórias podem ser descritas a qualquer momento.          
    •         ▪ Cliente e equipe XP trabalham juntos para decidir como agrupar histórias na versão seguinte a ser desenvolvida pela equipe.
    •         ▪ A equipe entrega então uma versão do projeto (chamada de Release ) e à medida que vai prosseguindo, histórias podem ser sub-divididas, mudar o seu valor ou até mesmo eliminá-las.
    •         ▪ A equipe XP reconsidera todos as versões remanescentes e modifica os seus planos adequadamente.
  • 26. Projeto
    •         ▪ O projeto XP segue o princípio KIS ( Keep It Simple )          
    •         ▪ Usa cartões CRC como um mecanismo efetivo para racioncinar sobre o software no contexto orientado a objetos. Os cartões CRC (Class Responsability Collaborator) identificam e organizam classes O.O. que são relevantes para o Release
    •         ▪ Se um problema é encontrado, o XP recomenda a criação de um protótipo operacional da parte do projeto. Denominado solução de ponta, o protótipo de projeto é implementado e avaliado.
    •         ▪ Uma noção central no XP é de que o projeto ocorre tanto antes quanto depois que a codificação começa ( REFATORAÇÃO ).
  • 27. Codificação
    •         ▪ Depois que as histórias forem desenvolvidas e o trabalho preliminar de projeto forem feitos, a equipe desenvolve uma série de testes unitários a fim de exercitar cada uma das histórias que devem ser incluídas na versão atual e ter um feeback imediato do cliente
    •  
    •         ▪ Estratégia de integração contínua: Pair programming
    •             - Programação em par : duas pessoas trabalham em um mesmo computador para analisar o código e solucionar problemas em tempo real (conceito de que duas cabeças pensando no mesmo problema são melhores do que uma)
    •             - Garante qualidade em tempo real, evita problemas de compatibilidade e interface e ajuda descobrir rapidamente os erros  
  • 28. Testes
    •         ▪ À medida que os teste unitários são organizados, ocorre o teste de integração e validação do sistema
    •  
    •         ▪ Os testes fornecem à equipe uma indicação contínua de progresso e também sinais de alerta se as coisas estiverem se deteriorando
    •  
    •         ▪ Os testes de aceitação XP, também chamado de teste do cliente, são especificados pelo cliente e focalizam as característi- cas e funcinoalidade do sistema que são visíveis pelo cliente
    •  
    •          ▪ Testes de aceitação são derivados das histórias do usuário que foram implementadas como parte de uma versão de software
  • 29. Benefícios para o Cliente
    •         ▪     Escolher um plano, saber o que será realizado, 
    •            quando e a que custo; 
    •         
    •         ▪     Recebe o maior valor possível de cada semana
    • de  um desenvolvedor;
    •         
    •         ▪    Ver o progresso de um sistema sendo executado,
    • que prove o funcionamento ao passar por testes
    • repeditos que ele mesmo especifica;  
  • 30. Benefícios para o Cliente
    •          ▪     Mudar de idéia, substituir funcionalidade e mudar
      •          prioridades sem pagar custos exorbitantes;
    •  
    •         ▪    Ser informado de mudanças de cronograma, em
    •             tempo de escolher como reduzir o escopo para
    •             restaurar a data original;
    •  
    •         ▪    Cancelar o projeto a qualquer tempo e ainda
    • assim ter um sistema funcionando refletindo o
    • investimento feito até o momento.
  • 31. The Developer Conference  - TDC 2008 São Paulo Extremme Programming Vinicius Maranhães Teles Empresa ImproveIt http://improveit.com.br/
  • 32. The Developer Conference  - TDC 2008 São Paulo PRIMEIRA PARTE • Estatísticas de Funcionalidades do Software
  • 33. The Developer Conference  - TDC 2008 São Paulo SEGUNDA PARTE   • Visão do Desenvolvimento de Software • Mudanças de software
  • 34. The Developer Conference  - TDC 2008 São Paulo TERCEIRA E QUARTA PARTE   • Fase de Planejamento e Projeto
  • 35. Boa Prática Levada ao Extremo
    • Se testar é bom,  
    • vamos testar toda hora!
  • 36. Boa Prática Levada ao Extremo
    • Se projetar é bom,  
    • vamos fazer disso parte diária do trabalho de cada pessoa!  
  • 37. Boa Prática Levada ao Extremo
    • Se integrar é bom, vamos integrar a maior
    • quantidade de vezes possível!
  • 38. Boa Prática Levada ao Extremo
    • Se iterações curtas é bom, vamos deixar as iterações
    • realmente curtas!
  • 39. Material Complementar
    • Sites interessantes Regras de negócio utilizando a metologia XP http://www.extremeprogramming.org/rules.html
    • Video-palestra XP - Vinicius Teles / TDC 2008
    • http://www.viddler.com/explore/vinicius/videos/2/13.078/
    • Ferramentas XP no Visual Studio 2010
    • http://msdn.microsoft.com/pt-br/magazine/dd347827.aspx
    • ImproveIt - Produtos para Web feitos com XP http://improveit.com.br/empresa
  • 40. Material Complementar
    • Sites interessantes  
    • Livro Extreme Programming - Guia Prático
    • Dave Astel  & Granville Miller http://www.americanas.com.br/AcomProd/1472/56936
    • Object Mentor - Cursos, Artigos e Eventos
    • http://objectmentor.com/