[논문 리뷰] A systematic literature review on source code similarity measurement and clone detection: techniques, applications, and challenges
이 체계적 문헌 리뷰는 소스 코드 유사도 측정 및 클론 탐지에 관한 136개의 주요 연구를 분석하여 여덟 가지 방법론과 다섯 가지 도메인에서 기술, 도구, 응용 분야 및 과제를 평가한다. 80개의 도구가 확인되었으며, 이 중 49%는 자바를, 37%는 C/C++를 대상으로 한다. 공개된 데이터셋은 극소수(8개)에 불과하며, 주요 과제로는 실증적 검증 부족, 하이브리드 방법론 부족, 다중 프로그래밍 패러다임 언어 지원 부족이 드러났다.
Measuring and evaluating source code similarity is a fundamental software engineering activity that embraces a broad range of applications, including but not limited to code recommendation, duplicate code, plagiarism, malware, and smell detection. This paper proposes a systematic literature review and meta-analysis on code similarity measurement and evaluation techniques to shed light on the existing approaches and their characteristics in different applications. We initially found over 10000 articles by querying four digital libraries and ended up with 136 primary studies in the field. The studies were classified according to their methodology, programming languages, datasets, tools, and applications. A deep investigation reveals 80 software tools, working with eight different techniques on five application domains. Nearly 49% of the tools work on Java programs and 37% support C and C++, while there is no support for many programming languages. A noteworthy point was the existence of 12 datasets related to source code similarity measurement and duplicate codes, of which only eight datasets were publicly accessible. The lack of reliable datasets, empirical evaluations, hybrid methods, and focuses on multi-paradigm languages are the main challenges in the field. Emerging applications of code similarity measurement concentrate on the development phase in addition to the maintenance.
연구 동기 및 목표
- 소스 코드 유사도 측정 및 클론 탐지에 사용되는 기존 기술을 식별하고 분류하기 위해.
- 연구들 간에 사용된 도구, 프로그래밍 언어, 데이터셋의 분포를 분석하기 위해.
- 이 분야의 실증적 평가의 성숙도와 신뢰성 평가하기 위해.
- 유지보수를 초과한 개발 단계에서의 새로운 응용 분야를 식별하기 위해.
- 공개 데이터셋 부족, 다중 패러다임 언어 지원 부족, 하이브리드 접근 방식 부족과 같은 핵심 과제를 부각하기 위해.
제안 방법
- 관련 연구를 식별하기 위해 네 개의 디지털 라이브러리를 활용해 체계적 문헌 리뷰를 수행하였다.
- 사전 정의된 포함 및 배제 기준에 따라 136개의 주요 연구를 선별 및 선정하였다.
- 연구들을 방법론, 프로그래밍 언어, 데이터셋, 도구, 응용 분야로 분류하였다.
- 도구 특성과 기술의 퍼지성에 중점을 두어 연구 간 통합 분석을 수행하기 위해 메타분석을 실시하였다.
- 80개의 소프트웨어 도구를 여덟 가지 별도의 탐지 기법과 다섯 가지 응용 분야에 매핑하였다.
- 데이터셋의 가용성과 품질을 평가하여, 12개의 데이터셋 중 8개만이 공개 가능하다고 확인하였다.
실험 결과
연구 질문
- RQ1소스 코드 유사도 측정 및 클론 탐지에 주로 사용되는 기법은 무엇인가요?
- RQ2기존 도구와 연구에서 가장 흔히 대상으로 삼는 프로그래밍 언어는 무엇인가요?
- RQ3코드 유사도 및 클론 탐지를 위한 공개 가능한 데이터셋은 몇 개인가요? 그 품질은 어떠한가요?
- RQ4소스 코드 유사도 측정의 주요 응용 분야는 소프트웨어 공학에서 무엇인가요?
- RQ5이 연구 분야의 발전을 저해하는 주요 과제는 무엇인가요?
주요 결과
- 총 80개의 소프트웨어 도구가 확인되었으며, 이 중 49%는 자바를, 37%는 C와 C++를 대상으로 한다.
- 확인된 12개의 데이터셋 중 코드 유사도 및 클론 탐지와 관련된 공개 가능한 데이터셋은 8개뿐이다.
- 다수의 연구가 클론 탐지 및 버그 탐지와 같은 유지보수 단계 응용 분야에 집중하고 있다.
- 연구들 간에 실증적 평가 및 벤치마킹이 뚜렷하게 부족하여 재현 가능성이 제한된다.
- 정확도 향상 잠재력이 있는 바탕으로 하이브리드 기법(다양한 기법의 조합)은 여전히 탐색이 부족하다.
- 다중 패러다임 및 드문 프로그래밍 언어에 대한 지원은 여전히 미미하거나 존재하지 않는다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.