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

374 visualizações

Publicada em

Engenharia de Software

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
374
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Significant mechanical and software problems have plagued the automated baggage handling system. In tests of the system, bags were misloaded, were misrouted, or fell out of telecarts, causing the system to jam. Video cameras were installed at several known trouble spots to document problems, such as the following:
    The baggage system continued to unload bags even though they were jammed on the conveyor belt. This problem occurred because the photo eye at this location could not detect the pile of bags on the belt and hence could not signal the system to stop.
    The baggage system loaded bags into telecarts that were already full. Hence, some bags fell onto the tracks, again causing the telecarts to jam. This problem occurred because the system had lost track of which telecarts were loaded or unloaded during a previous jam. When the system came back on-line, it failed to show that the telecarts were loaded.
    The timing between the conveyor belts and the moving telecarts was not properly synchronized, causing bags to fall between the conveyor belt and the telecarts. The bags became wedged under the telecarts. This occurred because telecarts were bumping into each other near the load point.
  • Significant mechanical and software problems have plagued the automated baggage handling system. In tests of the system, bags were misloaded, were misrouted, or fell out of telecarts, causing the system to jam. Video cameras were installed at several known trouble spots to document problems, such as the following:
    The baggage system continued to unload bags even though they were jammed on the conveyor belt. This problem occurred because the photo eye at this location could not detect the pile of bags on the belt and hence could not signal the system to stop.
    The baggage system loaded bags into telecarts that were already full. Hence, some bags fell onto the tracks, again causing the telecarts to jam. This problem occurred because the system had lost track of which telecarts were loaded or unloaded during a previous jam. When the system came back on-line, it failed to show that the telecarts were loaded.
    The timing between the conveyor belts and the moving telecarts was not properly synchronized, causing bags to fall between the conveyor belt and the telecarts. The bags became wedged under the telecarts. This occurred because telecarts were bumping into each other near the load point.
  • a program segment for converting a floating point number to asigned 16 bit integer was executed with an input data value outside the range representable by a signed 16 bit integer.
    This run time error (out of range, overflow), which arose in both the active and the backup computers at about the same time, was detected and both computers shut themselves down. This resulted in the total loss of attitude control. The Ariane 5 turned uncontrollably and aerodynamic forces broke the vehicle apart. This breakup was detected by an on-board monitor which ignited the explosive charges to destroy the vehicle in the air.
    Ironia: o resultado desta conversão não era mais necessário após a decolagem...
  • a program segment for converting a floating point number to asigned 16 bit integer was executed with an input data value outside the range representable by a signed 16 bit integer.
    This run time error (out of range, overflow), which arose in both the active and the backup computers at about the same time, was detected and both computers shut themselves down. This resulted in the total loss of attitude control. The Ariane 5 turned uncontrollably and aerodynamic forces broke the vehicle apart. This breakup was detected by an on-board monitor which ignited the explosive charges to destroy the vehicle in the air.
    Ironia: o resultado desta conversão não era mais necessário após a decolagem...
  • 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 ?

    ×