Engenharia de Software

Transcrição

Engenharia de Software
Engenharia de Software
Faculdade Nossa Cidade
Curso de Gestão de TI
Engenharia de Software
Engenharia de Software
- Histórico
.
A Engenharia de Software surgiu em meados dos
anos 1970 numa tentativa de contornar a crise do
software e dar um tratamento de engenharia (mais
sistemático e controlado) ao desenvolvimento de
sistemas de software complexos.
. Atualmente existe um destaque todo especial para a
Engenharia de Software na Web. O processo usado
para criar WebApps (aplicações baseadas na Web) de
alta qualidade. Embora os princípios básicos da WebE
sejam muito próximos da Engenharia de Software
clássica, existem peculiaridades específicas.
Engenharia de Software

Qual a importância da Engenharia de Software (ES)?
–
–
–
O desenvolvimento de um software envolve processos muitos
complexos. A ES estabelece um modelo para se construir um
programa.
A programação (programador) é apenas uma atividade dentro
do processo que envolve a construção de um software. A ES
envolve diversos intervenientes que vão desde o analista de
sistemas até o cliente usuário final.
Alguns programas muito simples são feitos por apenas um
indivíduo sem precisar utilizar uma técnica estabelecida. A
maioria dos softwares nas empresas são complexos e
necessitam de técnicas de desenvolvimento em equipe que
envolvem várias pessoas.
1
Engenharia de Software

Por que para construir um software precisa utilizar
técnicas de engenharia parecidas com a de uma casa?
–
–
–
O desenvolvimento de um software envolve profissionais
especializados em atividades complexas. Atividades de engenharia
como a construção de uma casa necessitam de técnicas de
engenharia para a qualidade do produto final.
É muito difícil determinar o prazo final de entrega de um software.
Atividades de engenharia também necessitam de engenheiros para
elaborar um cronograma para definir a entrega do produto.
Os custos de um software é muito difícil de determinar. É
necessário fazer um estudo com um orçamentista para definir os
cálculos das despesas de uma obra.
Engenharia de Software

O que é um software?
–
Um produto que os profissionais de software constroem e
mantém ao longo do tempo.
Pressman
–
Conjunto de programas separados (arquivos de configuração,
documentação, etc.) .
Summerville
Engenharia de Software

Existem tipos diferentes de software?
–
Um software pode ser classificado como:
 Básico
 Aplicativo
 Sistemas
 Cientifico e de Engenharia
 Embutido
 Computador Pessoal
 Aplicações Web
 Inteligência Artificial
 Comercial
2
Engenharia de Software

Por que existe uma crise de software?
Porque existem problemas no desenvolvimento do software.
A crise do software está relacionada à problemas que são
encontrados no desenvolvimento de software que não se limitam
ao não funcionamento de forma adequada. Envolve também
outros problemas:
 Como se desenvolve um software;
 Como mantemos um volume crescente de software existente;
 Como administrar a crescente demanda por mais software.
 Como criar um software com qualidade.
 Qual a melhor maneira para construir um software
 Qual a maneira mais rápida e barata de construir um software.
–
–
Software x Hardware

O Software atualmente é mais importante e faz
mais diferença na qualidade de um sistema do
que o Hardware (Era da Informação):
–
–
–
–
–
–
–
–
completeza da informação
usabilidade
otimização
Interface para web
inteligência
funcionalidade
compatibilidade
suporte
Características do Software





Atualmente os softwares mais complexos são
desenvolvido com técnicas de engenharia.
O desenvolvimento de software necessita de
projeto e de gerenciamento do processo.
Falhas em software indica erro de projeto ou de
implementação.
A manutenção do software é mais complicada que
a do hardware.
Software não desgasta (Normalmente deve ser
projetado para o maior tempo de vida útil possível).
3
Características do Software
A maioria dos softwares são construídos sob
medida e não a partir de componentes existentes.

–
Com a tecnologia de Orientação a Objetos e a
reusabilidade de códigos está mudando este cenário.
Motivos para Engenharia de Software


Os prazos para desenvolvimento de software são
excedidos.
Os custos para desenvolvimento de software são
cada vez maiores por causa de sua
complexidade.

Muitos erros de software são descobertos pelo
cliente depois de sua entrega.

Existe grande dificuldade em medir o progresso
do desenvolvimento de software.
Causas de problemas de Software






Não é dedicado tempo suficiente para coletar
dados sobre o desenvolvimento do software.
Muitas coisas são estimadas;
A comunicação entre o cliente e o desenvolvedor
é falha;
Falta de testes;
Gerentes com pouco know-how;
Pouco treinamento para o pessoal;
Falta de investimento em Engenharia de Software.
4
Mitos dos softwares – Visão cliente





Colocar mais programadores agiliza o processo e
evita atrazos.
Utilizar um computar mais potente resolve os
problemas de desenvolvimento.
Uma declaração geral e obvia é suficiente para
iniciar o desenvolvimento.
Mudanças podem ser feitas sem problemas na
fase de desenvolvimento.
Os programadores conseguem fazer quase tudo.
Mitos dos softwares – Visão desenvolvedor

Um programa está terminado ao funcionar.

Quanto mais cedo escrever um código mais rápido
o programa será terminado.
Só é possível avaliar a qualidade de um software
em funcionamento.


A única coisa a ser entregue em um sistema é o
programa.
Planejamento do software
5
Planejamento do software
Problemas de software ao longo do tempo
Exemplo 1
1962 - Mariner 1

Problemas de software ao longo do tempo

1962 - o foguete Mariner 1 com uma sonda
espacial para Vênus, foi desviado de seu percurso
de voo logo após o lançamento. O controle da
missão destruiu o foguete minutos após a
decolagem.

Causa: Um programador esqueceu de digitar uma
barra. Sem ela, o software tratava variações
normais de velocidade como se fossem sérios
problemas, causando falhas que acabaram por
enviar o foguete fora do curso.

Custo: 18,5 milhões dólares.
6
Problemas de software ao longo do tempo
Missões Mariner posteriores tiveram sucesso
1962 - Mariner 1 - Lançamento sem sucesso.
1962 - Mariner 2 - A nave passou a 35 mil km de Vênus enviando informações
da atmosfera.
1964 - Mariner 3 - Missão sem sucesso.
1964 - Mariner 4 - A nave passou a 9.920 km de Marte. Fotografou 22 vezes a
superfície marciana.
1967 - Mariner 5 - A sonda sobrevoou Vênus coletando informações.
1969 - Mariner 6 - A missão passou por Marte tirando fotos e analisando a
atmosférica.
1969 - Mariner 7 - Sobrevoou o pólo sul de Marte. Tirou 126 fotos.
1971 - Mariner 8 - Lançamento sem sucesso.
Mariner 9 - Primeiro satélite artificial enviado a Marte. Entrou em órbita do
planeta em 13 de novembro de 1971, após 167 dias de viagem.
Mariner 10 – 1ª nave enviada a Mercúrio. Enviou dados sobre Vênus e do
cometa Kohoutek.










Problemas de software ao longo do tempo


Exemplo 2
1978 - Coliseu Hartford
Problemas de software ao longo do tempo

1978 - o teto de treliça de aço do Coliseu Hartford
desabou sob o peso da neve molhada.

Causa: O programador projetista assumiu que o
telhado enfrentaria apenas compressão natural.

Custo: 70 milhões de dólares.
7
Problemas de software ao longo do tempo

2005 - Hartford Civic Center
Problemas de software ao longo do tempo


Exemplo 3
1982 - Trans-Siberian
Problemas de software ao longo do tempo


1982 - Desastre: O software de controle
apresentou erro e causou a maior explosão nãonuclear da históriano no gasoduto Trans-Siberian.
Causa: a CIA colocou um bug no software para
poder manipular remotamente todo o tipo de
máquinas e tecnologia. Quando o bug foi ativado o
sistema ficou em pane e causou a explosão.


Custo: Milhões de dólares e danos significativos a
economia soviética
8
Problemas de software ao longo do tempo

2013 – Gasoduto na Sibéria
Problemas de software ao longo do tempo


Exemplo 4
1996 – Ariane 5
Problemas de software ao longo do tempo



1996: o foguete Ariane 5 e satélites científicos da
Europa não-tripulado fram destruídos segundos
após seu lançamento.
Causa: o computador de orientação tentou
converter a velocidade do foguete de 64-bits para
um formato de 16 bits. O número era muito grande,
o que resultou em erro de estouro. O controle
passou para uma unidade idêntica redundante que
também falhou porque estava com o mesmo
algoritmo.
Custo: $500 milhões
9
Problemas de software ao longo do tempo

2014 – Ariane ATV-5
Problemas de software ao longo do tempo


Exemplo 5
2005 – Sentinel
Problemas de software ao longo do tempo



2005: O FBI desistiu da revisão do sistema Sentinel
idealizado para agentes compartilharem arquivos
de casos e outras informações.
Causa: Má gestão e uma tentativa de construir um
projeto de longo prazo sobre tecnologia
ultrapassada, resultou em um sistema complexo e
inutilizável.
Custo: $105 milhões jogados fora!
10
Problemas de software ao longo do tempo

2012 – Sentinel

Sistema digital de gerenciamento de casos, o
Sentinel, está finalmente pronto e funcionando
com desenvolvimento ágil e sem utilizar
tecnologias de hardware ultrapassado.
11

Documentos relacionados