[2] [1], [3] Kawaguchi SHINOBI [4] CCFinder [1] CCFinder CCFinder Gemini [5]. Gemini CCFinder Gemini 2.2 CVS Subversion 1 Git Mercurial

Similar documents
1_26.dvi

IPSJ SIG Technical Report Vol.2018-SE-200 No /12/ Proposal of test description support environment for request acquisition in web appli

. 1.,, Gemini[12].,.,,.,,.,.,,., 1,, [9], [13].,,,., 2., 3, 4., ,., [4].,,,.,, 1 Fig. 1 [5]. Gemini Example of scatter plot in Gemini.,,. 1 [

Fig. 3 3 Types considered when detecting pattern violations 9)12) 8)9) 2 5 methodx close C Java C Java 3 Java 1 JDT Core 7) ) S P S

1 Fig. 1 Extraction of motion,.,,, 4,,, 3., 1, 2. 2.,. CHLAC,. 2.1,. (256 ).,., CHLAC. CHLAC, HLAC. 2.3 (HLAC ) r,.,. HLAC. N. 2 HLAC Fig. 2

IPSJ SIG Technical Report Secret Tap Secret Tap Secret Flick 1 An Examination of Icon-based User Authentication Method Using Flick Input for

Eclipse A Tool Support to Merge Similer Methods with Differences Akira Goto 1 Norihiro Yoshida 2 Masakazu Ioka 1 Katsuro Inoue 1 Abstra

2 3 Pockets Pockest Java [6] API (Backtracking) 2 [7] [8] [3] i == Pockets 2.1 C3PV web [9] Pockets [10]Pockets 1 3 C

1 Web [2] Web [3] [4] [5], [6] [7] [8] S.W. [9] 3. MeetingShelf Web MeetingShelf MeetingShelf (1) (2) (3) (4) (5) Web MeetingShelf

Core1 FabScalar VerilogHDL Cache Cache FabScalar 1 CoreConnect[2] Wishbone[3] AMBA[4] AMBA 1 AMBA ARM L2 AMBA2.0 AMBA2.0 FabScalar AHB APB AHB AMBA2.0

Vol.53 No (Mar. 2012) 1, 1,a) 1, 2 1 1, , Musical Interaction System Based on Stage Metaphor Seiko Myojin 1, 1,a

IPSJ SIG Technical Report Vol.2017-CLE-21 No /3/21 e 1,2 1,2 1 1,2 1 Sakai e e e Sakai e Current Status and Challenges on e-learning T

IPSJ SIG Technical Report Vol.2010-NL-199 No /11/ treebank ( ) KWIC /MeCab / Morphological and Dependency Structure Annotated Corp

The copyright of this material is retained by the Information Processing Society of Japan (IPSJ). The material has been made available on the website

SES2012.pdf

2. Twitter Twitter 2.1 Twitter Twitter( ) Twitter Twitter ( 1 ) RT ReTweet RT ReTweet RT ( 2 ) URL Twitter Twitter 140 URL URL URL 140 URL URL

Vol.55 No (Jan. 2014) saccess 6 saccess 7 saccess 2. [3] p.33 * B (A) (B) (C) (D) (E) (F) *1 [3], [4] Web PDF a m

& Vol.5 No (Oct. 2015) TV 1,2,a) , Augmented TV TV AR Augmented Reality 3DCG TV Estimation of TV Screen Position and Ro

2

Web Web [4] Web Web [5] Web 2 Web 3 4 Web Web 2.1 Web Web Web Web Web 2.2 Web Web Web *1 Web * 2*3 Web 3. [6] [7] [8] 4. Web 4.1 Web Web *1 Ama

IPSJ SIG Technical Report Vol.2011-EC-19 No /3/ ,.,., Peg-Scope Viewer,,.,,,,. Utilization of Watching Logs for Support of Multi-

HASC2012corpus HASC Challenge 2010,2011 HASC2011corpus( 116, 4898), HASC2012corpus( 136, 7668) HASC2012corpus HASC2012corpus

IPSJ SIG Technical Report Vol.2011-MUS-91 No /7/ , 3 1 Design and Implementation on a System for Learning Songs by Presenting Musical St

17 Proposal of an Algorithm of Image Extraction and Research on Improvement of a Man-machine Interface of Food Intake Measuring System

1 4 4 [3] SNS 5 SNS , ,000 [2] c 2013 Information Processing Society of Japan

16_.....E...._.I.v2006

JOURNAL OF THE JAPANESE ASSOCIATION FOR PETROLEUM TECHNOLOGY VOL. 66, NO. 6 (Nov., 2001) (Received August 10, 2001; accepted November 9, 2001) Alterna

258 5) GPS 1 GPS 6) GPS DP 7) 8) 10) GPS GPS ) GPS Global Positioning System

2. CABAC CABAC CABAC 1 1 CABAC Figure 1 Overview of CABAC 2 DCT 2 0/ /1 CABAC [3] 3. 2 値化部 コンテキスト計算部 2 値算術符号化部 CABAC CABAC

IPSJ SIG Technical Report Vol.2014-EIP-63 No /2/21 1,a) Wi-Fi Probe Request MAC MAC Probe Request MAC A dynamic ads control based on tra

3_23.dvi

IPSJ SIG Technical Report Vol.2016-MUS-111 No /5/21 1, 1 2,a) HMM A study on an implementation of semiautomatic composition of music which matc


[5] [6] [7 10] 2 [5] (RQ:Research Question) RQ1:? RQ2:? Commit Guru Commit Guru [1] Emad Shihab Web Commit Guru [10] Number of Subsystems(

WikiWeb Wiki Web Wiki 2. Wiki 1 STAR WARS [3] Wiki Wiki Wiki 2 3 Wiki 5W1H Wiki Web 2.2 5W1H 5W1H 5W1H 5W1H 5W1H 5W1H 5W1H 2.3 Wiki 2015 Informa

大学における原価計算教育の現状と課題

Vol. 42 No. SIG 8(TOD 10) July HTML 100 Development of Authoring and Delivery System for Synchronized Contents and Experiment on High Spe

,,,,., C Java,,.,,.,., ,,.,, i

23 Fig. 2: hwmodulev2 3. Reconfigurable HPC 3.1 hw/sw hw/sw hw/sw FPGA PC FPGA PC FPGA HPC FPGA FPGA hw/sw hw/sw hw- Module FPGA hwmodule hw/sw FPGA h

,

25 II :30 16:00 (1),. Do not open this problem booklet until the start of the examination is announced. (2) 3.. Answer the following 3 proble

IPSJ SIG Technical Report Vol.2015-CVIM-196 No /3/6 1,a) 1,b) 1,c) U,,,, The Camera Position Alignment on a Gimbal Head for Fixed Viewpoint Swi

システム開発プロセスへのデザイン技術適用の取組み~HCDからUXデザインへ~

研究成果報告書

( ) [1] [4] ( ) 2. [5] [6] Piano Tutor[7] [1], [2], [8], [9] Radiobaton[10] Two Finger Piano[11] Coloring-in Piano[12] ism[13] MIDI MIDI 1 Fig. 1 Syst

(a) (b) 1 JavaScript Web Web Web CGI Web Web JavaScript Web mixi facebook SNS Web URL ID Web 1 JavaScript Web 1(a) 1(b) JavaScript & Web Web Web Webji

DPA,, ShareLog 3) 4) 2.2 Strino Strino STRain-based user Interface with tacticle of elastic Natural ObjectsStrino 1 Strino ) PC Log-Log (2007 6)

GPGPU

IPSJ SIG Technical Report PIN(Personal Identification Number) An Examination of Icon-based User Authentication Method for Mobile Terminals Fum

ID 3) 9 4) 5) ID 2 ID 2 ID 2 Bluetooth ID 2 SRCid1 DSTid2 2 id1 id2 ID SRC DST SRC 2 2 ID 2 2 QR 6) 8) 6) QR QR QR QR

: ( ) ( ) 1 *1 *2 *3 [1] *4 () *1 *2 e-portfolio *3 *4 [2] [1] (1) (2) ICT *5 CMS / LMS *6 ([3], ) 2 Mahara[4] () *7 *5 Information and Commu

29 jjencode JavaScript

IPSJ SIG Technical Report Vol.2012-CG-148 No /8/29 3DCG 1,a) On rigid body animation taking into account the 3D computer graphics came

HP cafe HP of A A B of C C Map on N th Floor coupon A cafe coupon B Poster A Poster A Poster B Poster B Case 1 Show HP of each company on a user scree

00.\...ec5

IPSJ SIG Technical Report Vol.2014-GN-90 No.16 Vol.2014-CDS-9 No.16 Vol.2014-DCC-6 No /1/24 1,a) 2,b) 2,c) 1,d) QUMARION QUMARION Kinect Kinect

Web Web Web Web Web, i

AP AP AP AP AP AP AP( AP) AP AP( AP) AP AP Air Patrol[1] Air Patrol Cirond AP AP Air Patrol Senser Air Patrol Senser AP AP Air Patrol Senser AP

Fig. 3 Flow diagram of image processing. Black rectangle in the photo indicates the processing area (128 x 32 pixels).

”Лï−wŁfl‰IŠv‚æ89“ƒ/‚qfic“NŸH

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

Kyushu Communication Studies 第2号

Web Web Web Web i

2

149 (Newell [5]) Newell [5], [1], [1], [11] Li,Ryu, and Song [2], [11] Li,Ryu, and Song [2], [1] 1) 2) ( ) ( ) 3) T : 2 a : 3 a 1 :

生研ニュースNo.132

自然言語処理16_2_45

1., 1 COOKPAD 2, Web.,,,,,,.,, [1]., 5.,, [2].,,.,.,, 5, [3].,,,.,, [4], 33,.,,.,,.. 2.,, 3.., 4., 5., ,. 1.,,., 2.,. 1,,

IPSJ SIG Technical Report Vol.2009-BIO-17 No /5/26 DNA 1 1 DNA DNA DNA DNA Correcting read errors on DNA sequences determined by Pyrosequencing

ディスプレイと携帯端末間の通信を実現する映像媒介通信技術

2006 [3] Scratch Squeak PEN [4] PenFlowchart 2 3 PenFlowchart 4 PenFlowchart PEN xdncl PEN [5] PEN xdncl DNCL 1 1 [6] 1 PEN Fig. 1 The PEN

IPSJ SIG Technical Report 3,a),b),,c) Web Web Web Patrash Patrash Patrash Design and Implementation of 3D interface for Patrash: Personalized Autonomo

IPSJ SIG Technical Report Vol.2014-IOT-27 No.14 Vol.2014-SPT-11 No /10/10 1,a) 2 zabbix Consideration of a system to support understanding of f

1: A/B/C/D Fig. 1 Modeling Based on Difference in Agitation Method artisoc[7] A D 2017 Information Processing

IPSJ SIG Technical Report Vol.2010-GN-74 No /1/ , 3 Disaster Training Supporting System Based on Electronic Triage HIROAKI KOJIMA, 1 KU

e-learning station 1) 2) 1) 3) 2) 2) 1) 4) e-learning Station 16 e-learning e-learning key words: e-learning LMS CMS A Trial and Prospect of Kumamoto

ユーザーズマニュアル

Vol. 48 No. 4 Apr LAN TCP/IP LAN TCP/IP 1 PC TCP/IP 1 PC User-mode Linux 12 Development of a System to Visualize Computer Network Behavior for L


IPSJ SIG Technical Report Vol.2009-DBS-149 No /11/ Bow-tie SCC Inter Keyword Navigation based on Degree-constrained Co-Occurrence Graph

IPSJ SIG Technical Report Vol.2009-HCI-134 No /7/17 1. RDB Wiki Wiki RDB SQL Wiki Wiki RDB Wiki RDB Wiki A Wiki System Enhanced by Visibl

Core Ethics Vol.

特-3.indd

TF-IDF TDF-IDF TDF-IDF Extracting Impression of Sightseeing Spots from Blogs for Supporting Selection of Spots to Visit in Travel Sat

第62巻 第1号 平成24年4月/石こうを用いた木材ペレット

1 Fig. 2 2 Fig. 1 Sample of tab UI 1 Fig. 1 that changes by clicking tab 5 2. Web HTML Adobe Flash Web ( 1 ) ( 2 ) ( 3 ) ( 4 ) ( 5 ) 3 Web 2.1 Web Goo

( ) ATR

VDM-SL ISO.VDM++ VDM-SL VDM- RT VDM++ VDM,.VDM, [5]. VDM VDM++.,,, [7]., VDM++.,., [7] VDM++.,,,,,,,.,,, VDM VDMTools OvertureTo

Core Ethics Vol. a

Lite 2 45 ECHONET Lite ECHONET Lite [2], [3], [4], [5], [6], [7] IoT WoT Web [8] HEMS [9] ECHONET Lite ECHONET Lite ECHONET Lite ECHONET Lite ECHONET


Vol.54 No (July 2013) [9] [10] [11] [12], [13] 1 Fig. 1 Flowchart of the proposed system. c 2013 Information

1,a) 1,b) TUBSTAP TUBSTAP Offering New Benchmark Maps for Turn Based Strategy Game Tomihiro Kimura 1,a) Kokolo Ikeda 1,b) Abstract: Tsume-shogi and Ts


24 LED A visual programming environment for art work using a LED matrix

情報処理学会研究報告 IPSJ SIG Technical Report Vol.2014-SE-185 No /7/ Abstract: SVN Trac PBL Keywords: 1. 1 [1] 10 [2] 1 Division of Frontie

e-learning e e e e e-learning 2 Web e-leaning e 4 GP 4 e-learning e-learning e-learning e LMS LMS Internet Navigware

& Vol.2 No (Mar. 2012) 1,a) , Bluetooth A Health Management Service by Cell Phones and Its Us

IPSJ SIG Technical Report Vol.2014-CE-127 No /12/7 1,a) 2,3 2,3 3 Development of the ethological recording application for the understanding of

untitled

Transcription:

1,a) 1,b) 1,c) 1,d) Discussion on Code Clone Modification Tool for Development Process with Version Control System Yusuke Fujihara 1,a) Kenji Fujiwara 1,b) Norihiro Yoshida 1,c) Hajimu Iida 1,d) Abstract: A code clone is a code fragment that has identical or similar code fragments to it in the source code. If developers modify a code clone, they have to determine whether or not to modify the corresponding code clones in source code. To keep the consistency of code clones, developers run a clone detection tool when they modify one of the code clones. This prevents the developers from concentrating on coding. A considerable solution is integrating a code clone detection tool into IDE, and detecting code clones when a developer changes source code. However, if a number of clone changes are notified when a developer complete a modification, this also prevents the developers from concentrating on coding. A commit of a version control system is a considerable timing of notifying clone changes. Because it is not frequent but also means the completion of a modification, commitlevel notification does not interrupt implementation. In this study, we describe existing works related with the integration of version control system and code clone detection tool, and then discuss requirements of a clone modification tool for development process with version control. Finally, we introduce a tool satisfying the requirements under development. Keywords: Code Clone, Version Control System, Development Process, Software Maintenance 1 Nara Institute of Science and Technology a) yusukefuj@is.naist.jp b) kenjif@is.naist.jp c) yoshida@is.naist.jp d) iida@itc.naist.jp 1. [1] 1

[2] [1], [3] Kawaguchi SHINOBI [4] 2 3 4 5 2. 2.1 CCFinder [1] CCFinder CCFinder Gemini [5]. Gemini CCFinder Gemini 2.2 CVS Subversion 1 Git Mercurial 1 (1) (2) (3) (4) 2

2.3 Kawaguchi Microsoft Visual Studio SHINOBI [4]. SHINOBI SHINOBI [6]. Nguyen Eclipse SVN Subclipse Clever [7] Clever Clever Subversion 3. 2.3 3.1 ( IA). ( IB). A B A 1 B 3.2 3

情報処理学会研究報告 図 3 ブラウザ上において提示される画面の概要 Fig. 3 Overview of the views on screen 図 1 開発中のツールの概要 Fig. 1 Overview of the tool under development Following diff modify clone piece! cockpitservers["ppe"]=config.getparameter(c_iqmfile, "PPE","cockpitServer",this.c_ppeCockpitServer); cockpitports["ppe"]=config.getintparameter( c_iqmfile,"ppe","cockpitport",this.c_ppecockpitport); collectiondirs["ppe"]=config.getparameter(c_iqmfile, "PPE","collectionDir",this.c_ppeCollectionDir); cockpitservers["blu"]=config.getparameter(c_iqmfile, "BLU","cockpitServer",this.c_ppeCockpitServer); cockpitports["blu"]=config.getintparameter( コミットによってクローンセット内で修正されたクロー ン片の数と割合を提示する事が求められる (要件 IIB) 例 として クローンセット内のクローン片が 10 個として今 回のコミットでそのうち 9 個が修正されている場合 残り try{ の情報は開発者にとって有益である c_iqmfile,"blu","cockpitport",this.c_ppecockpitport); collectiondirs["blu"]=config.getparameter(c_iqmfile, "BLU","collectionDir",this.c_ppeCollectionDir); if ( Config.GetIntParameter( c_iqmfile,"ppe","rankdataavailable", c_iqmfile,"blu","rankdataavailable", c_pperankdataavailable ) == 1 ){ m_numcollections; 1 つのクローン片に対しても同様の修正を行うべきである 可能性が高い 過去にクローンを変更した開発者の名前 時間及びコ ミットメッセージを提示する事が求められる (要件 IIC) ならば クローンの変更した理由が分かり 変更した開発 者に直に相談する事も可能になると考える 過去にクローンセットに対して一貫した修正がなされた かどうかを提示する事が求められる (要件 IID) 過去に 一貫した修正がなされたならば そのクローンセットは引 き続き一貫した修正を行うべきである可能性が高い 3.3 開発者に提示する方法とインターフェース コミットを行った時点で通知がすぐに見られるように コミットを行ったツール上に通知するのが望ましいと考え (中略) る 版管理システムでは コンソールによる操作は標準で 詳細の HTML を閲覧しますか [yes/no] 利用できる コンソール上にコードクローンの変更が通知 図 2 コンソール上に表示される情報 される事が求められる (要件 IIIA) ただし コンソール Fig. 2 Information shown on console 上にあまりに多くの情報を表示させる事は開発者に煩わし い思いをさせる事になる 変更内容であるコミットによる 負担となる 開発者の関心事は 現在行っている修正が 修正箇所とそれがコードクローンを変更した旨のみを通 コードクローンへの修正かどうかであると考える 変更が 知 詳細情報は別途提示するべきである 行われたコードクローンとそのコードクローンが属するク OS などのプラットフォームに左右されない情報の提 ローンセット コミットによる修正箇所を提示する事が求 示方法として HTML や PDF が挙げられる HTML は められる (要件 IIA) JavaScript によってアニメーションやインタラクティブな 開発者はコードクローンに対する変更を発見すると 対 応するクローン片も同様の修正を行うか検討する必要があ UI の拡張を行う事が出来る HTML によって詳細情報を 提示する事が求められる (要件 IIIB) る このような一貫した修正を行うべきかを検討するため 2013 Information Processing Society of Japan 4

4 Fig. 4 View for diffs by a commit 4. 3 Git precommit hook hook precommit hook CCFinderX *1 IA IIA IIIA IIIB IB IIB IIC IID 1 Git hook hook CCFinderX Git 1 HTML 2 [8]. HTML HTML *1 http://www.ccfinder.net/ccfinderxosj.html HTML 3 HTML 4 Git hunk hunk hunk 1 Unidiff Git @@1,22 1,22 @@ 1 22 1 22 hunk ID 5 5. 5

情報処理学会研究報告 図 5 変更されたクローンセットに属するコードクローン一覧画面 Fig. 5 View for code clones in a modified clone set スに適したコードクローン修正支援ツールに求められる要 [2] 件を検討した 最後に 検討した要件を踏まえて現在我々 が開発中であるコードクローン修正支援ツールを紹介した 開発中のツールは 分散型版管理システムである Git の [3] hook スクリプトとして実装され コミット時点でクローン に対する変更の通知及び修正箇所一覧と修正されたクロー ンセットに属するコードクローン一覧を提示する 今後の課題は開発中のツールが検討した要件の内 未実 [4] 装であるものを満たすように拡張する事である 未実装で ある要件は以下の通りである マージ リベース等の新しいリビジョンが作成される [5] 操作が行われた時点でも通知される コミットによってクローンセット内で修正されたク [6] ローン片の数と割合を提示する 過去にクローンを変更した開発者の名前 時間及びコ ミットメッセージを提示する [7] 過去にクローンセットに対して一貫した修正がなされ たかどうかを提示する [8] 参考文献 [1] Kamiya, T., Kusumoto, S. and Inoue, K.: CCFinder: a multilinguistic tokenbased code clone detection system for large scale source code, IEEE Trans. Softw. Eng., Vol. 28, No. 7, pp. 654 670 (2002). 2013 Information Processing Society of Japan 西田皓司 伏田享平 川口真司 飯田元 コードクロー ンに対する変更の一貫性と欠陥発生との関連性に関する 分析 電子情報通信学会技術研究報告 Vol. 109, No. 456, pp. 67 72 (2010). Jiang, L., Misherghi, G., Su, Z. and Glondu, S.: DECKARD: Scalable and Accurate TreeBased Detection of Code Clones, Proceedings of the 29th international conference on Software Engineering, ICSE 07, pp. 96 105 (2007). Kawaguchi, S., Yamashina, T., Uwano, H., Fushida, K., Kamei, Y., Nagura, M. and Iida, H.: SHINOBI: A Tool for Automatic Code Clone Detection in the IDE, Proceedings of the 16th Working Conference on Reverse Engineeringmt, WCRE 2009, pp. 313 314 (2009). 植田泰士 神谷年洋 楠本真二 井上克郎 開発保守支援 を目指したコードクローン分析環境 電子情報通信学会論 文誌 DI Vol. 86, No. 12, pp. 863 871 (2003). 山中裕樹 崔恩瀞 吉田則裕 井上克郎 佐野建樹 コー ドクローン変更管理システムの開発と実プロジェクトへの 適用 情報処理学会論文誌 Vol. 54, pp. 883 893 (2013). Nguyen, T. T., Nguyen, H. A., Pham, N. H., AlKofahi, J. M. and Nguyen, T. N.: CloneAware Configuration Management, Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, ASE 09, pp. 123 134 (2009). Wang, X., Dang, Y., Zhang, L., Zhang, D., Lan, E. and Mei, H.: Can I clone this piece of code here?, Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, ASE 2012, pp. 170 179 (2012). 6