Artigo Acesso aberto Revisado por pares

Detecting Java Code Clones Based on Bytecode Sequence Alignment

2019; Institute of Electrical and Electronics Engineers; Volume: 7; Linguagem: Inglês

10.1109/access.2019.2898411

ISSN

2169-3536

Autores

Dongjin Yu, Jiazha Yang, Xin Chen, Jie Chen,

Tópico(s)

Software Reliability and Analysis Research

Resumo

When the source code is copied and pasted or modified, there will be a lot of identical or similar code snippets in the software system, which are called code clones. Because code clones are believed to result in undesirable maintainability of software, numerous approaches and techniques have been proposed for code clone detection. However, most of them are based on the source code, while only a few employ the bytecode to detect code clones. In this paper, we introduce an approach based on Java bytecode, which mainly contains the steps of bytecode sequence alignment and similarity score comparison. In particular, we apply the Smith-Waterman algorithm to align bytecode sequences for precise matching. Moreover, we separately consider the similarities between instruction sequences and method call sequences, thus improving its effectiveness in detecting code clones. We conducted an extensive experiment on five open-source software to evaluate the proposed approach. The results show that our approach outperforms other state-of-the-art techniques.

Referência(s)