terça-feira, 8 de fevereiro de 2011

Engenharia de Software-Conceitos Introdutórios





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