PDG 기반의 소스 코드 유사도 검사 도구에 대한 연구
A Study on PDG-based Source Code Similarity Checking Tools
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
최근 소프트웨어 개발 시 OSS를 사용해 개발 시간 및 비용을 줄인다. 하지만 OSS 라이선스를 준수하지않고 사용할 경우 소송을 당하는 등 다양한 문제가 발생한다. 이러한 문제는 소프트웨어 산업의 성장을 저해할 수 있기에 OSS 라이선스를 검사하는 것이 중요하다. 이를 소스코드 유사도 검사를 통해 사용된 OSS를검출할 수 있다. 하지만 텍스트 기반의 소스코드 유사도 검사는 간단한 소스코드 수정을 통해 유사도 검사를회피할 수 있다. 이를 해결하고자 본 논문에서는 PDG 기반의 소스코드 유사도 검사 도구를 제안한다. 이를통해 프로그램의 구조적 형태로 유사도를 비교한다. 텍스트 기반의 소스코드 유사도 검사 도구는 같은 소스코드를 검사했을 때의 유사도 평균 96.5%이로 측정되고 본 제안방식은 평균 100%로 보다 더욱 정확한 유사도 검사를 도출할 수 있다. 그 외 수정된 소스코드에 대해 텍스트 기반의 소스코드 유사도 검사보다 높은 정확도를 보인다. 이를 통해 소스코드 내 OSS를 정확히 파악할 수 있다.
Abstract
Modern software development uses OSS to reduce development time and costs. However, non-compliance with OSS licenses can lead to various problems, including lawsuits. These issues can hinder the growth of the software industry, so it's important to check OSS licenses. This can be done through source code similarity checking to detect the OSS used. However, simple source code modifications can circumvent text-based source code similarity checks. To solve this problem, this paper proposes a PDG-based source code similarity-checking tool that compares similarities in the structural form of programs. Text-based source code similarity-checking tools are measured to have an average similarity of 96.5% when checking the same source code. In comparison, the proposed method can achieve a more accurate similarity check with an average of 100%. In addition, it is more accurate than text-based source code similarity checks for modified source code. This allows you to identify OSS in your source code accurately.
참고문헌 (14)
- C. Alexandra-Cristina, "Material Survey on Source Code Plagiarism Detection in Programming Courses", Proceedings of the 2022 International Conference on Advanced Learning Technologies (ICALT), pp.387~389 (2022)
- Hendrik Schoettle, "Open Source License Compliance-Why and How?", Computer, 52(8), pp.63~67 (2019), Institute of Electrical and Electronics Engineers (IEEE)[DOI]
- J. Ji, "Unlearnable Examples: Protecting Open-Source Software from Unauthorized Neural Code Learning", Proceedings of SEKE 2022 (2022)
- R. Maertens, "Dolos 2.0: Towards Seamless Source Code Plagiarism Detection in Online Learning Environments", Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 2 (ITiCSE 2023), 632, pp.632~ (2023)
- "Evaluation of similarity metrics for programming code plagiarism detection method" (2011)[URL]
- Hayden Cheers, "Academic Source Code Plagiarism Detection by Measuring Program Behavioral Similarity", IEEE Access, 9, pp.50391~50412 (2021), Institute of Electrical and Electronics Engineers (IEEE)[DOI]
- Á. Pintér, "Longest Common Subsequence-based Source Code Similarity", 2023 IEEE 17th International Symposium on Applied Computational Intelligence and Informatics (SACI), 2023, pp.123~129 (2023), IEEE
- R. A. Rizvee, "A Robust Objective Focused Algorithm to Detect Source Code Plagiarism", 2022 IEEE 13th Annual Ubiquitous Computing, Electronics &Mobile Communication Conference (UEMCON), 2022, pp.109~115 (2022)
- M. Zheng, "CodEX: Source Code Plagiarism Detection Based on Abstract Syntax Trees", 26th AIAI Irish Conference on Artificial Intelligence and Cognitive Science(AICS 2018) (2018)
- Feng Zhang, "Flow Chart Generation-Based Source Code Similarity Detection Using Process Mining", Scientific Programming, 2020, pp.1~15 (2020), Hindawi Limited[DOI]
- 박정혁, "스택 사용 패턴 기반 소프트웨어 유사도 분석", 정보과학회 컴퓨팅의 실제 논문지, 20(6), pp.349~353 (2014), 한국정보과학회
- Y. S. Nam, "Source Code Evaluation and Similarity Inspection System : Code Odor Detect Assistant", Proceedings of KIIT Conference, pp.1080~1084 (2023)
- Jeanne Ferrante, "The program dependence graph and its use in optimization", ACM Transactions on Programming Languages and Systems, 9(3), pp.319~349 (1987), Association for Computing Machinery (ACM)[DOI]
- Karl J. Ottenstein, "The program dependence graph in a software development environment", ACM SIGPLAN Notices, 19(5), pp.177~184 (1984), Association for Computing Machinery (ACM)[DOI]
