foram tentadas ao decorrer dos anos. Inicialmente achava-se que o congelamento dos requisitos resolveria tais problemas e assim surgiu a proposta de especificacao de software a partir de notacoes matematicas, os chamados metodos formais. Segundo Sommerville [2], metodos formais oferecem a possibilidade de analisar atraves do emprego de calculos matematicos a consistencia e provar que a implementacao de um software corresponde a especificacao.Na pratica observou-se que o congelamento dos requisitos, assim como a utilizacao de metodos formais de especificacao de software nao sao eficientes para resolver o problema de requisitos instaveis, pelo contrario, eles podem atrapalhar e muito devido ao engessamento do processo.Com o tempo ficou claro que para lidar com requisitos instaveis, o projeto teria que ficar em constante refinamento em busca da desejada estabilidade conceitual. Para isso o uso de prototipos da solucao e uma boa pratica, pois nem sempre o cliente sabe o que quer, mas geralmente sabe o que nao quer. Nesse sentido, todo contato do cliente com novos prototipos gera o refinamento dos requisitos ja levantados, pois o feedback do cliente com relacao ao prototipo serve para direcionar a equipe de desenvolvimento a um caminho cada vez mais proximo do ideal.Muitas tecnicas surgiram com intuito de inserir cada vez mais os usuarios no processo de desenvolvimento do software, especialmente no levantamento de requisitos. JAD (Joint Application Development) e uma dessas tecnicas. Ela foi criada pela IBM na decada de 70 e propoe que clientes/usuarios e desenvolvedores trabalhem juntos em reunioes com objetivo de identificar o problema a ser resolvido pelo software, propor elementos de solucao, negociar diferentes abordagens e por fim, especificar um conjunto preliminar de requisitos de solucao [3]. A metodologia XP (eXtreme Programming) tambem preve dentre suas varias propostas, uma interacao semelhante entre cliente e desenvolvedor com o intuito de entender melhor o problema e levantar requisitos mais refinados, porem ambas as propostas devem ser muito bem aplicadas para atingirem sucesso, pois de nada adianta se o usuario/cliente escalado para participar do processo nao tiver pontos de vista equivalentes ao da maioria dos clientes e usuarios potenciais do software.O desenvolvimento de software baseado em processos auxilia muito na gerencia de projetos de software com requisitos instaveis, pois para lidar com tantas requisicoes de mudancas, e muito importante a gestao ter um processo de gerenciamento de mudancas bem definido. Dessa forma, toda requisicao de mudanca passa a ser analisada detalhadamente, observando todos os impactos que ela causaria no projeto e nivel de custos, tempo e riscos. Apos essa analise, a gerencia pode tomar a decisao precisa juntamente com o cliente, avaliando se as mudancas solicitadas sao viaveis ou nao, evitando assim que o projeto saia de controle por uma decisao impropria.O fato 24 e um senso comum entre todos envolvidos com projetos, sejam eles de software ou nao. Quanto mais cedo requisitos errados forem identificados, menos custoso sera para corrigi-los. A correcao de erros durante o desenvolvimento pode ser ate 100 vezes mais custosa do que as correcoes feitas nas fases iniciais do processo [4]. A Figura 1, presente em [5], representa exatamente a ordem de