Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Software
Apresentao da disciplina
Ementa
Avaliao
Datas importantes
Referncias
Definio: Engenharia de Software
Qualidade de software.
Produtividade no desenvolvimento, operao
e manuteno de software.
Qualidade versus Produtividade.
Permitir que profissionais tenham controle
sobre o desenvolvimento de software dentro
de custos, prazos e nveis de qualidade
desejados.
Engenharia de Software no CCA-UFES
Apresentao da disciplina
Programao de computadores
Onde est a computao?
Existem diversas possibilidades para se aplicar a computao.
Vrios negcios bem sucedidos esto relacionados empresas da
tecnologia:
Programas feitos na Universidade
Tipos de software
Software de Sistema:
Coleo de programas escritos para servir outros
programas.
Caractersticas:
Interao intensa com hardware do computador
Uso intenso por mltiplos usurios
Compartilhamento de Recursos
Ex: Compiladores, editores e componentes de sistemas
operacionais
Software mundo real
Tipos de software
Software Comercial:
Processamento de Informaes comercial
Aplicaes dessa rea reestruturam os dados existentes
de modo a facilitar operaes comerciais ou tomada de
deciso de gesto de negcios
Ex: Folha de pagamentos, contas a pagar/receber ,
controle estoque e outros.
Software mundo real
Tipos de software
Software Cientfico e de engenharia:
Esse tipo de software caracterizado por processar
nmeros
Simulao de sistemas
Tipos de software
Software para Inteligncia Artificial
Faz uso de algoritmos no numricos para resolver
problemas complexos que no so passiveis de
computao ou analise direta.
Ex: Sistemas Especialistas, tambm chamados sistemas
baseados em conhecimento, de reconhecimento de
padres (de imagem e de voz)
Software mundo real
Tipos de software
Outros
E-commerce (B2B, B2C, B2M, e outros)
Aplicaes mveis (iPhone, iPad, Tablets em geral,
Android)
Jogos e entretenimento
Robtica
Redes sociais
Software mundo real
Facebook - 9.2MLoc
Assuma que:
uma folha A4 tem em torno de 50
linhas.
uma pilha de 1000 folhas A4 tem em
torno de 10 centmetros de altura
Logo,
1.000.000 de LOCs, caso impresso =
uma pilha de 2 metros de altura!
Caso todo o cdigo do Debian 5.0
fosse impresso, teria a altura de um Torre Burj Dubai
(~800m - 160
prdio de ~216 andares = ~1100 andares)
metros!!! Maior prdio
do mundo
(04/01/2010)
Engenharia de Software
The Curious Case of the CHAOS Report 2009
1994 1996 1998 2000 2002 2004 2006 2009
Successful 16% 27% 26% 28% 34% 29% 35% 32%
1
Challenged 53% 33% 46% 49% 51% 53% 46% 44%
2
Failed 31% 40% 28% 23% 15% 18% 19% 24%
1 - (late, over budget and/or with less than the required features and functions)
2 - (cancelled prior to completion or delivered and never used)
http://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.html
Software = arte?
Consequncias
Prejuzo de mais de US$ 370.000.000,00 em 1996
Tragdias envolvendo software
2 Caso real
Therac-25
Therac-25 era uma mquina de
radioterapia controlada por computador;
Problema
Emisso de doses indevidas de radiao;
Principais causas
O cdigo do software no havia sido revisado/testado;
O projeto do software no havia sido documentado com detalhes
suficientes para permitir o entendimento dos erros;
A documentao do sistema fornecida aos usurios no explicava o
significado dos cdigos de erro que a mquina retornava...
Tragdias envolvendo software
2 Caso real
Therac-25
Principais causas (continuao)
O software de modelos mais antigos havia sido reutilizado sem se
considerar as diferenas no hardware
O software considerava que os sensores sempre funcionavam
corretamente, e no havia como verificar isto;
O sistema de controle no operava sincronizado com a interface
usada pelo operador da mquina, e caso o operador mudasse a
configurao da mquina muito rapidamente, o sistema no atribua
os valores digitados para os controles (o que levava a aplicao das
doses letais);
Consequncias
Houve uma srie de pelo menos 6 acidentes entre 1985 e 1987, nos
quais os pacientes receberam overdose de radiao;
Pelo menos cinco mortes aconteceram devido aos acidentes;
Tragdias envolvendo software
3 Caso real
Desastre com AirBus 320
Problema
Navio US Vicennes derrubou um Airbus 320
em 1988
Principais causas
Falha no software de reconhecimento,
confundindo o avio com um F-14
Consequncias
290 mortes
Tragdias envolvendo software
2 Caso real
Game - O Rei Leo animado
Problema
O jogo no funcionava em uma variedade de
modelos de computadores
Principais causas
Os desenvolvedores da Disney testaram o
jogo apenas naqueles computadores
prximos aos que os eles usaram no
desenvolvimento.
Consequncias
Enorme prejuzo para empresa, com devoluo de dinheiro aos
clientes e reformulao do game.
Outros casos reais
http://www.net-security.org/secworld.php?id=12098
22 people wrongly arrested in Australia due to
failures in new NZ $54.5 million courts computer
system
Army computer glitches hinder co-ordinated efforts
A new NZ $54.5 million ($42.7 million or 26.8 in insurgent tracking
million) computer system linking New South Wales
courts and allowing documents to be lodged An army computing system designed to share real-
electronically led to damages claims for unlawful time intelligence with troops on the front line has
arrest and malicious prosecution, after 3,600 hindered troops by being unable to perform simple
defects in the electronic transfer of data from the analytical tasks. The $2.7 billion cloud-based
courts to the polices database led to the wrongful computing network system runs slowly when
arrest of 22 individuals. multiple users are on the system at the same time
and the systems search tool made finding the
reports difficult as the information mapping software
was not compatible with the armys existing search
software.
Desenvolvimento - Problemas de comunicao
Outras definies
Ferramentas
Mtodos Pessoas
Processo
Foco na qualidade
Ementa
Datas sugeridas
Prova 1 - 04/05/2012
Prova 2 - 29/06/2012
Data definida
Prova final 12/07/2012
Local das aulas
O que Software?
O que engenharia de software?
Qual a diferena entre engenharia de software
e cincia da computao?
Qual a diferena entre engenharia de software
e engenharia de sistemas?
O que um processo de software?
O que um modelo de processo d
Engenharia de Software