Crise de software
Crise de software é um termo usado nos primórdios da ciência da computação para a dificuldade de escrever programas de computador úteis e eficientes no tempo necessário. A crise do software deveu-se ao rápido aumento do poder dos computadores e à complexidade dos problemas que não puderam ser resolvidos. Com o aumento da complexidade do software, surgiram muitos problemas de software porque os métodos existentes eram inadequados.
Histórico
O termo "crise de software" foi cunhado por alguns participantes da primeira Conferência de Engenharia de Software da OTAN em 1968 em Garmisch, Alemanha. A Palestra do Prêmio Turing de 1972 de Edsger Dijkstra faz referência a esse mesmo problema:
A principal causa da crise do software é que as máquinas se tornaram várias ordens de magnitude mais poderosas! Para colocá-lo de forma bastante clara: desde que não houvesse máquinas, a programação não era nenhum problema; quando tivemos alguns computadores fracos, a programação tornou-se um problema leve, e agora temos computadores gigantescos, a programação tornou-se um problema igualmente gigantesco.
—Edsger Dijkstra, O programador de Humble (EWD340), Comunicações da ACM
Causas
As causas da crise de software estavam ligadas à complexidade geral do hardware e ao processo de desenvolvimento de software. A crise manifestou-se de diversas formas:
- Projetos com orçamento excessivo
- Projetos que executam horas extras
- O software era muito ineficiente
- Software era de baixa qualidade
- Software muitas vezes não atendeu aos requisitos
- Os projetos eram ingeríveis e o código difícil de manter
- Software nunca foi entregue
A principal causa é que as melhorias no poder da computação ultrapassaram a capacidade dos programadores de usar essas capacidades de maneira eficaz. Vários processos e metodologias foram desenvolvidos nas últimas décadas para melhorar o gerenciamento da qualidade de software, como programação processual e programação orientada a objetos. No entanto, projetos de software grandes, complicados, mal especificados ou que envolvam aspectos desconhecidos ainda são vulneráveis a problemas grandes e imprevistos.
Contenido relacionado
Computador Atanasoff-Berry
Detecção e correção de erros
Código Baudot
Arquivo de computador
Sistema operacional de disco