Sistema de filtragem
As expectativas de uma maior produtividade no desenvolvimento e manutenção de software e de melhor qualidade dos produtos de software criados através da reutilização de software tem sido bastante evasivo. Isso pode ser porque o esforço necessário para criar componentes de software reutilizáveis , localizá-los, adaptá-los e integrá-los em uma aplicação específica tem sido geralmente maior do que o esforço necessário para criar o aplicativo a partir do zero.
Objeto técnicas de software orientados ambientes de desenvolvimento e tem o potencial de ajudar algumas atividades de reutilização, promovendo o desenvolvimento de produtos de software mais reutilizáveis através dos conceitos de ocultação de informações e herança [72, 154, 189, 190, 191, 192]. No entanto, existem ainda muitos fatores que limitam a prática de reutilização de software, entre eles a falta de ferramentas para a construção de componentes de software reutilizáveis ea falta de ferramentas para recuperação rápida e eficaz dos componentes.
O termo componente é usado neste trabalho, num sentido genérico. Componentes de software reutilizáveis incluem componentes de código não apenas genéricos (procedimentos básicos, módulos, megamodules), mas também os sistemas, subsistemas, especificações de software (requisitos e especificações de projeto), arquiteturas, casos de teste, etc
Este capítulo descreve as atividades de reutilização principais abordados neste trabalho (classificação de software e recuperação), no contexto de outras atividades envolvidas na reutilização de software e apresenta as principais abordagens recentes para estas duas tarefas. Principais problemas de recuperação e estratégias diferentes de abordá-los são discutidos. Finalmente, o capítulo apresenta uma visão geral da aplicação de técnicas linguísticas aos sistemas de recuperação de informação e discute as vantagens e limitações da sua aplicação para a recuperação de software. Uma análise detalhada e avaliação de