Aula 2 - Introdução a Engenharia de Software

download Aula 2 - Introdução a Engenharia de Software

of 31

Transcript of Aula 2 - Introdução a Engenharia de Software

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    1/31

    Análise e Projeto de

    SistemasAula 2  – Introdução a Engenharia de

    SoftwareProfº MSc. David Lima

    E-mail: [email protected]

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    2/31

    Introdução

    • “O Software ultrapassou o Hardware comochave para o sucesso de muitos sistemasbaseados em   computador” (Pressman, pg. 3,1992)

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    3/31

    O Software é o que faz adiferença!!!

    • Completeza dainformação

    • Inteligência

    • Funcionalidade

    • Compatibilidade• Suporte

    Tornam umproduto melhor

    que outro

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    4/31

    A importância do Software

    • Durante as 3 primeiras décadas da era docomputador, o principal desafio era desenvolver um

    HARDWARE de baixo custo e alto desempenho.• O hoje o desafio é melhorar a qualidade (e reduzir 

    os custos) das soluções baseadas em SOFTWARE!

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    5/31

    A evolução do Software

    Nova RevoluçãoIndustrial

    Computação

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    6/31

    Filosofando...

    •  A mudança de uma sociedade industrial parauma baseada na informação é uma RadicalMudança Econômica:• Material tem menos valor e Informação tem mais

    valor 

     Antes: quantomenos pessoaspossuísse algo,

    maior o valor.

    Hoje: quanto maispessoas possuemalgo, maior o valor.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    7/31

    Filosofando ... Exemplo!

    • Cite as características dos sistemas operacionaisque você conhece.

    •Compare os sistemas:

    • Unix• Windows• MacOS

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    8/31

    Filosofando ... Exemplo!

    O Windows vende mais porque émais Conhecido ou é mais Conhecido

    porque vende mais???

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    9/31

    A evolução do software

    • Software é dividida em 4 Eras:

    • Primeiros anos 1950 - 1965• Segunda Era 1965 - 1975• Terceira Era 1975 - 1988• Quarta Era 1988 - ...

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    10/31

    O que é Software?

    1o - instruções (programas de computador) que,quando executadas, produzem a função e o

    desempenho desejados;2 o - estruturas de dados que permitem a

    manipulação das informações;

    3o - documentos que descrevem a operação e uso

    dos programas.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    11/31

    Características do Software

    • O Software é desenvolvido ou projetado por engenharia,não manufaturado no sentido clássico:

    • Custos são concentrados no trabalho de engenharia.

    • Projetos não podem ser geridos como projetos demanufatura.• “Fábrica de Software!”

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    12/31

    Características do Software

    • Software não desgasta!

    • Software não é sensível aos problemas ambientaisque fazem com que o hardware se desgaste.

    • Toda falha indica erro de projeto ou implementação:manutenção do SW é mais complicada que a do HW.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    13/31

    Características do Software

    •  A maioria dos softwares é feita sob medida e nãomontada a partir de componentes existentes.

    • != Hardware.

    • Situação esta mudando:

    • Orientação a objetos.

    • Reusabilidade é o   “Santo Graal”(diminui custos emelhora projetos).

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    14/31

    Aplicações de Software

    • Software Básico

    • Software de Tempo Real

    • Software Comercial• Software Científico ou de Engenharia

    • Software Embutido

    • Software de Computador Pessoal• Software de Inteligência Artificial

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    15/31

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    16/31

    Denver International Airport

    • Custo do projeto: US$ 4.9 bilhões

    • 100 mil passageiros por dia• 1,200 vôos

    • 53 milhas quadradas

    • 94 portões de embarque e desembarque

    • 6 pistas de pouso / decolagem

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    17/31

    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 para consertar o sistema

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    18/31

    Ariane 5

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    19/31

    Ariane 5

    • Projeto da Agência EspacialEuropéia que custou:

     –  10 anos.

     –  US$ 8 Bilhões.

    • Capacidade 6 toneladas.

    • Garante supremacia européia noespaço.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    20/31

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    21/31

    Ariane 5

    • Explosão 40segundos após a

    decolagem.

    • Destruição dofoguete e carga

    avaliada em US$500 milhões.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    22/31

    O que aconteceu? (I)

    • Fato: o veículo detonou suas cargasexplosivas 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(atitude). Causa disso?

    • Os computadores principal e back-up deramshut-down ao mesmo tempo.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    23/31

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    24/31

    Ironia...

    • O resultado desta conversão não era maisnecessário após a decolagem...

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    25/31

    Quais são os problemas?

    •  A sofisticação do software ultrapassou nossacapacidade de construção.

    • Nossa capacidade de construir programas nãoacompanha a demanda por novos programas.

    • Nossa capacidade de manter programas é ameaçadapor projetos ruins.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    26/31

    Perguntas que Engenharia deSoftware quer responder 

    • Porque demora tanto para concluir um projeto (nãocumprimos prazos)?

    • Porque custa tanto (uma ordem de magnitude amais)?

    • Porque não descobrimos os erros antes de entregaro software ao cliente?

    • Porque temos dificuldade de medir o progressoenquanto o software está sendo desenvolvido?

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    27/31

    Causas óbvias

    • Não dedicamos tempo para coletar dados sobre odesenvolvimento do software - resulta em estimativas   “aolho”.

    • Comunicação entre o cliente e o desenvolvedor é muitofraca.

    • Falta de testes sistemáticos e completos.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    28/31

    Conclusão

    • Software é elemento chave para o sucesso. Mas:

    • Software não é hardware.

    • Software não é fácil.• Software mata.

    • Precisamos de ajuda.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    29/31

    Exercício para próxima aula

    • Descreva 2 casos de problemas causadospor erros em software que você conhece.

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    30/31

  • 8/18/2019 Aula 2 - Introdução a Engenharia de Software

    31/31

    DÚVIDAS