Escolar Documentos
Profissional Documentos
Cultura Documentos
Definições
• Engenharia:
– aplicação sistemática de conhecimentos
científicos na criação e construção de soluções
com boa relação custo / benefício.
• Software:
– instruções / programas de computador que
quando executados produzem o resultado,
função e desempenho desejados.
2012 2
Definições
• Engenharia de Software:
– aplicação de abordagem sistemática,
disciplinada e quantificável no desenvolvimento,
operação e manutenção de software.
IEEE, STD 610 – 1990
2012 3
Engenharia
2012 4
Engenharia
2012 5
Software
2012 6
Engenharia de Software
• Objetivos:
– aplicar, modelos, formalismos / técnicas e
ferramentas da ciência da computação (e áreas
afins) na produção / desenvolvimento
sistemático de software.
– aplicar métodos, técnicas e ferramentas para o
gerenciamento do processo de produção
(custos, prazos, equipe, qualidade, etc.)
– produzir documentação formal do produto, do
processo, dos critérios de qualidade e manuais.
2012 7
Engenharia de Software
• Motivação:
– baixa qualidade do SW;
– sem atender requisitos;
– “estouro” de orçamento e tempo previsto;
– vez por outra “ingerenciáveis”.
2012 8
Engenharia de Software
2012 9
Engenharia de Software
2012 10
Exemplo: Ariane 5
2012 11
Exemplo: Ariane 5 (cont.)
2012 12
Exemplo: Ariane 5 (cont.)
2012 13
Evolução do Software
2012 14
Evolução do Software
2012 15
Evolução do Software
2012 16
Evolução do Software
2012 17
Evolução do Software
2012 18
Evolução do Software
• Custo SW suplantou o de HW
• SW visto como fator de diferenciação
2012 19
Características de Software
2012 20
Características de Software
2012 21
Software
• Aplicações:
– software básico: programas escritos para apoiar
outros – compiladores, drivers, etc.;
– software de tempo real: análise e controle de
eventos (mundo real) – equipamentos médicos;
– software comercial: operação e administração –
folha, contas a pagar, estoque, etc.;
– software científico e de engenharia:
caracterizado por algoritmos numéricos –
manufatura, astronomia, fadiga mecânica, etc.;
2012 22
Software
• Aplicações (cont.):
– software embutido: residente em memória (read
only) – eletrodomésticos, controle, etc.;
– software PC: pacotes – planilhas, editor de
texto, etc.;
– software WEB: instruções executáveis por
browser – CGI, HTML, Java, Perl, etc.;
– software I.A.: algoritmos não numéricos,
solução de problemas de alta complexidade não
favoráveis à análise direta – redes neurais,
jogos, sistemas especialistas, etc.
2012 23
Software
2012 24
Software
2012 25
Software
2012 26
Software
2012 27
Qualidade: Herança
• Vantagem x Desconfiança:
– criar / adquirir novo software?
• “Crise” do final da década de 60:
– baixa qualidade / suspeita;
– Insatisfação;
– critérios imaturos.
• Cultura de desenvolvimento:
– ênfase em escrever / improvisar código;
– soluções imediatas;
– validação e verificação são ignorados
2012 28
Qualidade: Herança
2012 29
Qualidade: Atual
2012 30
Processo
• Modelos clássicos:
– seqüencial linear (cascata)
– Rapid Aplication Development (RAD)
– Evolucionários
• Prototipação (descartáveis)
• Incremental (exploratório)
• Expiral (exploratório)
2012 31
Processo
• PDCA:
– Plan: planejamento
– Do: ação / implementação
– Check: verificação / validação
– Act: correção
2012 32
Mitos x Realidade
2012 33
Mitos x Realidade
2012 34
Mitos x Realidade
2012 35
Pontos Chave
2012 36
2012 37