sendo um problema na maior parte nao resolvido, embora todos concordem que e importante e desejavel. 17 - Reutilizacao em grande proporcao funciona melhor nas familias de sistemas conexos e, portanto, e dependente do dominio. Isso restringe a aplicabilidade potencial desse tipo de reutilizacao.DiscussaoAmbos os fatos estudados tratam da Reutilizacao, sendo que cada um deles aborda o topico por visoes distintas. Atualmente muito se fala em reutilizacao de codigo, sendo que muitos tratam dessa tecnica como se ela fosse novidade. O proprio paradigma de programacao orientada a objetos coloca a reutilizacao como uma das suas grandes inovacoes. O fato 15 mostra que na verdade Reutilizacao de codigo e um conceito que surgiu na decada de 50 com a Organizacao Share [1]. A proposta da Organizacao Share foi a de criar um espaco semelhante a uma biblioteca tradicional, porem la ao inves de livros, os programadores compartilhavam codigos de programacao de uso frequente, e sempre que precisavam implementar algo que achavam que alguem poderia ja ter feito antes, consultavam a biblioteca de codigos para evitar o retrabalho. Dentre esses codigos de uso comum que eram compartilhados, sao exemplos funcoes para realizacao de operacao matematicas, funcoes de ordenacao e busca de valores.Com o passar dos anos a ideia de reutilizacao em pequenas proporcoes tornou-se muito difundida e ficou claro que isso agiliza muito o desenvolvimento. A maioria das linguagens mais utilizadas atualmente possui vastas bibliotecas de codigos definidos para diversos dominios comuns, como por exemplo, as conexoes com os variados tipos de SGBDs. As bibliotecas das linguagens geralmente possuem funcoes que ja foram exaustivamente testadas e amplamente utilizadas, passando assim um alto grau de confiabilidade. Portanto e muito mais eficiente em termos de agilidade na implementacao e ate mesmo de seguranca (dependendo do dominio), utilizar funcoes pre-definidas nas bibliotecas do que ter o trabalho de fazer algo ja existente. O fato 16 trata da reutilizacao de codigo em grandes proporcoes, a chamada engenharia de software baseada em componentes. Essa proposta prega que softwares podem ser montadas unicamente a partir de uniao de pecas ja existentes (componentes), escolhidos mediante a especificacao dos requisitos. Essa ideia nos leva a pensar em uma verdadeira linha de montagem de software, porem na pratica isso nao acontece exatamente assim. Essa ideia de reutilizacao de componentes (reutilizacao de codigos em grande proporcao) tambem nao e nova, mas ao contrario da reutilizacao de bibliotecas de sub-rotinas comuns (reutilizacao de codigos em pequena proporcao), ela nunca se tornou algo utilizado em grande escala. A discussao do fato 16 e basicamente a respeito do motivo pelo qual isso nunca aconteceu, mesmo sabendo-se que na teoria e algo que traria avancos significativos de produtividade no processo de desenvolvimento de software.O problema maior da criacao de componentes reutilizaveis, e que eles devem ser genericos o suficiente para atender a qualquer dominio. Porem ha grandes diferencas de excecoes entre os dominios. Embora alguns problemas grandes quando analisados superficialmente possam parecer semelhantes, ha uma serie de restricoes para as possiveis solucoes quando analisamos os mesmos problemas em dominios diferentes. O fato 17 trata de algo extremamente realista