Forças por Trás da Emergência Engenharia de Software
· Inabilidade para predição de tempo, esforço e custo em desenvolvimento de software.
· Ruim qualidade do software produzido até então.
· Modificação da razão: Custo de Hardware/Custo de Software.
· Problemas de manutenção do software.
· Avanços da tecnologia de hardware.
· Avanços em técnicas para software.
· Crescente demanda por novos softwares, maiores e mais complexos.
A Crise do Software
Diz respeito a uma série de problemas encontrados no desenvolvimento de software, relacionados a como desenvolvê-lo, mantê-lo e a como suprir a crescente demanda por ele.
Principais Problemas Encontrados
· Estimativas ruins de custo e tempo.
· Baixa produtividade humana.
· Software com qualidade ruim.
· Fracas indicações sobre produtividade, não permitindo a avaliação de novas ferramentas, técnicas e padrões.
· Insatisfação do usuário final.
· Manutenção difícil do software.
Causas da Crise do Software
· Capacidade técnica insuficiente das pessoas responsáveis pelo desenvolvimento.
· Pouco treinamento em novas técnicas.
· Resistência imposta pelos responsáveis pelo desenvolvimento à introdução de novas técnicas.
· Falta de processos e métodos.
· Documentação insuficiente.
O Problema Clássico do Software
O software é um produto lógico e não físico Þ custos concentram-se no desenvolvimento e não na produção Þ a ênfase deve ser dada em técnicas para gerenciamento.
Mas Afinal, o que é a Engenharia de Software?
· Premissa: É um ramo da Engenharia.
· IEEE: “Abordagem sitemática para desenvolvimento, operação e manutenção de software”.
· Baver: “Uso de sólidos princípios de engenharia de forma a obter-se software economicamente viável, confiável e que funcione”.
· Fairley: “Disciplina tecnológica e administrativa que trata da manutenção e produção sistemática de produtos de software”.
Características do Software
· Variedade de funções.
· Variedade de implementações
· Evolução
· Visibilidade
· Continuidade
· Raramente é construído a partir de partes existentes, como o hardware.
Categorias de Tamanho de um Software
Categoria | No de Programadores | Duração | Tamanho (linhas) |
Trivial | 1 | 1 a 4 sem. | 500 |
Pequeno | 1 | 1 a 2 meses | 1K - 2K |
Médio | 2 a 5 | 1 a 2 anos | 5K - 50K |
Grande | 5 a 20 | 2 a 3 anos | 50K - 100K |
Muito Grande | 100 a 2.000 | 4 a 5 anos | 1M |
Extr. Grande | 2.000 a 5.000 | 5 a 10 anos | 1M - 10M |
Engenharia de Software x Engenharia
Diferenças
· Software é um produto lógico
· Continuidade
· Visibilidade
· Software não está sujeito a leis físicas
· Software é visualizado como um processo de produção de um serviço. Isto gera dúvidas:
- Pode ser patenteado?
- Pagar ICMS ou não?
· As interfaces inter-módulos não são tão visíveis no produto de engenharia.
Semelhanças
· Ciclo de vida.
· Gerenciamento.
· Organização.
O Impacto de Erros de Software
Erros normalmente resultam em dois custos:
· O dano deles resultante.
· O custo para correção.
Por quê?
· Testes tornam-se mais complexos.
· Modificações envolvem mais pessoas.
· Repetição de testes de fases anteriores é mais difícil.
· Mudanças acarretam outras modificações em fases anteriores.
· Responsáveis por fases anteriores podem não estar presentes.
Estatísticas
· Linhas de código produzidas no mundo:
100 Bilhões
70 Bilhões Þ COBOL
· Guerra nas Estrelas:
100 M L.O.C. Þ 30 a 50.000 ERROS!!!
· Space Shuttle:
500.000 L.O.C. a bordo.
1.700.00 L.O.C. em Terra.
Nenhum comentário:
Postar um comentário
Deixe aqui seu comentário