masterThesis
Busca e recuperação de componentes de software utilizando agrupamento de componentes
Registro en:
Cisneiros Veras, Ronaldo; Romero de Lemos Meira, Silvio. Busca e recuperação de componentes de software utilizando agrupamento de componentes. 2008. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2008.
Autor
Veras, Ronaldo Cisneiros
Institución
Resumen
O desenvolvimento de software com reuso é uma abordagem que pode ser utilizada para alcançar
dois benefícios principais: 1) incremento de produtividade nos projetos de software e 2)
melhorias na qualidade final dos projetos. A abordagem de reuso de software pode ser instanciada
através da estratégia de desenvolvimento de software baseada em componentes. De acordo
com essa estratégia, grandes aplicações de software podem ser desenvolvidas a partir de partes
reutilizáveis e pré-existentes, que devem estabelecer uma colaboração entre elas para prover as
funcionalidade requeridas pela aplicação. Os locais onde esses componentes são armazenados
(repositórios), e os processos para a busca e recuperação dos mesmos, são considerados pontos
de constante pesquisa e discussão.
Em um outro contexto, soluções baseadas em aprendizagem de máquina e inteligência artificial
começam a produzir contribuições relevantes para problemas pertencentes ao ciclo de
desenvolvimento de projetos de software, compreendendo campos como a estimativa de esforço
de projetos de software e a predição de falhas, por exemplo. Esse trabalho possui o objetivo de
investigar a utilização de técnicas de agrupamento de dados (clustering) (que fazem parte das
técnicas de aprendizagem de máquina) ao problema do reuso de software. Para esse trabalho
foram analisadas as técnicas de agrupamento por mapas auto-organizáveis (SOM), mapas autoorganizáveis
que crescem hierarquicamente (GHSOM) e o agrupamento por árvores de sufixos
(STC). É importante ressaltar que a aplicação de STC a este problema foi feita originalmente
no nosso trabalho.
Nesse cenário, a solução proposta foi implementada, gerando uma ferramenta web para
busca e recuperação de componentes de software. A ferramenta Cluco (Clustering of Components)
apresenta os resultados de uma busca por componentes, que satisfazem os critérios de
uma consulta, na forma de grupos de componentes similares, onde esses grupos são gerados
pelo algoritmo STC. Essa característica pode ser considerada uma contribuição relevante, pois
o grande esforço manual em busca de similaridades, que deveria ser realizado pelos usuários, é
executado automaticamente pelo sistema, à medida que os resultados de uma busca tornam-se
disponíveis.
Esta dissertação apresenta avaliações qualitativas e quantitativas da solução proposta. Vários
usuários com vários níveis de experiência em engenharia de software avaliaram a ferramenta,
através de realização de buscas e respondendo a um questionário contendo perguntas relativas
à usabilidade e à qualidade da solução. Métricas para a avaliação de sistemas de recuperação
de informação como, por exemplo, as métricas recall e precision foram utilizadas para fornecer
validações quantitativas sobre a solução. Uma análise de desempenho comparando as técnicas
investigadas nesse trabalho foi realizada. Esta análise mostrou a superioridade da técnica STC
no problema de agrupamento dos componentes de software utilizados nesse trabalho (componentes Java). Considerando todos os resultados obtidos, pode ser concluído que a solução
proposta contribui de forma positiva e relevante para o problema de busca e recuperação de
componentes de software