본문 바로가기
KERD
논문KCI 등재

소스코드 유사도 측정 도구의 성능에 관한 비교연구

A Comparative Study on the Performance of Source Code Similarity Measurement Tools

0

조회

0

다운로드

1

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

소프트웨어 사용이 일반화되고 우리 일상생활에서 유용한 역할을 함에 따라, 소프트웨어 불법복제나 표절행위가 여전히 많이 발생하고 있다. 이에 소스코드 수준에서 불법복제나 표절 여부를 탐지하기 위한 도구들이 개발되어 사용 중이다. 대표적인 도구로 JPlag, MOSS, exEyes 등이 있다. 본 논문에서는 대표적인 코드클론(clone)들의 유형을 정리하고, 자바 프로그램들을 대상으로 JPlag와 exEyes의 성능을 비교 분석한다. 성능 비교를 위해서는 코드 클론들의 모음인 BigCloneBench 벤치마크를 사용하며, 평가 항목으로는 정확도와재현율, F-measure를 사용한다. 실험 결과, 두 도구들이 단순한 코드 클론 유형들에 대해서는 두 도구 모두100% 탐지율을 보였다. 그러나 복잡한 코드 클론 유형에 대해서, JPlag는 95%의 정확도와 50.1%의 재현율을, exEyes는 100%의 정확도와 27.7%의 재현율을 보였다.

Abstract

Because software is everywhere and has continued to play a major part in our daily lives, software piracy and plagiarism are still rampant. The tools has been developed and used in order to detect pirated copies of software at source code level. JPlag, MOSS, and exEyes are well-known source code plagiarism detectors. In this paper, we explain briefly different types of classical code clones, and compare the performance of JPlag and exEyes using Java source code files. The performance comparison between JPlag and exEyes are conducted using a benchmark, BigCloneBench which is a big benchmark of real clones. We evaluate the performance of the tools measuring their precision, recall, and F-measure. Experimental results show that both precision and recall rates of the two tools become 100% for simple type-1 and 2 clones. For more complicated type-3 clones, however, JPlag and exEyes have a precision rate of 95% and 100%, and a recall rate of 50.1% and 27.7% respectively.

참고문헌 (15)

  1. Prechelt, L, "Finding plagiarisms among a set of programs with JPlag", Journal of Universal Computer Science, 8(11), pp.1016~1038 (2002)
  2. "JPlag: detecting software plagiarism" (2006)[URL]
  3. 최성하, "exEyes의 성능평가", 2014년 한국소프트웨어감정평가학회 추계학술대회, pp.13~21 (2014)
  4. Bowyer, K. W, "Experience using "MOSS" to detect cheating on programmingassignments", Proceedings of the 29th Frontiers in Education Conference, 3, pp.13~18 (1999)
  5. "MOSS – A System for Detecting Software Similarity"[URL]
  6. Svajlenko, J., "Towards a big data curated benchmark of inter-project code clones", Proceedings of In Software Maintenance and Evolution (ICSME), pp.476~480 (2014), IEEE
  7. "BigCloneBench - a clone detection benchmark of known clones in the IJaDataset source repository"[URL]
  8. Roy, C. K., "A survey on software clone detection research", Queen’s School of Computing Technical Report, 541(115), pp.64~68 (2007)
  9. Bellon, S., "Comparison and evaluation of clone detection tools", IEEE Transactions on software engineering, 33(9), pp.577~591 (2007)
  10. 최성하, "Bellon Reference Corpus의 보정", 한국정보과학회 학술발표논문집, pp.1719~1721 (2015)
  11. Svajlenko, J., "Bigcloneeval: A clone detection tool evaluation framework with bigclonebench", Proceedings of In Software Maintenance and Evolution(ICSME), pp.596~600 (2016), IEEE
  12. Garg, U, "Plagiarism and detection tools: An overview", An International Journal of Engineering Sciences, 2, pp.92~97
  13. Mozgovoy, M, "Fast plagiarism detection system", Proceedings of In String processing and information retrieval, pp.267~270 (2005), Springer Berlin[DOI]
  14. Powers, D. M, "Evaluation: from precision, recall and F-measure to ROC, informedness, markedness and correlation", Journal of Machine Learning Technologies, 2(1), pp.37~63 (2011)
  15. Rattan, Dhavleesh, "Software clone detection: A systematic review", Journal of Information and Software Technology, 55(7), pp.1165~1199 (2013)

관련 논문AI추천

이 간행물의 다른 논문 (7건)