arrow
返回

Clone detection through srcClone: A program slicing based approach

delete2022-02-01
delete5
PRE
AI
H
Hakam W. Alomari *
M
Matthew Stephan
DOI:10.1016/j.jss.2021.111115delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Software clone detection is an often used approach to understand and maintain software systems. One category of clones that is challenging to detect but very useful is semantic clones, which are similar in semantics but differ in syntax significantly. Semantic clone detectors have trouble scaling to larger systems and sometimes struggle with recall and precision. To address this, we developed a slice-based scalable approach that detects both syntactic and semantic code clones, srcClone. srcClone ascertains code segment similarity by assessing the similarity of their corresponding program slices. We employ a lightweight, publicly-available, scalable program slicer within our clone detection approach. Using dependency analysis to detect and assess cloned components, we discover insights about code components that can be affected by a clone pair or set. These elements are critical in impact analysis. It can also be used by program analysts to run on non-compilable and incomplete source code, which serves comprehension and maintenance tasks very well. We first evaluate srcClone by comparing it to six state-of-the-art tools and two additional semantic clone detectors in performance, recall, and precision. We use the BigCloneBench real clones benchmark to facilitate comparison. We use an additional 16 established benchmark scenarios to perform a qualitative comparison between srcClone and 44 clone detection approaches in their capabilities to detect these scenarios. To further measure scalability, we evaluate srcClone on 191 versions of Linux kernel, containing approximately 87 MLOC. In our evaluations, we illustrate our approach is both relatively scalable and accurate. While its precision is slightly less than some other techniques, it makes up for it in higher recall including semantic clones unable to be found by any existing techniques. We contend our approach is an important advancement in software cloning that it is both demonstrably scalable and can detect more types of clones than existing work, thus providing developers greater information into their software. (c) 2021 Elsevier Inc. All rights reserved.
Keyword:
Code clone
Clone detection
Program slicing
Semantic clones

期刊

Journal of Systems and Software 封面图
Journal of Systems and Software
IF:
4.1
论文数:
5.5K
被引数:
8.4K

机构

U
University System of Ohio
学者数:
15.5W
论文数: 13.0W
被引数: 200
引用论文

引用论文

An Analysis of the Entrepreneurial University in the Faculties of Education in Spain: Self-perception among Deans
err
IF0
err2021-09-16
err0
errOAAI
errJessica Paños-Castro; Leire Markuerkiaga; María José Bezanilla
err分享
err收藏
Analyzing cloning evolution in the Linux kernel
err2002-10-01
err93
PREAI
errAntoniol, G; Villano, U; Merlo, E; Di Penta, M
err分享
err收藏
err分享
err收藏
Omphalocele and gastroschisis and associated malformations
err2008-04-03
err0
PREAI
errClaude Stoll; Yves Alembik; Beatrice Dott; Marie‐Paule Roth
err分享
err收藏
Re-Cloning the N27 Dopamine Cell Line to Improve a Cell Culture Model of Parkinson's Disease
err2016-08-11
err0
errOAAI
errLu Gao; Wenbo Zhou; Breanna Symmes; Curt R. Freed
err分享
err收藏
Comparison and evaluation of clone detection tools克隆检测工具的比较与评价
err2007-09-01
err510
errOAAI
errBellon, Stefan; Koschke, Rainer; Antoniol, Giuliano; Krinke, Jens; Merlo, Ettore
err分享
err收藏
学者 查看更多内容