e menos utopico que a reutilizacao de componentes totalmente genericos. A grande barreira que impede a disseminacao da reutilizacao em grandes proporcoes sao as sutilezas que diferem os dominios. Elas dificultam muito na criacao de componentes genericos que atendam a todos os dominios de forma eficiente. Porem quando se trata de componentes aplicados a um mesmo dominio de problemas, a chance de sucesso aumenta consideravelmente [4]. Os estudos realizados pelo Software Engineering Laboratory (SEL), da NASA-Goddard [2] exemplificam bem essa afirmacao, haja vista que 70% dos softwares desenvolvidos por eles dentro do dominio especifico de dinamica de voos reutilizaram componentes com sucesso. Grandes empresas como a Microsoft utilizam desses conceitos em seus softwares principais. Plataformas como o pacote Office e o sistema operacional Windows, sao desenvolvidas atualmente reutilizando-se de diversos componentes que foram sendo implementados pela empresa ao decorrer dos anos. A cada nova versao, grande parte dos componentes anteriores e reutilizada e inovacoes sao acrescentadas, gerando assim novos componentes que serao reutilizados posteriormente. Esse processo de reutilizacao tambem torna o processo de desenvolvimento de uma empresa cada vez mais maduro, montando uma especie de linha de montagem de software, mas e importante observar que o dominio de aplicacao desses componentes acaba sendo bem restrito para alcancar tal eficiencia na sua aplicacao. ControversiaA principal controversia do fato 15 e relacionada ao desconhecimento da historia da reutilizacao. Principalmente apos a difusao do paradigma de programacao orientada a objetos, muito comecou a se falar sobre reutilizacao de codigo como uma grande inovacao. O conceito de reutilizacao de codigo nao e novo como muitos entusiastas imaginam e ja existia muito antes de orientacao a objetos por exemplo.Existem muitas controversias entre as tentativas de explicacoes para o fato 16. Enquanto alguns veem a engenharia de software baseada em componentes como o futuro, outros sao completamente ceticos com relacao a sua aplicacao real.O NASA's Goddard Space Flight Center [2] realizou durante anos estudos relacionado ao desenvolvimento de softwares especificos baseados em componentes. Cerca de 70% dos softwares desenvolvidos dentro do dominio de atuacao do NASA-Goddard foram construidos com reutilizacao de componentes, um numero alto, mas que nao pode ser interpretado de qualquer maneira. A eficiencia da reutilizacao de componentes nesse caso foi devido a semelhanca real dos softwares. Softwares de um mesmo dominio tendem a terem restricoes semelhantes, portanto a generalizacao eficiente dos componentes fica facilitada.Outro motivo levantado para a possivel nao adocao em massa da reutilizacao em grande proporcao, e a chamada sindrome do Nao-Inventado-Aqui (NIH em ingles). Essa sindrome seria comum a profissionais teimosos que acreditam ser mais complicado administrar algo nao criado por eles mesmos.De uma maneira geral, nao se pode afirmar que a engenharia de software baseada em componentes e boa ou ruim, para isso e necessario analisar o contexto. Devido as diferencas entre os diversos dominios, e muito complicado que a criacao de componentes totalmente genericos seja eficiente para aplicacao em todos os casos, mas em casos especificos eles podem ser extremamente eficientes. Muitos autores, assim como GLASS [3], acreditam que a reutilizacao de codigo em grandes proporcoes nao chegara a ser