Qualidade de Software no Século XXI - v2

2,225 views

Published on

Nestes slides o conceito de qualidade de software é abordado, e como ele é atacado pela disciplina de Qualidade de software em relação às visões dos atores que participam do processo de criação e distribuição do software.
Em seguida, são mostrados defeitos famosos tendo como origem falhas no software, desde a década de 60 até os dias atuais.
Ao final, são apresentadas novas plataformas esperadas para emergirem na próxima década, 2010-2020, como a Internet das Coisas, Big Data, automóveis e o próprio corpo humano e os respectivos desafios de qualidade no software subjacente.

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

No Downloads
Views
Total views
2,225
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
102
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Qualidade de Software no Século XXI - v2

  1. 1. “Qualidade de Software no século XXI”<br />Bruno Elias Penteado<br />Coordenador de Qualidade de Software MStech<br />Mestre em Ciência da Computação – UNESP<br />Certificações: <br />CBTS, ISTQB CTFL, CTAL-TA e CTAL-TM, <br />Micosoft Web Apps C#<br />21/09/2011<br />
  2. 2. Qualidade de Software no século XXI<br />Tópicos<br />O que é qualidade de software?<br />Piores bugs da história<br />Novas plataformas<br />Vale a pena conhecer mais e investir em qualidade de software?<br />
  3. 3. O que é Qualidade de Software?<br />
  4. 4. O que é Qualidade de Software?<br />Qualidade<br />Motivação: dependência crescente de sistemas computacionais em nossas vidas<br />MAS....<br />O que é um software com qualidade?<br />Conformidade às exigências?<br />De quem? <br />
  5. 5. O que é Qualidade de Software?<br />Atores na qualidade de software<br />Gerente projeto<br />Programador<br />Testador<br />Usuário<br />Cliente<br />
  6. 6. O que é Qualidade de Software?<br />Ideias sobre qualidade de software<br />Defeito zero é alta qualidade<br />Grande número de funções é alta qualidade<br />Codificação elegante é alta qualidade<br />Alto desempenho é alta qualidade<br />Baixo custo de desenvolvimento é alta qualidade<br />Desenvolvimento rápido é alta qualidade<br />Facilidade para o usuário é alta qualidade<br />
  7. 7. O que é Qualidade de Software?<br />O que é qualidade?<br />Qualidade é valor para alguma pessoa<br />Vale o custo x benefício?<br />Pagarão para ter seus requisitos atendidos?<br />
  8. 8. O que é Qualidade de Software?<br />Qualidade?<br />Caso: Google Maps<br />SIG com fotos de satélite de alta resolução<br />Determina rotas de trânsito<br />
  9. 9. O que é Qualidade de Software?<br />Qualidade?<br />Caso: Google Maps<br />Usado também para o mal<br />Jornal da Cidade: Bauru, 3/5/2011<br />
  10. 10. O que é Qualidade de Software?<br />Qualidade<br />Não significa ausência de erros!<br />Não garante valor ao software<br />Muitos erros pode significar menor valor<br />Exemplos?<br />
  11. 11. O que é Qualidade de Software?<br />Qualidade<br />Conformidade com requisitos não é suficiente!<br />Requisito é o meio: fornecer valor para quem?<br />Requisitos identificam as pessoas importantes?<br />Requisitos capturam seus valores?<br />
  12. 12. O que é Qualidade de Software?<br />“Qualidade é valor para alguma pessoa disposta a pagar por seus benefícios”<br />
  13. 13. Qualidade de Software<br />
  14. 14. Qualidade de Software<br />Cenário<br />The National Institute of Standards and Technology (NIST) attributed a hefty price tag to the problem claiming software bugs are costing the US economy $US 59.5 billion yearly<br />NIST, 2002<br />A disciplina de Qualidade de Software tenta lidar com todos os atores envolvidos, tendo como objetivo final um software com as características de qualidade relevantes a cada um deles.<br />
  15. 15. Qualidade de Software<br />Processo de Qualidade de Software<br />Prevenção: garantia por meio de processos;<br />Detecção: controle por meio de testes;<br />
  16. 16. Qualidade de Software<br />Processo<br />Sequência de procedimentos + atores + artefatos<br />Objetivo: previsibilidade de qualidade ao produto final<br />Modelos de melhoria de processo<br />Produção de software<br />CMMi – CapabilityMaturityModelintegation<br />MPS.Br – Melhoria do Processo de Software Brasileiro<br />
  17. 17. Qualidade de Software<br />Padrões de qualidade<br />Gerais<br />ISO 9126 – Qualidade de produto de software<br />ISO 12207 – Qualidade do processo de software<br />ISO 27000 – Segurança da informação<br />IEEE 829 – Documentação de testes<br />IEEE 1028 – Revisão de software<br />IEEE 1044 – Classificação de incidentes<br />BS 7925 – Técnicas de teste<br />(...)<br />Específicos por indústria<br />DO-178B – software aviônico<br />FDA 21 – software médico<br />(...)<br />
  18. 18. Qualidade de Software<br />Padrão ISO 9126<br />Requisitos funcionais e não-funcionais<br />É fácil de modificar?<br />É rápido e enxuto?<br />É fácil de usar?<br />É imune a falhas?<br />Satisfaz as necessidades?<br />Executa em outro ambiente?<br />
  19. 19. Qualidade de Software<br />Padrão ISO 9126<br />A importância depende do tipo de software<br />
  20. 20. Qualidade de Software<br />Testes<br />Abordagem para os testes<br />Mostrar que o sistema:<br />Faz o que não deve fazer;<br />Não faz o que deve fazer;<br />
  21. 21. Qualidade de Software<br />Quem testa o software?<br />Testers podem ser desenvolvedores menos qualificados<br />Google: Software Engineer in Test<br />Microsoft: Software DevelopmentEngineer in Test<br />
  22. 22. Qualidade de Software<br />Qualidade custa caro?<br />Definição econômica de qualidade:<br />“É sempre mais barato fazer certo na primeira vez!”<br />
  23. 23. Qualidade de Software<br />Qualidade leva muito tempo?<br />Nunca se tem tempo para fazer da forma correta<br />Sempre existe tempo para refazer<br />A cada R$ 1,00 em desenvolvimento, de R$ 2,00 a R$ 3,00 são gastos com retrabalho<br />
  24. 24. Qualidade de Software<br />Vale a pena investir?<br />Custo com qualidade: <br />Prevenção + detecção + falhas internas<br />Treinamentos, testes, bugs corrigidos antes de release<br />Custo com falhas (externas): <br />Custo da falha em produção, com o usuário<br />Pode ser vidas.<br />Custo com qualidade < custos das falhas<br />
  25. 25. Qualidade de Software<br />Testes<br />Até quando testar?<br />Variação conforme indústria<br />
  26. 26. Bugs históricos<br />
  27. 27. Bugs históricos<br />O que é um bug?<br />Primeiro bug: computador Mark II, na Universidade de Harvard (1945)<br />
  28. 28. Bugs históricos<br />Mariner I – 1962<br />Missão observar para o planeta Vênus<br />Fórmula matemática foi equivocadamente transcrita para o computador<br />Desviou de seu curso e foi destruído 4 minutos após lançamento<br />Prejuízo: US$ 18,5 mi<br />
  29. 29. Bugs históricos<br />Therac-25 – 1985/1987<br />Dispositivo de terapia por radiação sobre células cancerosas falha e libera doses letais de radiação em vários consultórios médicos<br />Condição de disputa no SO<br />5 mortes, várias pessoas feridas<br />
  30. 30. Bugs históricos<br />Míssil Patriot – 1991<br />Míssil de defesa<br />Dhahran, Arábia Saudita<br />Erro de software no relógio do míssil: a cada 100 horas o relógio interno do sistema desviava um terço de segundo<br />Recomendação era rebootar o sistema de tempos em tempos<br />Resultado: 600 metros de erro na distância em uma interceptação<br />28 soldados americanos mortos<br />
  31. 31. Bugs históricos<br />Divisão de pontos flutuantes nos processadores Pentium da Intel – 1993<br />Erro em divisões dentro de uma faixa de números (erro ~0,006% no arrendondamento)<br />3 a 5 milhões de peças com defeito<br />Recall para todos que quiseram trocar<br />Custou à Intel US$ 475 milhões<br />
  32. 32. Bugs históricos<br />Ariane 5 vôo 501 – 1996<br />Foguete com código reutilizado do Ariane 4 (outro hardware);<br />Overflow de inteiro: conversão de floatde 64-bits para inteiro 16-bits com sinal;<br />O processador primário do foguete sobrecarrega os motores que se desintegraram em 40 segundos;<br />Não tripulado (sem vítimas); prejuízo de US$ 370 milhões<br />
  33. 33. Bugs históricos<br />Bug do milênio (Y2K) – 2000<br />Datas com apenas 2 dígitos para o ano<br />Uma das maiores histerias da história<br />Ao virar o ano 2000, a preocupação era que contasse como 1900<br />Entre US$ 300 e US$ 500 bi no mundo todo<br />Bug de 2038<br />time_tem C  número de segundos a partir de 1/1/1970. Quando usado 4 bytes = 19/1/2038<br />
  34. 34. Bugs históricos<br />Toyota Prius – 2010<br />Problema no software do sistema ABS de freios – acelerador fica preso, dificultando desaceleração<br />Recall de 400.000 veículos<br />~ US$ 2 bilhões de prejuízo, desvalorização de 15% nas ações<br />Fonte: BBC, Computer World UK<br />
  35. 35. Bugs históricos<br />Play Station Network - 2011<br />Invasão do sistema<br />Dados privados e de cartão de crédito de ~70 mi de pessoas foram roubados<br />
  36. 36. Problemas atuais?<br />
  37. 37. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Redes Sociais<br />Identidade on-line  Privacidade<br />Protegidos pelas políticas definidas nos Termos de Serviço dos sites<br />Integração no smartphone. E se roubarem?<br />Geolocalização<br />
  38. 38. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Google StreetView<br />Gov. da Alemanha proibiu<br />Fere privacidade<br />
  39. 39. Próximos bugs?<br />Apps Móveis<br />Malwares disponibilizados como aplicações<br />+50.000 usuários afetados<br />Apple Store, Market<br />
  40. 40. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Urna eletrônica<br />Fabricante diz não ser segura<br />Não tem auditoria independente<br />
  41. 41. Próximos bugs?<br />“Pentágonodizqueresponderá a cyber ataques com forçamilitar”<br />
  42. 42. O que nos espera<br />
  43. 43. Futuro<br />Novas plataformas e seus desafios de qualidade<br />Automóveis<br />Corpo humano<br />Internet das coisas<br />Big Data<br />
  44. 44. Futuro<br />Novas plataformas e seus desafios de qualidade<br />Automóveis<br />Corpo humano<br />Internet das coisas<br />Big Data<br />
  45. 45. Futuro – novas plataformas<br />Internet ofThings<br />RFID, sensores wireless<br />Monitoramento contínuo<br />Integração inteligente<br />
  46. 46. Futuro – novas plataformas<br />Internet ofThings<br />Mais “coisas” conectadas do que pessoas<br />PCs, tablets, smartphones<br />
  47. 47. Futuro – novas plataformas<br />Internet ofThings<br />~2020: ~50 bilhões de “coisas” na Internet (nosso corpo, carro, relógio, gado)<br />
  48. 48. Futuro – novas plataformas<br />Desafios de qualidade?<br />Confiabilidade: disponibilidade das informações;<br />Segurança: privacidade, interceptação de informação;<br />Interoperabilidade: padronização;<br />
  49. 49. Futuro<br />Novas plataformas e seus desafios de qualidade<br />Automóveis<br />Corpo humano<br />Internet das coisas<br />Big Data<br />
  50. 50. Futuro – novas plataformas<br />Big Data<br />Dados gerados em grande escala (terabytes, petabytes);<br />Percepção de padrões;<br />Novas formas de trabalhar;<br />Processamento paralelo;<br />Bases de dados não convencionais;<br />
  51. 51. Futuro – novas plataformas<br />Big Data<br />Capacidade de criação excede de longe a de armazenamento;<br />Redes sociais, registros médicos, vídeos, dados astronômicos, sensores...<br />*: Giga < Tera < Peta < Exa < Zetta<br />
  52. 52. Futuro – novas plataformas<br />Big Data<br />Fontes: rastreamento das deslocamentos, atualidades sociais, dados médicos, hábitos e preferências<br />Personalização de conteúdo<br />
  53. 53. Futuro – novas plataformas<br />Big Data<br />Apple, Google, Twitter processados por usar dados indevidamente;<br />
  54. 54. Futuro – novas plataformas<br />Big Data<br />Desafios de qualidade?<br />Acurácia: precisão dos dados;<br />Interoperabilidade: formatos e estruturas de dados;<br />Eficiência: tempo de execução e espaço consumido;<br />Segurança: privacidade, vazamento de informação;<br />Usabilidade: visualização dos dados;<br />
  55. 55. Futuro<br />Novas plataformas e seus desafios de qualidade<br />Automóveis<br />Corpo humano<br />Internet das coisas<br />Big Data<br />
  56. 56. Futuro – novas plataformas<br />Automóveis<br />Carros<br />E se seu carro se conectar à Internet?<br />Diferenciação por tecnologia<br />
  57. 57. Futuro – novas plataformas<br />Automóveis <br />Carros<br />Sistemas multimídia embutidos de fábrica<br />Windows EmbeddedAutomotive<br />Padrão AUTOSAR (AUTomotive Open System ARchitecture)<br />
  58. 58. Futuro – novas plataformas<br />Automóveis<br />Carros<br />E se seu carro se dirigir sozinho, auto-estacionar?<br />
  59. 59. Futuro – novas plataformas<br />Automóveis<br />Carros<br />E se hackers desabilitarem seu freio?<br />
  60. 60. Futuro – novas plataformas<br />Automóveis<br />Recalls frequentes<br />
  61. 61. Futuro – novas plataformas<br />Automóveis<br />Desafios de qualidade?<br />Confiabilidade: recuperação em caso de erros;<br />Segurança: ataques ao software;<br />Eficiência: consumo de energia;<br />Usabilidade: muitos dados para o motorista;<br />
  62. 62. Futuro<br />Novas plataformas e seus desafios de qualidade<br />Automóveis<br />Corpo humano<br />Internet das coisas<br />Big Data<br />
  63. 63. Futuro – novas plataformas<br />Corpo humano<br />Dispositivos médicos<br />Wearable computing<br />Biometria<br />
  64. 64. Futuro – novas plataformas<br />Corpo humano<br />Monitoramento de saúde: batimento cardíaco, temperatura...;<br />Integração com smartphones;<br />
  65. 65. Futuro – novas plataformas<br />Corpo humano<br />Monitoramento de desempenho de atletas;<br />
  66. 66. Futuro – novas plataformas<br />Corpo humano<br />Dispositivos médicos<br />Implantes sofisticados  mini computadores<br />
  67. 67. Futuro – novas plataformas<br />Corpo humano<br />Dispositivos médicos<br />Como se proteger de ataques?<br />
  68. 68. Futuro – novas plataformas<br />Corpo humano<br />Desafios de qualidade?<br />Segurança: privacidade, ataques;<br />Confiabilidade: tolerância a falhas;<br />Eficiência: consumo de energia;<br />
  69. 69. Recapitulando...<br />O que é qualidade de software?<br />Piores bugs da história<br />Novas plataformas para o século XXI<br />
  70. 70. Próximos bugs?<br />Então... software não é confiável?<br />Limitação humana<br />Pessoas não conhecem/dominam tudo;<br />Pessoas tem habilidades, mas não são perfeitas;<br />Pessoas cometem erros<br />Pressões por tempo, custo<br />Especificações incompletas<br />Manutenção em código<br />“Grandes poderes trazem grandes responsabilidades”<br />
  71. 71. Recapitulando...<br />Vale a pena conhecer mais e investir em qualidade de software?<br />

×