$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

프로그램 코드 분석을 위한 유사도 측정 및 가시화 기법
A Similarity Measurement and Visualization Method for the Analysis of Program Code 원문보기

멀티미디어학회논문지 = Journal of Korea Multimedia Society, v.16 no.7, 2013년, pp.802 - 809  

이영주 (삼성전자 생산기술연구소) ,  이정진 (숭실대학교 컴퓨터학부)

초록
AI-Helper 아이콘AI-Helper

본 논문에서는 프로그래밍 언어에 정의되는 지정자와 키워드가 프로그램 코드 상에서 연속적인 패턴으로 나타나게 될 때, 해당 연속 패턴들의 빈도와 길이를 측정하여 두 코드 사이의 유사성을 측정하는 기법을 제안한다. 또한, 이러한 분석 결과를 정형적 개념 분석 기법을 이용하여 가시화하는 기법을 제안한다. 제안 기법은 기존의 유사도 측정 기법에서는 고려하지 않았던 단어 인접성을 유사도 측정에 반영한다. 함수 단위로 지정자와 키워드 패턴을 이용하여 함수의 호출 순서나 수행 순서에 상관없이 표절을 탐지할 수 있다. 또한, 유사도 측정 결과는 정형적 개념 분석 기법을 이용하여 격자(lattice)로 시각화되어 사용자의 이해도를 높일 수 있다. 실험 결과 제안 기법은 96%의 표절 탐지 성공률을 보여주었다. 제안 기법은 프로그램 코드 뿐만 아니라 일반 문서의 분석에도 적용될 수 있다.

Abstract AI-Helper 아이콘AI-Helper

In this paper, we propose the similarity measurement method between two program codes by counting the frequency and length of continuous patterns of specifiers and keywords, which exist in two program codes. In addition, we propose the visualization method of this analysis result by formal concept a...

주제어

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 일치 구문을 이용한 유사도 측정 기법은 [10]에서 연구된 바 있으나, 빈도 차이를 반영하지 못하는 단점이 있었다. 따라서 본 연구에서는 빈도 차이를 반영할 수 있는 유사도 측정 기법을 제안한다. 제안 유사도 측정 기법은 근본적으로 유사도 측정에 널리 사용되는 식 (1)의 Dice coefficient [11]의 개념에 기반을 두고 있다.
  • 본 논문에서는 프로그램 코드 분석 및 표절 탐지를 위하여 기존의 지문법과 구조 검사법의 장점을 동시에 취할 수 있는 유사도 측정 및 가시화 기법을 제안한다. 본 논문에서는 프로그래밍 언어에 정의되는 지정자(specifier)와 키워드(keyword)가 코드 상에 연속적인 패턴으로 나타나게 될 때, 특정 지정자와 키워드 연속 패턴들의 길이와 빈도를 측정하여두 코드 사이의 유사성을 측정한다. 또한, 이러한 분석 결과를 정형적 개념 분석 기법을 이용하여 가시화 하는 기법을 제시한다.
  • 본 논문에서는 프로그래밍 언어의 지정자와 키워드 패턴을 사용하여 프로그램 코드들 간의 유사성을 측정하고, 이 측정 결과를 정형적 개념 분석을 이용하여 해석하고 가시화하는 방법론을 제시하였다. 실험 결과 제안 기법은 96%의 표절 탐지 성공률을 보여주었고, 기존 기법[3]의 83%의 표절 탐지 성공률에 비하여 큰 향상이 있었다.
  • 본 논문에서는 프로그램 코드 분석 및 표절 탐지를 위하여 기존의 지문법과 구조 검사법의 장점을 동시에 취할 수 있는 유사도 측정 및 가시화 기법을 제안한다. 본 논문에서는 프로그래밍 언어에 정의되는 지정자(specifier)와 키워드(keyword)가 코드 상에 연속적인 패턴으로 나타나게 될 때, 특정 지정자와 키워드 연속 패턴들의 길이와 빈도를 측정하여두 코드 사이의 유사성을 측정한다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
지문법은 어떻게 표절 검사를 수행하는가? 기존에 제안된 프로그램 코드 분석 및 표절 탐지기법은 크게 지문(fingerprint)법과 구조 검사법으로 구분된다. 지문법은 두 개의 코드에 사용된 키워드들의 빈도수나 유사성을 분석하여 프로그램 코드의 통계적인 특징을 추출하고, 이를 기반으로 표절 검사를 수행한다[3,5-7]. 지문법은 분석해야할 프로그램 코드의 길이에 영향을 받지 않고, 프로그램 코드 내에 구문의 순서를 변경하더라도 사용된 지정자(specifier), 키워드(keyword)의 빈도수 등을 기준으로 고속으로 분석이 가능하다.
기존에 제안된 프로그램 코드 분석 및 표절 탐지기법은 어떻게 구분되는가? 기존에 제안된 프로그램 코드 분석 및 표절 탐지기법은 크게 지문(fingerprint)법과 구조 검사법으로 구분된다. 지문법은 두 개의 코드에 사용된 키워드들의 빈도수나 유사성을 분석하여 프로그램 코드의 통계적인 특징을 추출하고, 이를 기반으로 표절 검사를 수행한다[3,5-7].
최근 프로그램 코드들을 분석하여 상호 유사성을 측정하고, 표절 여부를 판단하는 탐지 기법들에 대한 연구가 활발해진 것은 어떤 이유 때문인가? 그러나 이러한 디지털화된 정보의 폭발적인 증가 속도에 비하여 보안이나 복제 방지에 대한 대책은 미흡한 실정이며 인터넷과 스마트폰 등의 다양한 매체의 활성화에 따른 디지털화된 정보의 급격한 증가는 정보 복제를 더욱 쉽게 만드는 주요인이 되고 있다[2]. 디지털화된 정보 중 프로그램 코드는 특히 복제가 빈번하게 일어나고 있고, 특히 프로그램을 교육하는 경우 학생들이 제출하는 프로그램 과제의 표절 여부를 육안으로 검사하기가 어렵기 때문에 이를 자동으로 탐지해주는 시스템이 필요하다[3]. 또한, 컴퓨터 프로그램 코드에 대한 저작권은 지적재산권의 한 종류로서 마땅히 보호되고, 관리되어야 하지만, 그 침해와 피해 사례는 늘어만 가고 있다[4]. 이러한 필요성에 의하여 최근 프로그램 코드들을 분석하여 상호 유사성을 측정하고, 표절 여부를 판단하는 탐지 기법들에 대한 연구가 활발히 수행되고 있다.
질의응답 정보가 도움이 되었나요?

참고문헌 (13)

  1. A. Barabasi, R. Albert, and H. Jeong, "Scalefree Characteristics of Random Networks: the Topology of the World-wide Web," Physica, Vol. 281, No. 1, pp. 69-77, 2000. 

  2. 김영철, 최재영, "구문트리에서 키워드 추출을 이용한 프로그램 유사도 평가," 정보처리학회 논문지, 제12권, 제2호, pp. 109-116, 2005. 

  3. 손기락, 문승미, "계층적 군집화 기법을 이용한 소스 코드 표절 검사," 정보교육학회논문지, 제11권, 제1호, pp. 91-98, 2007. 

  4. 김은혜, 이송아, 허준, 한경숙, 오용철, "자바소스코드 유사도 측정 시스템," 한국정보과학회 학술발표논문집, 제34권, 제2호, pp. 536-539, 2007. 

  5. D. Grune and M. Huntjens, "Het Detecteren van Kopieen bij Informatica-practica," Informatie, Vol. 31, No. 11, pp. 864-867, 1989. 

  6. 한소정, 용환승, "오픈 소스코드 표절 탐지 기법," 한국정보처리학회 추계학술발표대회 논문집, 제15권, 제2호, pp. 1459-1461, 2008. 

  7. 한소정, 오픈 소스코드 표절 탐지 기법, 이화여자대학교 석사논문, 2009. 

  8. A. Si, H.V. Leong, and R.W.H. Lau, "CHECK: a Document Plagiarism Detection System," Proc. the 1997 ACM Symposium on Applied Computing, pp. 70-77, 1997. 

  9. 손정우, 박성배, 이상조, 박세영, "Parse tree kernel을 이용한 소스코드 표절 검출," 한국컴퓨터종합학술대회 논문지, 제33권, 제1호, pp. 157- 159, 2006. 

  10. K.M. Hammouda and M.S. Kamel, "Efficient Phrase-Based Document Indexing for Web Document Clustering," IEEE Transactions on Knowledge and Data Engineering, Vol. 16, No. 10, pp. 1279-1296, 2004. 

  11. 이정진, 이호, 김정곤, 이창경, 신영길, 이윤철, 이민선, "동적 MR 영상에서 비강체 정합과 감산 기법을 이용한 자동 전립선 분할 기법," 멀티미디어학회논문지, 제14권, 제3호, pp. 348-355, 2011. 

  12. P. Boucher-Ryan and D. Bridge, "Collaborative Recommending using Formal Concept Analysis," Research and Development in Intelligent Systems XXII , Vol. 19, No. 1, pp. 205-218, 2006. 

  13. S.A. Yevtushenko, "System of Data Analysis Concept Explorer," Proc. the 7th national conference on Artificial Intelligence KII-2000, p. 127-134, 2000. 

저자의 다른 논문 :

LOADING...

관련 콘텐츠

오픈액세스(OA) 유형

BRONZE

출판사/학술단체 등이 한시적으로 특별한 프로모션 또는 일정기간 경과 후 접근을 허용하여, 출판사/학술단체 등의 사이트에서 이용 가능한 논문

섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로