Uma abordagem híbrida para detecção de código clonado em Linhas de Produtos de Software

Detalhes bibliográficos
Ano de defesa: 2020
Autor(a) principal: Batista, Mallú Eduarda
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Lavras
Programa de Pós-Graduação em Ciência da Computação
UFLA
brasil
Departamento de Ciência da Computação
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://repositorio.ufla.br/jspui/handle/1/46122
Resumo: Software Product Line (SPL) corresponds to software systems that share a common set of functions (commonality) that were developed using a common asset base, plus variations (variability) that are important characteristics to differentiate products from the same systems family. Cloned codes enter the scope of software systems development for several reasons, such as copy and paste, reuse code, add functions and increase and derive data. Given the existence of four types of clones, being classified according to their syntactic (Types 1, 2 and 3) or semantic similarity (Type 4), there are several reports of their occurrence in object-oriented systems whose relations are directly linked to software quality and maintainability. In the context of LPS development, it is possible to detect the existence of cloned code and make necessary changes so that this code is not propagated to other products originating from that LPS. In this Master's work, the objective is to address how to detect cloning of code in LPS, presenting a proposal for a hybrid approach to detecting Type 1 and 2 code clones in LPS. Such an approach is based on the construction of a dependency graph using AST and consists of the use of techniques for static code analysis, supported by the analysis of the sequence of method calls and the structural analysis of method signatures. In order to be able to (semi) automate this proposal of approach, a computational support (plug-in for the Eclipse IDE platform) was implemented and the evaluation of this proposal was carried out, through the internal and external evaluation where the values of precision and recalling the use of this support and comparing it with another clone detection tool. The results obtained show a high precision and reliability in the use of the tool developed to detect clones in LPS oriented to the characteristic besides the comparison of the clones obtained in relation to the PMD CPD tool.