Armadilhas no Desenvolvimento
de Software e Estudo de Caso
Engenharia de Software
Aula 01
Prof. Luciano Leme
Engenharia de Software - Prof. Luciano Leme 2
ACIDENTES
• “O modo mais provável do mundo ser
destruído, como concorda a ma...
Engenharia de Software - Prof. Luciano Leme 3
Uma Crise no horizonte
• A indústria de Software tem tido uma
“crise” que a ...
Engenharia de Software - Prof. Luciano Leme 4
Therac-25
• Equipamento de Radioterapia com
software controlador.
• Entre 19...
Engenharia de Software - Prof. Luciano Leme 5
Therac-25
• Software foi adaptado de uma antecessora,
Therac-6:
– O disposit...
Engenharia de Software - Prof. Luciano Leme 6
Acidente no Panamá
• AAgência Internacional de Energia Atômica
declara ‘emer...
Engenharia de Software - Prof. Luciano Leme 7
Acidente no Panamá
• Especialistas encontraram equipamentos radioterápicos
‘...
Engenharia de Software - Prof. Luciano Leme
Denver International Airport
• Custo do projeto: US$ 4.9 bilhões
– 100 mil pas...
Engenharia de Software - Prof. Luciano Leme
Denver International Airport
• Erros no sistema automático de transporte de ba...
Engenharia de Software - Prof. Luciano Leme 10
London Ambulance Service
(1992)
• Perdas de chamadas, despacho duplo de
cha...
Engenharia de Software - Prof. Luciano Leme
Ariane 5
11
Engenharia de Software - Prof. Luciano Leme
Ariane 5
• Projeto da Agência
Espacial Europeia que
custou:
– 10 anos.
– US$ 8...
Engenharia de Software - Prof. Luciano Leme
Vôo inaugural em
4/junho/1996
13
Engenharia de Software - Prof. Luciano Leme
Resultado
• Explosão 40
segundos após a
decolagem.
• Destruição do
foguete e c...
Engenharia de Software - Prof. Luciano Leme 15
O que aconteceu? (I)
• Fato: o veículo detonou suas cargas explosivas
de au...
Engenharia de Software - Prof. Luciano Leme 16
O que aconteceu? (II)
• Por que o shut-down? Ocorrera um run time
error (ou...
Engenharia de Software - Prof. Luciano Leme 17
Especificamente:
O que faltou?
strict precondition 1:
{
Set."x"=FLPT and Se...
Engenharia de Software - Prof. Luciano Leme 18
Ironia Total...
• O resultado desta conversão não era nem
mais necessário a...
Engenharia de Software - Prof. Luciano Leme 19
ENEM (08/2010)
• Vazam dados de 12 milhões de inscritos no
ENEM.
• Informaç...
Engenharia de Software - Prof. Luciano Leme 20
GOL (08/2010)
• Atrasos em voos.
• Implantação de novo sistema foi apontada...
Engenharia de Software - Prof. Luciano Leme 21
Mas quais são os problemas?
• A sofisticação do software ultrapassou
nossa ...
Engenharia de Software - Prof. Luciano Leme 22
Perguntas que a Engenharia
de Software quer responder:
• Por que demora tan...
Engenharia de Software - Prof. Luciano Leme 23
Causas óbvias
• Não dedicamos tempo para coletar dados
sobre o desenvolvime...
Engenharia de Software - Prof. Luciano Leme 24
Causas menos óbvias
• O Software é desenvolvido ou projetado
por engenharia...
Engenharia de Software - Prof. Luciano Leme 25
Principais conceitos
da Eng. Software
• Especificações de requisitos
• Docu...
Engenharia de Software - Prof. Luciano Leme 26
Dúvidas
?
Próximos SlideShares
Carregando em…5
×

Eng software aula01_armadilhas

382 visualizações

Publicada em

Engenharia de Software

Publicada em: Educação
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Eng software aula01_armadilhas

  1. 1. Armadilhas no Desenvolvimento de Software e Estudo de Caso Engenharia de Software Aula 01 Prof. Luciano Leme
  2. 2. Engenharia de Software - Prof. Luciano Leme 2 ACIDENTES • “O modo mais provável do mundo ser destruído, como concorda a maioria dos especialistas, é através de um acidente. É ai que nós entramos. Somos profissionais de computação. Nós causamos acidentes.” Nathaniel Borestein
  3. 3. Engenharia de Software - Prof. Luciano Leme 3 Uma Crise no horizonte • A indústria de Software tem tido uma “crise” que a acompanha há quase 30 anos: – Aflição Crônica != Crise • Problemas não se limitam ao software que não funciona adequadamente, mas abrangem: – desenvolvimento, testes, manutenção, suprimento etc.
  4. 4. Engenharia de Software - Prof. Luciano Leme 4 Therac-25 • Equipamento de Radioterapia com software controlador. • Entre 1985 e 1987 se envolveu em 6 acidentes, causando mortes por overdoses de radiação.
  5. 5. Engenharia de Software - Prof. Luciano Leme 5 Therac-25 • Software foi adaptado de uma antecessora, Therac-6: – O dispositivo responsável para sincronizar o hardware é removido, mas o software não possui sincronismo – O software falha na tarefa de manter invariantes essenciais:o feixe de elétrons ou o feixe mais forte de radiação e a chapa se interferem na geração do raio X – O programador não tinha experiência em programação concorrente – Falhas por falta de testes integrados – Falta de documentação • http://sunnyday.mit.edu/therac-25.html
  6. 6. Engenharia de Software - Prof. Luciano Leme 6 Acidente no Panamá • AAgência Internacional de Energia Atômica declara ‘emergência radiológica’ no Panamá em 22 de Maio de 2001 • 28 pacientes super expostos; 8 morreram, 3 dos quais em decorrência direta do fato; espera-se que 3/4 dos 20 sobreviventes desenvolvam ‘sérias complicações que em alguns casos podem vir a ser fatais’
  7. 7. Engenharia de Software - Prof. Luciano Leme 7 Acidente no Panamá • Especialistas encontraram equipamentos radioterápicos ‘em perfeito funcionamento’; os dados coletados pelo sistema não indicavam nenhuma situação de emergência • Se dados são registrados para diversos blocos de blindagem contra radiação em uma única ação, temos uma dose incorreta processada pelo sistema • Finalmente o FDA concluiu que um dos fatores causadores da falha foi a ‘interpretação, por parte do software, dos dados coletados dos blocos dos feixes de radiação’ • Detalhes: http://www.fda.gov/Radiation-EmittingProducts/RadiationSafe
  8. 8. Engenharia de Software - Prof. Luciano Leme Denver International Airport • Custo do projeto: US$ 4.9 bilhões – 100 mil passageiros por dia – 1.200 voos – 53 milhas quadradas – 94 portões de embarque e desembarque – 6 pistas de pouso / decolagem 8
  9. 9. Engenharia de Software - Prof. Luciano Leme Denver International Airport • Erros no sistema automático de transporte de bagagens (misloaded, misrouted, jammed): – Atraso na abertura do aeroporto com custo total estimado em US$360 Milhões • 86 milhões de dólares para consertar o sistema 9
  10. 10. Engenharia de Software - Prof. Luciano Leme 10 London Ambulance Service (1992) • Perdas de chamadas, despacho duplo de chamadas duplicadas • Escolha ruim do desenvolvedor: experiência inadequada • http://www.cs.ucl.ac.uk/staff/A.Finkelstein/las.h
  11. 11. Engenharia de Software - Prof. Luciano Leme Ariane 5 11
  12. 12. Engenharia de Software - Prof. Luciano Leme Ariane 5 • Projeto da Agência Espacial Europeia que custou: – 10 anos. – US$ 8 Bilhões. • Capacidade 6 toneladas. • Garante supremacia europeia no espaço. 12
  13. 13. Engenharia de Software - Prof. Luciano Leme Vôo inaugural em 4/junho/1996 13
  14. 14. Engenharia de Software - Prof. Luciano Leme Resultado • Explosão 40 segundos após a decolagem. • Destruição do foguete e carga avaliados em US$ 500 milhões. 14
  15. 15. Engenharia de Software - Prof. Luciano Leme 15 O que aconteceu? (I) • Fato: o veículo detonou suas cargas explosivas de autodestruição e explodiu no ar. Por que? • Porque ele estava se quebrando devido às forças aerodinâmicas. Mas por que? • O foguete tinha perdido o controle de direção (altitude). Causa disso? • Os computadores principal e back-up deram shut-down ao mesmo tempo.
  16. 16. Engenharia de Software - Prof. Luciano Leme 16 O que aconteceu? (II) • Por que o shut-down? Ocorrera um run time error (out of range, overflow ou outro) e ambos os computadores se desligaram. De onde veio esse erro? • Um programa que convertia um valor em ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida.
  17. 17. Engenharia de Software - Prof. Luciano Leme 17 Especificamente: O que faltou? strict precondition 1: { Set."x"=FLPT and Set."y"=INT16 and -32768 <= x <= +32767 } program code: y := int(x); postcondition: {Set."x"=FLPT and Set."y"=INT16 and y=int(x)}
  18. 18. Engenharia de Software - Prof. Luciano Leme 18 Ironia Total... • O resultado desta conversão não era nem mais necessário após a decolagem...
  19. 19. Engenharia de Software - Prof. Luciano Leme 19 ENEM (08/2010) • Vazam dados de 12 milhões de inscritos no ENEM. • Informações (RG, CPF, nome de mãe, data de nascimento, nota etc.) que deveriam ser mantidas sob sigilo ficam expostas no site do organizador do exame. • Informações vazadas permitem fraudes por parte de estelionatários. • No mundo virtual, apenas gaveta e chave não são suficientes para proteger um documento?
  20. 20. Engenharia de Software - Prof. Luciano Leme 20 GOL (08/2010) • Atrasos em voos. • Implantação de novo sistema foi apontada como a causa para o problema logístico que levou aos atrasos. • Imagem da empresa prejudicada. • Milhares são vítimas de prejuízos financeiros e/ou psicológicos?
  21. 21. Engenharia de Software - Prof. Luciano Leme 21 Mas quais são os problemas? • A sofisticação do software ultrapassou nossa capacidade de construção. • Nossa capacidade de construir programas não acompanha a demanda por novos programas. • Nossa capacidade de manter programas é ameaçada por projetos ruins.
  22. 22. Engenharia de Software - Prof. Luciano Leme 22 Perguntas que a Engenharia de Software quer responder: • Por que demora tanto para concluir um projeto (não cumprimos prazos)? • Por que custa tanto (uma ordem de magnitude a mais)? • Por que não descobrimos os erros antes de entregar o software ao cliente? • Por que temos dificuldades de medir o progresso enquanto o software está sendo desenvolvido?
  23. 23. Engenharia de Software - Prof. Luciano Leme 23 Causas óbvias • Não dedicamos tempo para coletar dados sobre o desenvolvimento do software - resultando em estimativas “a olho”. • Comunicação entre o cliente e o desenvolvedor é muito fraca ou incompleta. • Falta de testes sistemáticos e completos.
  24. 24. Engenharia de Software - Prof. Luciano Leme 24 Causas menos óbvias • O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (característica 1). • Gerentes sem background em desenvolvimento de SW. • Profissionais recebem pouco treinamento formal. • Falta investimento (em ES). • Faltam métodos e automação.
  25. 25. Engenharia de Software - Prof. Luciano Leme 25 Principais conceitos da Eng. Software • Especificações de requisitos • Documentações / Diagramas • Implementações • Testes • Homologações • Configurações • Qualidade • Modelos • Revisões
  26. 26. Engenharia de Software - Prof. Luciano Leme 26 Dúvidas ?

×