2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

Similar documents
PowerPoint 프레젠테이션

204

SW

1 SW

untitled

<30352D30312D3120BFB5B9AEB0E8BEE0C0C720C0CCC7D82E687770>

歯mp3사용설명서

PowerPoint 프레젠테이션

DBPIA-NURIMEDIA

슬라이드 1

ePapyrus PDF Document

PowerPoint 프레젠테이션

09-interface.key

PL10

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

Java XPath API (한글)

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 10, Oct ,,. 0.5 %.., cm mm FR4 (ε r =4.4)

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

9장.key

12-file.key

슬라이드 1

JMF2_심빈구.PDF

C 프로그래밊 개요

강의10

Modern Javascript

rmi_박준용_final.PDF

비긴쿡-자바 00앞부속

歯처리.PDF

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI: * A Research Trend


I I-1 I-2 I-3 I-4 I-5 I-6 GIS II II-1 II-2 II-3 III III-1 III-2 III-3 III-4 III-5 III-6 IV GIS IV-1 IV-2 (Complement) IV-3 IV-4 V References * 2012.

untitled

chap10.PDF

07 자바의 다양한 클래스.key

자바 프로그래밍

02 C h a p t e r Java

슬라이드 1

Java ...

Observational Determinism for Concurrent Program Security

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

교육자료

PowerPoint 프레젠테이션

ThisJava ..

1

untitled

<49534F C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

chap 5: Trees

02544Ac07¥Áöš


33_IPTV를 만나다

13_0308_바이오



Interstage5 SOAP서비스 설정 가이드

untitled

제11장 프로세스와 쓰레드

슬라이드 1

Microsoft PowerPoint - es-arduino-lecture-03

자바GUI실전프로그래밍2_장대원.PDF

untitled

PowerPoint 프레젠테이션


JMF3_심빈구.PDF

Assign an IP Address and Access the Video Stream - Installation Guide


슬라이드 1

03.Agile.key


OCaml

보고서_pdf로.hwp

( )부록

어댑터뷰

歯엑셀모델링

PowerPoint 프레젠테이션

PowerPoint Presentation

03장.스택.key


yessign Version 3.1 (yessign). ccopyright 2009 yessign ALL RIGHTS RESERVED

Microsoft PowerPoint - lec2.ppt

레이아웃 1



<3035C0CEB9AEC1A4C3A5BFACB1B8C3D1BCAD E687770>

chap01_time_complexity.key

슬라이드 1

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

10송동수.hwp


쉽게 풀어쓴 C 프로그래밍

칼 럼 1 하버드대에 부는 컴퓨팅 교육 열풍 김진형 소프트웨어정책연구소 소장 최근 하버드대학의 컴퓨터과학 입문 과목인 CS50강좌가 화제다. 이 번 학기에 820명의 수강생이 몰려 하버드 대학에서 가장 인기 있는 강 좌로 등극했다. 한 동안 인기를 누리던 마이클 셀던

06_ÀÌÀçÈÆ¿Ü0926

<B1A4B0EDC8ABBAB8C7D0BAB8392D345F33C2F75F E687770>

6주차.key

ch09

SIGPLwinterschool2012

bn2019_2

신림프로그래머_클린코드.key

5.스택(강의자료).key

Transcription:

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract - 31 -

소스코드유사도측정도구의성능에관한비교연구 1. 서론 1) Revulytics, Top 20 Countries for Software Piracy and Licence Misuse (2017), March 21, 2017. www.revulytics.com/blog/top-20-countries-software -piracy-2017 2) BSA The Software Alliance, Seizing Opportunity Through License Compliance, 2016. http://globalstudy.bsa.org/2016/ 2. 코드클론의유형 - 32 -

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 2.1 클론유형 1 exact clones Original code segment if ( a >= b) { c = d + b; //Comment 1 d = d + 1; } else c = d - a; //Comment 2 2.2 클론유형 2 Copy clone if (a >=b) { //Comment1' c=d+b; d=d+1; } else //Comment2' c=d-a; enamed/parameterized clones 2.3 클론유형 3 원본코드조각 (Original) Copy clone 원본코드조각 (Original) Copy clone if (a >= b) { c = d + b; // Comment1 d = d + 1;} else c = d - a; //Comment2 if (m >= n) { // Comment1 y = x + n; x = x + 5;//Comment3 } else y = x - m; //Comment2 if (a >= b) { c = d + b; // Comment1 d = d + 1;} else c = d - a; //Comment2 if (a >= b) { c = d + b; // Comment1 e = 1; // This statement is added d = d + 1; } else c = d - a; //Comment2 synchronized near miss clones 원본 코드 클론 public int getsolinger() throws SocketException{ Object o = impl.getoption(socketoptions.so_linger); if (o instanceof Integer) { return((integer) o).intvalue(); } else return -1; } public synchronized int getsotimeout() throws SocketException{ Object o = impl.getoption(socketoptions.so_timeout); if (o instanceof Integer) { return((integer) o).intvalue(); } else return -0; } - 33 -

소스코드유사도측정도구의성능에관한비교연구 원본코드클론상태 ε synchronized Insertion <getsolinger> <getsotimeout> Replacement <SO_LINGER > <SO_TIMEOUT> Replacement <-1> <-0> Replacement 2.4 클론유형 4 semantic clones 원본 반복문을이용한 factorial 구현 int i, j=1; for (i=1; i<=value; i++) j=j*i; 2.5 코드클론정리 코드클론 재귀함수를이용한 factorial 구현 int factorial(int n) { if (n == 0) return 1 ; else return n * factorial(n-1) ; } 3. 관련연구 3) 코드클론탐지기법의검증을위해사용되는시스템을주제시스템 (subject system) 이라고한다. 연구자들은동일시스템상에서연구를수행하여결과를더의미있게상호비교한다. 주제 (subject) 의대표적인예는 (1) Computing and processing (HW & SW), (2) General topics for engineers (Math, Science, and Engineering) 등이다 [15], 코드클론탐지를위해상용 subject system 을사용하기도하지만, 주로오픈소스소프트웨어시스템을사용한다. Subject system 의대표적인예는 JDK (3200 KLOC, Java), Appache-httpd (343 KLOC, C), Apache-Ant (1.41 MLOC, Java), Linux (6.2 MLOC, C), Netbeans-doc (19 KLOC, Java), Bison (16 KLOC, C), PostgreSQL (937 KLOC, C) 등이다 [15]. - 34 -

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 도구가탐지한클론중정확한클론의개수 도구가클론이라고탐지한코드의총개수 클론중도구가탐지한실제클론의개수 클론의총개수 JList. JScrollBar. JTable. JToolBar. JScrollBar. JTable. JToolBar. 재현율 : 재현율 : 재현율 : 4/7 34/299 3/4 정확도 : 정확도 : 정확도 : 34/34 157/157 45/45 재현율 : 재현율 : - 2/2 3/3 정확도 : 정확도 : 29/29 18/18 - - 재현율 : 1/2 정확도 : 12/12 - - - JTree. 재현율 : 30/258 정확도 : 171/173 재현율 : 0/1 정확도 : 22/22 재현율 : 95/321 정확도 : 279/279 재현율 : 1/1 정확도 : 12/12-35 -

소스코드유사도측정도구의성능에관한비교연구 4. 소프트웨어유사도측정도구 4.1 JPlag v2.11.9 [1,2,12,13] 4.2 exeyes [3] 5. 실험및평가 5.1 BigCloneBench 벤치마크 [6,11] - 36 -

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 유형 1 유형 2 유형 3 True clone 120 53 493 False clone 0 2 73 5.2 평가항목 용어설명별칭 정확도 (precision) 재현율 (recall) How many selected items are relevant? Positive predictive value How many relevant items are selected? Sensitivity 용어설명 TP (True Positive) The number of Predicted Positives that were correct ( 정상으로탐지 - 정탐 ) The number of Predicted Positives FP (False that were incorrect Positive) ( 클론이아닌것을클론으로분류 / 탐지 ) Type I error TN (True Negative) FN (False Negative) Ÿ Ÿ ( 실제클론을탐지하지못함 - 미탐 ) ( 실제클론을클론이아니라고분류 / 탐지 ) Type II error Ÿ precision recall precision recall 5.3 JPlag v2.11.9 의성능평가 - 37 -

소스코드유사도측정도구의성능에관한비교연구 정확도 재현율 유형 1 유형 2 유형 3 120/120 120/120 53/53 53/53 247/260 (95%) 247/493 (50.1%) 5.4 exeyes 5.0 의성능평가 정확도 재현율 유형 1 유형 2 유형 3 120/120 120/120 53/53 53/53 137/137 137/493 (27.7%) - 38 -

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 (a) DICOM_Sort. 116-261 (b) SimpleCricketDartGame. 34-65 (a) DICOM_Sort. 116-261 (b) Task2. 34-65 (a) DICOM_Sort. 일부 (b) SimpleCricketDartGame. 일부 - 39 -

소스코드유사도측정도구의성능에관한비교연구 (a) DICOM_Sort. 일부 (b) BubbleSortAlgorithm. 일부 6. 결론및향후연구방향 - 40 -

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 참고문헌 - 41 -

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