ate novamente o SENSOR verificar que a temperatura esta no PADRAO desejado.Atributos de SoftwareOs atributos de um bom software refletem seu comportamento quando em funcionamento, a estrutura e a organizacao do programa fonte, e tambem a documentacao associada (Sommerville). Como exemplos temos o tempo de resposta do software a consulta de um usuario e a facilidade de compreensao do codigo do programa. Esses mesmos exemplos tambem podem ser chamados de atributos nao funcionais.Resumidamente o software deve proporcionar ao usuario a funcionalidade e o desempenho requeridos e deve ser passivel de manutencao, confiavel, eficiente e de facil uso (veja mais detalhes no quadro abaixo).Crise do Software e o Inicio da Engenharia de SoftwareA crise do software, termo usado nos anos 70, se referia as dificuldades do desenvolvimento de software na epoca. Por haver um rapido crescimento da demanda por software, imaginava-se que com toda a complexidade no desenvolvimento, haveria uma forte crise.Com a inexistencia da Engenharia de Software nessa epoca, nao havia tecnicas estabelecidas para o desenvolvimento de sistemas que funcionassem adequadamente ou que pudessem ser validadas.Ja em 1988, AMBLER afirmava: Desenvolver software nao e somente modelar e escrever codigo. E criar aplicacoes que resolvam os problemas dos usuarios. E fazer isto dentro do prazo, de forma precisa e com alta qualidade. Logo, com a crise de software, os desafios para a criacao da disciplina de Engenharia de Software eram muito grandes.Alguns dos tipicos problemas que essa nova disciplina enfrentou foram:Identificar adequadamente os requisitos do Sistema, ou seja, saber o que o software deve fazer;Que ferramentas, linguagem, sistema operacional usar;Como diminuir os tempos e custos de desenvolvimento;Prever falhas antes da entrega final;Como fazer manutencao e controlar versoes;Dificuldades de prever o progresso durante o desenvolvimento;Inexistencia de historico, ou documentacao, no desenvolvimento de Sistemas;Comunicacao com os usuarios precaria;Conceitos quantitativos inexistentes tais como confiabilidade, qualidade e reusabilidade;Manutencao, no software existente, com dificil execucao.Esse inicio dificil da Engenharia de Software, com tantos desafios, gerou varios paradigmas e modelos de desenvolvimento.Desafios da Engenharia de SoftwareAtualmente os principais desafios da Engenharia de Software, segundo Sommerville, sao:Caracteristicas do SoftwareE desenvolvido/projetado por engenharia, nao e fabricado;Nao se desgasta, mas deteriora! Veja a figura abaixo o comparativo entre a taxa de falhas do hardware com as de software;Ainda hoje a maioria e feita sob encomenda em vez de ser montada a partir de componentes.Aplicacoes do SoftwareTempo real;Software basico;Sistema de informacao;Embutido;Tecnicos e cientificos;Especialistas;Apoio a decisao;Jogos;Apoio (processador de textos).Mitos do SoftwareJa temos um manual repleto de padroes e procedimentos para a construcao de software. Isso ja e suficiente para o pessoal do desenvolvimento.Meu pessoal tem ferramentas de ultima geracao, afinal de contas compramos os mais novos computadores.Se nos estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso.Uma declaracao geral dos objetivos e suficiente para se comecar a escrever programas, podemos preencher os detalhes mais tarde.Os requisitos de projeto modificam-se continuamente, mas as mudancas podem ser facilmente acomodadas, porque o software e flexivel.Assim que escrevermos o programa e o colocarmos em funcionamento, nosso trabalho estara completo.Enquanto nao tiver o programa funcionando, eu nao terei realmente nenhuma maneira de avaliar sua qualidade.A unica