가중치 적용 부분 유사성을 이용한 프로젝트 단위 소프트웨어 버스마크 비교
요약
본 논문은 프로젝트 단위의 소프트웨어 버스마크 비교를 통해 코드 표절 및 재사용을 탐지하는 새로운 프레임워크를 제안합니다. 가중치 부여 방식과 부분 유사도 메커니즘을 도입하여 부분 재사용과 부수적 유사성 문제를 효과적으로 해결합니다.
핵심 포인트
- 모듈 크기에 따른 가중치 부여로 노이즈 매칭 감소
- 부분 유사도 방식을 통한 부분 재사용 탐지 강화
- 35개 오픈 소스 Java 프로젝트를 통한 성능 검증
- 기존 방식 대비 회복탄력성과 신뢰성 측면에서 우수함
소프트웨어 버스마크 (Software birthmarks)는 상당한 수정이 가해진 상황에서도 코드 표절을 탐지하고, 독립적으로 개발된 소프트웨어를 구별해내는 강력한 접근 방식을 제공합니다. 기존의 유사도 측정 방식은 일반적으로 모듈 수준(예: 소스 파일 또는 클래스 파일)에서 적용됩니다. 그러나 실제 환경에서 소프트웨어 재사용은 종종 프로젝트 수준에서 발생하며, 이때 모듈의 일부만이 재사용될 수 있습니다. 이러한 설정은 두 가지 주요 과제를 야기합니다: (1) 재사용된 모듈이 프로젝트의 아주 작은 부분만을 구성하는 부분 재사용 (partial reuse), (2) 작은 모듈로 인해 발생하는 부수적 유사성 (incidental similarity)으로 인한 오탐 (false positives). 본 논문에서는 모듈 수준 유사성의 대칭적 집계 (symmetric aggregation)를 기반으로 한 프로젝트 단위 버스마크 비교 프레임워크를 구축합니다. 이 프레임워크를 바탕으로, 위 과제들을 해결하기 위한 두 가지 상호 보완적인 메커니즘을 제안합니다. 첫째, 더 큰 모듈에 더 높은 중요도를 할당하는 가중치 부여 방식 (weighting scheme)을 도입하여 작은 모듈로부터 발생하는 노이즈 섞인 매칭의 영향을 줄입니다. 둘째, 매우 유사한 모듈 쌍의 상위 비율에 집중하는 부분 유사도 (partial similarity) 방법을 제안하여 부분 재사용의 견고한 탐지를 가능하게 합니다. 우리는 10개 카테고리에 걸친 35개의 오픈 소스 Java 프로젝트를 대상으로 제안된 접근 방식을 평가하였으며, 동일 프로젝트의 서로 다른 버전들을 재사용 사례로 취급하였습니다. 재현성을 지원하기 위해 데이터셋과 실험 아티팩트 (experimental artifacts)를 공개합니다. 성능은 소프트웨어 버스마크의 두 가지 상호 보완적인 특성인 회복탄력성 (resilience)과 신뢰성 (credibility)을 조화 평균 (harmonic mean)으로 결합하여 평가합니다. 결과에 따르면 제안된 방법은 기존 방식들을 일관되게 능가하며, 프로젝트 수준에서 부분적인 코드 재사용을 견고하고 안정적으로 탐지해냅니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기