contr avali engenharia de software-introdução
DESCRIPTION
Controle e avaliação parte 1TRANSCRIPT
Introdução à Disciplina 2
Engenharia de Software
Engenharia = “é a atividade em que os conhecimentos científicos são empregados para resolver problemas práticos”
Engenharia de Software = “é a atividade em que os [conhecimentos científicos] são empregados para resolver problemas práticos relacionados à construção de software”
Introdução à Disciplina 3
Objetivo
“Um dos objetivos básicos da Engenharia de Software é transformar a criação de sistemas software realizada de maneira artística, indisciplinada e pouco entendível para uma forma devidamente controlada, quantificada e previsível.”
Introdução à Disciplina 4
Origem...em 1968, especialistas se reúnem em Garmisch, para discutir problemas de
desenvolvimento de software
http://homepages.cs.ncl.ac.uk/brian.randell/NATO/index.html
Introdução à Disciplina 5
problemas “da época”
Produtos de Software de baixa qualidade e sem atender requisitos e
Projetos realizados acima do orçamento e do tempo previsto e vez por outra ingerenciáveis
6
A Crise de Software
Introdução à Disciplina 7
"[The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem." Edsger Dijkstra: The Humble Programmer
Introdução à Disciplina 8
A crise de Software
Introdução à Disciplina 9
O Caso do DABHS (Denver Airport Baggage Handling System)
Características: 4000 Telecars 21 milhas de trilhos 5000 Olhos Eletrônicos, 400 Receptores de Rádio, 56
Scanners, 100 computadores em redeEstava planejado que o Aeroporto de Denver abriria em 31 de Outubro de 1993
Problemas no desenvolvimento do DABHS fizeram que o aeroporto abrisse em 28 de Fevereiro de 1995
Prejuízos devido ao atraso: Capacidade do sistema foi drasticamente
diminuída Aproximadamente $ 500.000.000 ($1.1M por
dia)
Introdução à Disciplina 10
O Caso da Integração SABRE
SABRE (Semi-Automated Business Research Environment ) Sistema de Reserva da American Airlines Terminado no fim da década de 50 Construído pela IBM $2 bilhões
Tentativa de Integração com sistemas de reserva de carros e hotel Em 1992 o projeto foi cancelado $165.000.000 jogados fora
Introdução à Disciplina 11
Therac-25
Equipamento de Radioterapia, controlado por computador criada pela empresa AECL (Atomic Energy of Canada Limited) Muito moderna para sua época
Entre 1985 e 1987 se envolveu 6 em acidentes 5 mortes por overdoses de radiação
Introdução à Disciplina 12
Therac-25Causas: O código do software não havia sido
revisado/testado independentemente;
O projeto do software não havia sido documentado com detalhes suficientes para permitir o entendimento dos erros
A documentação do sistema fornecida aos usuários não explicava o significado dos códigos de erro que a máquina retornava
http://pt.wikipedia.org/wiki/Therac-25
Introdução à Disciplina 13
Ariane 5
Projeto da Agência Espacial Européia 10 anos de desenvolvimento US$ 8 Bilhões
Carga avaliada em US$500 Milhões
Em 4 de junho de 1996, menos de um minuto após o lançamento o foguete se autodestruiu
Introdução à Disciplina 14
Ariane 5
Causa:
Ocorreu um run time error (erro de execução) e ambos computadores se desligaram.
Um programa que convertia um valor de ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida. Inclusive o resultado da conversão não era mais
necessário após a decolagem.
15
Processos para construção de Software
Introdução à Disciplina 16
Introdução à Disciplina 17
Processo de Desenvolvimento de Software
Modelo Cascata
Introdução à Disciplina 18
Análise de Requisitos
Entendimento das necessidades do clienteEspecificação das necessidades Linguagem mais técnica
Análise da viabilidade do escopoEstimativas de Custo e Prazo
Introdução à Disciplina 19
Para que “Análise de Requisitos”?
Introdução à Disciplina 20
Processo de Engenharia de Requisitos
Introdução à Disciplina 21
Gerenciamento de Requisitos
Evolução dos requisitos
Introdução à Disciplina 22
Gerenciamento de mudanças de requisitos
Introdução à Disciplina 23
Análise e Projeto
Desenho lógico da soluçãoTomada de decisão sobre coisas como Linguagem de Programação Plataforma de Desenvolvimento Integração com outros sistemas Detalhes técnicos
Introdução à Disciplina 24
Arquitetura Lógica de Software
Introdução à Disciplina 25
Exemplo de Arquitetura Física
Introdução à Disciplina 26
Implementação
Codificação do sistemaIntegração dos módulosTestes isoladosOtimização de módulos já construídos
Introdução à Disciplina 27
Tecnologias de desenvolvimento de Software
J2ME J2SE J2EE
Windows COM+ Services
Common Language Runtime
Base Class Library
ADO.NET and XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C# JScript …
Windows COM+ Services
Common Language Runtime
Base Class Library
ADO.NET and XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C# JScript …
Vis
ual S
tud
io.N
ET
Introdução à Disciplina 28
Testes
Tem como objetivo identificar erros inseridos durante a construção Testes Funcionais Testes de Performance Testes de Carga Testes de Certificação ...
Introdução à Disciplina 29
ImplantaçãoTem como objetivo a instalação do software no ambiente final de execução
InstalaçãoTreinamentoConfiguraçãoAdaptação
Introdução à Disciplina 30
Processo de Desenvolvimento
31
Outros modelos de ciclo de vida do software
Introdução à Disciplina 32
Modelo de prototipação
Introdução à Disciplina 33
Modelo orientado a reuso
Introdução à Disciplina 34
Desenvolvimento incremental
Introdução à Disciplina 35
Modelo Espiral (evolucionário)
Introdução à Disciplina 36
Exercício I
Identificar todos os modelos de processos apresentados e construir um quadro comparativo.
Postar no grupo
37
Por que organizar o desenvolvimento de software??
Introdução à Disciplina 38
Windows Vista
5000 desenvolvedores (sem incluir pessoal não-técnico);40 milhões de linhas de código;16 milhões de linhas de código somente nos últimos 3 anos;Versões compiláveis todos os dias;Testes de regressão;Intervalo de 3 dias para um mudança submetida aparecer no executável;~1.7 pessoas testando para cada programador;Precisa ter compatibilidade com versões anteriores;Precisa ser instalado em milhares de configurações diferentes;
Introdução à Disciplina 39
intuitive surgical da vinci
Introdução à Disciplina 40
intuitive surgical da vinci
Introdução à Disciplina 41
Telecomunicação e Mobilidade
Introdução à Disciplina 42
Indústria automotiva
Electronic Stability Program
Introdução à Disciplina 43
Transações Financeiras
44
Alguns números atuais...
Introdução à Disciplina 45
Quanto melhoramos?
Chaos Report
16%
27%
26%
28%
26%
29%
31%
40%
28%
23%
28%
18%
53%
33%
46%
49%
46%
53%
0% 20% 40% 60% 80% 100%
1994
1996
1998
2000
2002
2004
Succeeded
Failed
Challenged
Introdução à Disciplina 46
0
10
20
30
40
50
60
1994 1996 1998 2000 2002 2004 2006 2009
Successful
Challenged
Failed
chaos report
Introdução à Disciplina 47
Team Size {dev vs. test}Product
Dev Team Size
Test Team Size
NT 3.1 (6->) 200 140
NT 3.5 300 230
NT 3.51 450 325
NT 4.0 800 700
Win2k 1400 1700
o século de software...ou o século dos problemas de software? – Silvio Meira
Introdução à Disciplina 48
Defect Rates Data
ProductandTeam Size
Defects:Per yearPer Dev
Time to Fix:Per Defect
Defects:Per Day
TotalDefect Fix Time
NT 3.1, 200 2 20 minutes
1 20 minutes
NT 3.5, 300 2 25 minutes
1.6 41 minutes
NT 3.51, 450 2 30 minutes
2.5 1.2 hours
NT 4.0, 800 3 35 minutes
6.6 3.8 hours
Win2k, 1400 4 40 minutes
15.3 10.2 hours
With serialized development: Good, small teams operate efficiently Even the absolute best large teams are
always broken, and always serialized
o século de software...ou o século dos problemas de software? – Silvio Meira
Introdução à Disciplina 49
Mas Engenharia de Software não é só técnica...
“The book demonstrates that the major issues of software development are human, not technical.”
50
Mas nem tudo está perdido....
Introdução à Disciplina 51
Corpo da Engenharia de Software (SWEBOK)
Introdução à Disciplina 52
Corpo da Engenharia de Software (SWEBOK)
Introdução à Disciplina 53
CMMi – Capability Maturity Model Integration
Introdução à Disciplina 54
Em OtimizaçãoEm Otimização
Gerenciado QuantitativamenteGerenciado Quantitativamente
DefinidoDefinido
Largamente DefinidoLargamente Definido
Parcialmente DefinidoParcialmente Definido
GerenciadoGerenciado
Parcialmente GerenciadoParcialmente Gerenciado
AA
BB
CC
DD
EE
FF
G
2
3
4
5
Relacionamentocom o CMMI
MR-MPS
Introdução à Disciplina 55
PMBokCorpo de conhecimento da Gestão de ProjetosTem como objetivo divulgar e padronizar as melhores práticas de gestão de projetos