Post on 07-Jul-2018
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: davidwfl@gmail.com
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