IC Cuidando de Sistemas Doentes

770 views

Published on

Qual software não é "doente"? Todos são ou serão! Não é incrível como todos são sujeitos a alguns "vírus" e remédios errados? Essa palestra irá mostrar evolução nas técnicas e a evolução para diagnosticar problemas e verificar a qualidade em softwares, do conceito a prática com a utilização de ferramentas para automatização;

Tópicos:

Histórico e Mitos
Controle de Versão
Processo de Integração Contínua
Testes
Inspeção e Práticas
Servidores
Feedback

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
770
On SlideShare
0
From Embeds
0
Number of Embeds
58
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

IC Cuidando de Sistemas Doentes

  1. 1. Integração Contínua Cuidando de Sistemas Doentes
  2. 2. Quem sou eu • Jefferson Moreira - www.jeffmor.com • Ciência da Computação / Engenharia de Software OO • Desenvolvedor e Coordenador Qualidade de Software da Agence Consultoria. • Desenvolvedor desde 2002 (PHP, Delphi, C++) • Com Java desde 2003 • Instrutor do SENAC • Coordenador do JUG-MS
  3. 3. Objetivo Gerar Software funcionando :D • Confiança no produto • Diagnosticar problemas • Verificar a qualidade do Software. • Redução de Riscos • Automatização de processos repetitivos • Prática dos conceitos. •
  4. 4. Agenda • Histórico Mitos • Testes • Controle de Versão • Processo de Integração Contínua • Servidores • Inspeção e Práticas • Feedback •
  5. 5. Histórico – 80
  6. 6. Histórico – 80 • Anos 80 - década da “caverna” • Ausência de metodologias de desenvolvimento[9] • Programação procedural e estruturada. [9] • Dificuldade de simular relações entre entidades em processos de negócios. [9]
  7. 7. Histórico – 90
  8. 8. Histórico – 90[9] Linguagem UML. • Processos Unificados (UP). • Metodologias Orientadas a Objetos. • Fases bem definidas e controladas. • “Igual” a Engenharia Civil. • Concepção, Elaboração, Construção e • Transição.
  9. 9. Processo Unificado[9] Código complexo. • Manutenção difícil. • Baixa produtividade. • Cronograma sempre atrasado. • Insatisfação de todos. • Documentação defasada, excessiva e • ilegível. • Fracasso no projeto.
  10. 10. Metodologia Ágil [1] • Satisfação do Cliente como prioridade máxima, através da entrega contínua de valor agregado • A principal medida de progresso é software funcionando • Equipes auto-gerenciáveis, indivíduos motivados, comunicação e simplicidade são valores importantes • Melhoria Contínua para maximizar a produtividade e excelência da equipe
  11. 11. Agenda • Histórico • Mitos Testes • Controle de Versão • Integração Contínua • Servidores • Inspeção e Práticas • Feedback •
  12. 12. Bombeiros?
  13. 13. Bombeiros? • Será que desenvolvedores tem que ficar sempre apagando incêndios? • Será que não estamos desrespeitando os nossos sistemas com essa atitute?
  14. 14. Sistemas Doentes • Já viu algum sistema “doente”? • Alguns sistemas são muito dodóis • Já viu algum sistema ser infectado por algum vírus (Desenvolvedor)?
  15. 15. Sistemas como PACIENTES!
  16. 16. Vacina ajuda!
  17. 17. Mas o negócio é T-E-S-T-AR
  18. 18. Escrevendo testes!
  19. 19. Depois eu escrevo o teste
  20. 20. O prazo está apertado. Vamos deixar os testes para a próxima fase!
  21. 21. Na minha máquina funcionou!
  22. 22. Sendo médico
  23. 23. A verdade! Repleto de Best Practices • Muito se fala • Raramente se faz • Casos de teste sempre são deixados para • depois • Quanto mais pressão você sofre, menos testes você escreve.
  24. 24. Agenda • Histórico • Mitos • Testes Controle de Versão • Integração Contínua • Servidores • Inspeção e Práticas • Feedback •
  25. 25. Testes • Essencial para análise de desempenho • Aumento de produtividade dos desenvolvedores • Essencial para refactoring
  26. 26. Ferramentas de teste • JUnit • Selenium, httpUnit, WebDriver (aplicações web) • Cactus (aplicações EJB) • jemmy e Abbot (aplicações Desktop)
  27. 27. Agenda • Histórico • Mitos • Testes • Controle de Versão Integração Contínua • Servidores • Inspeção e Práticas • Feedback •
  28. 28. Controle de Versão CVS • Subversion • ClearCase • Perforce • StarTeam • Git • PVCS, VSS e MKS e etc... •
  29. 29. Agenda Histórico • Mitos • Testes • Controle de Versão • • Integração Contínua • Servidores • Inspeção e Práticas • Feedback
  30. 30. Integração Contínua • Integração contínua consiste em integrar o trabalho diversas vezes ao dia, assegurando que a base de código permaneça consistente ao final de cada integração.
  31. 31. Demonstração do processo
  32. 32. Agenda Histórico • Mitos • Testes • Controle de Versão • Integração Contínua • • Servidores • Inspeção e Prática • Feedback
  33. 33. Impraticável rodar todos os testes a cada alteração
  34. 34. Servidores Hudson • Cruise Control • Continuum • Luntbuild • Anthill • Pulse • Build Forge • Damage Control • Team City • Gump •
  35. 35. [5 ] • Disponibilizado como Open Source pela ThoughtWorks • Implementado em Java • Administração Desktop • Interface um pouco confusa. • Suporte a Java apenas, mas com uma versão dedicada a .NET
  36. 36. [5 ] • Open Source desenvolvido pela Apache Fundation • Desenvolvido em Java • Administração via WEB • Suporte nativo a ANT, Maven 1 e 2 e Shell Script para outras linguagens
  37. 37. • Disponibilizado como Open Source pela Sun. • Facilidade de instalação e utilização. • Muitos plugins. • Suporte 8 idiomas inclusive o Português.
  38. 38. Agenda Histórico • Mitos • Testes • Controle de Versão • Integração Contínua • Servidores • • Inspeção e Prática • Feedback
  39. 39. Go Go Go
  40. 40. Agenda Histórico • Mitos • Testes • Controle de Versão • Integração Contínua • Servidores • Inspeção e Prática • • Feedback
  41. 41. Paciente tratado
  42. 42. Feedback • Difícil enxergar se você é o único desenvolvedor da equipe. • Fundamental para testar. • A grande maioria dos bugs se manifestam já no mesmo dia em que são comitados. • Aumento de produtividade. • Métricas de qualidade aferidas. • Paciente tratado!
  43. 43. Referências [1]http://w w w .m a rtinfo w ler.c om /a rtic les /c ontinuous I nteg ra tio n.htm l [2]http://w w w .im pro veit.c om .br/x p/pra tic a s /integ ra c a o [3]http://w w w .ja m es s hore.c o m /B lo g /C ontinuous -I nteg ra tion- on-a -D olla r-a -D a y.htm l [4]http://ja yflow ers .c o m /jo om la /index .php? optio n=c om _c onten t& ta s k =view & id=26 [5]http://blog .uruba ta n.c om .br [6]http://rfium e.blog s pot.c om /2007/03/tes tes -de-a c eita o -em - a plic a es -s w ing .htm l [7] J a va M a g a zine – C ons truç ã o e T es tes A uto m a tiza dos . A no 4 E diç ã o 62 [8]http://w w w - 128.ibm .c om /developerw ork s /ra tiona l/libra ry/s ep05/lee/ [9]http://w w w .m ilfont.org [10]http://m a ldita c o m edia .blog s po t.c om
  44. 44. Dúvidas?
  45. 45. Copyright Jefferson Moreira www.jeffmor.com jeffmor@gmail.com
  46. 46. Licença Este material está licenciado sob a Licença Creative-Commons • Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil Você pode: • – Copiar, distribuir, exibir e executar a obra – Criar obras derivadas Sob as seguintes condições: • – Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. – Uso Não-Comercial. Você não pode utilizar esta obra com finalidades comerciais. – Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta.

×