IEEE Access (Jan 2019)

Detecting Java Code Clones Based on Bytecode Sequence Alignment

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

DOI
https://doi.org/10.1109/ACCESS.2019.2898411
Journal volume & issue
Vol. 7
pp. 22421 – 22433

Abstract

Read online

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.

Keywords