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

데이터 구조를 고려한 소스코드 표절 검사 기법

A Plagiarism Detection Technique for Source Codes Considering Data Structures

0

조회

0

다운로드

0

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

표절은 불법이고 피해야 하지만 여전히 빈번하게 발생하고 있다. 특히, 소스코드 표절은 그 특성상 복사가 용이해 다른 저작물보다 더 빈번히 발생한다. 코드 표절을 방지하기 위한 다양한 연구가 있었다. 하지만 앞서 연구된 소스코드 표절 검사 기법을 살펴보면 프로그램이 알고리즘과 데이터 구조로 구성됨에도 불구하고 데이터 구조는 전혀 고려하지 않고 있다. 이 논문에서는 데이터 구조를 고려한 소스코드 표절 검사기법을 제안한다. 구체적으로 말해서 두 소스코드의 데이터 구조를 트리 집합으로 나타내고, 헝가리안 메소드를 사용해 비교한다. 제안하는 기법의 효용성을 보이기 위해 객체지향 교과목에서 과제 답안으로 제출한 126개의 소스코드를 대상으로 실험하였다. 실험 결과 데이터 구조와 알고리즘을 모두 고려했을 때, 알고리즘만 고려한 경우보다 정확률과 F-measure가 각각 22.6%, 19.3% 향상됨을 보였다.

Abstract

Though the plagiarism is illegal and should be avoided, it still occurs frequently. Particularly, the plagiarism of source codes is morefrequently committed than others since it is much easier to copy them because of their digital nature. To prevent code plagiarism, therehave been reported a variety of studies. However, previous studies for plagiarism detection techniques on source codes do not consider thedata structures although a source code consists both of data structures and algorithms. In this paper, a plagiarism detection technique forsource codes considering data structures is proposed. Specifically, the data structures of two source codes are represented as sets of treesand compared with each other using Hungarian Method. To show the usefulness of this technique, an experiment has been performed on126 source codes submitted as homework results in an object-oriented programming course. When both the data structures and thealgorithms of the source codes are considered, the precision and the F-measure score are improved 22.6% and 19.3%, respectively, thanthose of the case where only the algorithms are considered.

참고문헌 (25)

  1. Stefan Bellon, "Comparison and evaluation of clone detection tools", IEEE Transactions on Software Engineering, 33(9), pp.577~591 (2007)
  2. Chanchal K. Roy, "Comparison and evaluation of code clone detection techniques and tools : A qualitative approach", Science of Computer Programming, 74(7), pp.470~495 (2009)
  3. Lutz Prechelt, "Finding plagiarisms among a set of program with JPlag", Journal of Universal Computer Science, 8(11), pp.1016~1038 (2002)
  4. Michael J. Wise, "Neweyes : a system for comparing biological sequences using the running karp-rabin greedy string-tiling algorithm", Intelligent Systems in Molecular Biology, pp.393~401 (1995)
  5. Jeong-Hoon Ji, "Program similarity analysis framework using adaptive sequence alignment technique", 박사, pp.2010
  6. Jeong-Hoon Ji, "An intelligent system for detecting source code plagiarism using a probabilistic graph model", Machine Learning and Data Mining in Pattern Recognitions Posters, pp.55~69 (2007)
  7. 이윤정, "Plagiarism Detection among Source Codes using Adaptive Methods", KSII Transactions on Internet and Information Systems, 6(6), pp.1627~1648 (2012), 한국인터넷정보학회[DOI]
  8. Jeong-Hoon Ji, "A source code linearization technique for detecting plagiarized programs", Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education, pp, pp.73~77 (2007)
  9. Niklaus Wirth, "Algorithms + Data Structures = Programs" (1976), Prentice Hall
  10. Karl J. Ottenstein, "An algorithmic approach to the detection and prevention of plagiarism", ACM SIGCSE Bulletin, 8(4), pp.30~44 (1976)
  11. Maurice H. Halstead, "Elements of Software Science(Operating and programming systems series)" (1977), Elsevier Science Inc.
  12. Hal L. Berghel, "Measurements of program similarity in identical task environments", ACM SIGPLAN Notices, 19(8), pp.65~76 (1984)
  13. Sam Grier, "A tool that detects plagiarism in pascal programs", ACM SIGCSE Bulletin, 13, pp.15~20 (1981)
  14. Stéphane Ducasse, "On the effectiveness of clone detection by string matching", Journal of Software Maintenance and Evolution : Research and Practice, 18(1), pp.37~58 (2006)
  15. J. Howard Johnson, "Identifying redundancy in source code using fingerprints", Proceedings of the 1993 Conference of the Centre for Advanced Studies on Collaborative Research: Software Engineering, 1, pp.171~183 (1993), IBM Press
  16. Jin-Su Lim, "A code plagiarism detection system considering the coding style", 석사, pp.2012
  17. David gitchell, "Sim : a utility for detecting similarity in computer programs", ACM SIGCSE Bulletin, 31, pp.266~270 (1999)
  18. Michael J. Wise, "Yap3 : Improved detection of similarities in computer program and other texts", ACM SIGCSE Bulletin, 28, pp.130~134 (1996)
  19. Michel Chilowicz, "Syntax tree fingerprinting for source code similarity detection", 17th IEEE International Conference on Program Compre hension, pp.243~247 (2009), IEEE
  20. Raimar Falke, "Empirical evaluation of clone detection using syntax suffix trees", Empirical Software Engineering, 13(6), pp.601~643 (2008)
  21. Lingxiao Jiang, "Deckard: Scalable and accurate treebased detection of code clones", Proceedings of the 29th international conference on Software Engineering, pp.96~105 (2007), IEEE
  22. Ira D. Baxter, "Clone detection using abstract syntax trees", International Conference on Software Maintenance, pp.368~377 (1998), IEEE
  23. Temple F. Smith, "Identification of common molecular subsequences", Journal of Molecular Biology, 147(1), pp.195~197 (1981)
  24. Harold W. Kuhn, "Variants of the hungarian method for assignment problems", Noval Research Logistics Quarterly, 3(4), pp.253~258 (1956)
  25. "javaparser - Java 1.5 parser and AST"[URL]

관련 논문AI추천

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