Nas dcadas de 1960 e 1970, o desafio primordial era desenvolver
hardware que reduzisse o custo de processamento e de armazenamento de dados [PRESSMAN 1992]. As dcadas seguintes foram as que tiveram um avano significativo da microeletrnica[CARVALHO 2001], tornando o custo do hardware e armazenamento inferior ao do software. Na dcada de 1960, os custos com hardware representavam mais de oitenta por cento do custo total, enquanto, atualmente, estima-se que sejam aproximadamente dez por cento do custo total. Nos primrdios o desenvolvimento de software era uma atividade puramente artesanal. Como conseqncia, errava -se constantemente nas estimativas de custos e tempo, os sistemas desenvolvidos continham muitos erros e, consert -los geralmente produziam novos. Esse o cenrio vigente desde a chamada Crise do Software[BARROS 2002].A crise do software tem sido agravada pela disseminao do uso de software em todas as atividades humanas, das industriais, de servios e at de entretenimento [CRTES2001]. O advento da Internet, o avano nas telecomunicaes e a necessidade de integrao com outros sistemas revelaram novos desafios entre os quais se destaca a necessidade de garantir a segurana nos softwares atuais e uma plataforma segura para os futuros. As prioridades dos softwares comerciais tm mudado desde a dcada de 1990[GOSLIN 1997]. Houve uma inverso de prioridades nos ltimos anos [PEDRYCZ 2001],que justifica-se a medida que os produtos eletrnicos para o consumidor final tornaram-se prioritrios para a indstria. Software Comercial Produtos Eletrnicos Compatibilidade Segurana Desenvolvimento Processamento em Rede Portabilidade Portabilidade Confiabilidade confiabilidade Processamento em Rede Desempenho Multithreading Multithreading Segurana Compatibilidade.
O termo Crise do Software surgiu para descrever as dificuldades
enfrentadas no desenvolvimento de software no fim da dcada de 60. Entre suas caractersticas podemos encontrar problemas complexos, a ausncia de tcnicas bem estabelecidas e a crescente demanda por novas aplicaes que comeavam a se tornar um problema srio. A evoluo rpida do hardware e aumento da procura levou a ter muitos clientes e a complexidade dos softwares se tornou maior, assim, muitos problemas surgiram e o perodo acabou ficando conhecido como a crise do software. Os problemas que originaram essa crise tinham relacionamento direto com a forma de trabalho das equipes. Eram problemas que no se limitavam a "sistemas que no funcionam corretamente", mas envolviam tambm dvidas sobre como desenvolver e manter um volume crescente de
software e ainda estar preparado para as futuras demandas.
Essencialmente, eram sintomas provenientes do pouco entendimento dos requisitos por parte dos desenvolvedores, somados s tcnicas e medidas pobres aplicadas sobre o processo e o prod uto, alm dos poucos critrios de qualidade estabelecidos at ento [Pressman2004]. EXEMPLO REAL: Ariane 5 Foi um projeto espacial que gerou o custo de US$ 8 bilhes em 10 anos, com capacidade de 6 toneladas. Em seu voo inaugural, realizado em 04 de junho de 1996 explodiu aps 40 segundos de sua decolagem, a destruio do foguete e de sua carga foi avaliada em US$ 500 milhes. O veculo detonou suas cargas explosivas de autodestruio e explodiu no ar. Porque ele estava se quebrando devido s foras aerodi nmicas. O foguete tinha perdido o controle de direo. Os computadores principais e reserva desligaram (shut -down) ao mesmo tempo. Ocorrera um run time error (out of range, overflow, ou outro) e os computadores se desligaram. Um programa que convertia um valor em ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida. O resultado desta converso no era mais necessrio aps a decolagem.