A method based on naming similarity to identify reuse opportunities

Carregando...
Imagem de Miniatura

Título da Revista

ISSN da Revista

Título de Volume

Editor

Universidade Federal de Minas Gerais

Descrição

Tipo

Dissertação de mestrado

Título alternativo

Membros da banca

Elder Jose Reioli Cirilo
Marco Tulio de Oliveira Valente

Resumo

Reutilização de software é uma estratégia de desenvolvimento em que os componentes de software existentes são utilizados no desenvolvimento de novos sistemas de software. Há muitas vantagens do reuso no desenvolvimento de software, como a minimização dos esforços de desenvolvimento e melhoria da qualidade de software. Poucos métodos têm sido propostos na literatura para recomendar oportunidades de reuso. Nesta dissertação, propomos um método para a identificação de oportunidades de reutilização baseados na similaridade dos nomes de dois tipos de entidades orientadas a objetos: classes e métodos. O nosso método, é chamado JReuse, que computa por meio de uma função de similaridade com o objetivo de identificar classes e métodos de nome semelhante, a partir de um conjunto de sistemas de software de um domínio. Essas classes e métodos compõem um repositório com oportunidades de reutilização. Nós também apresentamos uma ferramenta protótipo para apoiar o método proposto. Aplicamos o método e a ferramenta em 71 sistemas de software minerados do GitHub, em 4 domínios diferentes: contabilidade, hospital, restaurante e e-commerce. No total, esses sistemas possuem 1.772.269 linhas de código, 75.447 métodos e 17.821 classes. Depois da sua aplicação, avaliamos o JReuse através de uma pesquisa com vários desenvolvedores do GitHub nos domínios avaliados. Como resultado, observamos que o JReuse é capaz de identificar as principais classes e métodos que são relevantes em cada domínio selecionado.

Abstract

We propose a method for extraction of reuse opportunities based on naming similarity of two types of object-oriented entities: classes and methods. Our method, called JReuse, computes a similarity function to identify similarly named classes and methods from a set of software systems from a domain. These classes and methods compose a repository with reuse opportunities. We also present a prototype tool to support the extraction by applying our method. We evaluate the JReuse with 71 software systems mined from GitHub, in 4 domains distinct. In total, we evaluate 1,772,269 lines of code; 75,447 methods, and 17,821 classes. As a result, we observe that the JReuse is able to identify main classes and methods that are relevant in domain selected. Furthermore, we evaluated the JReuse, through a survey with developers GitHub, of each evaluated domain. The observed results indicate that our method is able of extracting the possibilities for reuse, independent of the software domain.

Assunto

Sistemas de recomendação, Software Reutilização, Software Desenvolvimento, Computação

Palavras-chave

Ativos Reutilizáveis, Identificação das Oportunidades de Reuso, Componentes Reutilizáveis, Oportunidades de Reuso, Reuso de Software

Citação

Departamento

Curso

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por