Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Application.

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A Preliminary.
Advertisements

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Identifying Source.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Evolutional Analysis.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extraction of.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extracting Code.
A Tool Support to Merge Similar Methods with a Cohesion Metric COB ○ Masakazu Ioka 1, Norihiro Yoshida 2, Tomoo Masai 1,Yoshiki Higo 1, Katsuro Inoue 1.
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 1 Assessing and Estimating Corrective, Enhancive, and Reductive.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Measuring Copying.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Where Does This.
Software Engineering Lab, Osaka University Code Clone Analysis and Its Application Katsuro Inoue Osaka University.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ICSE 2003 Java.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Finding Similar.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University What Kinds of.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A Criterion for.
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University DCCFinder: A Very- Large Scale Code Clone Analysis.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Investigation.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University A clone detection approach for a collection of similar.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University What Do Practitioners.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ARIES: Refactoring.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University A Method to Detect License Inconsistencies for Large-
Mining and Analysis of Control Structure Variant Clones Guo Qiao.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Code-Clone Analysis.
2002/12/11PROFES20021 On software maintenance process improvement based on code clone analysis Yoshiki Higo* , Yasushi Ueda* , Toshihiro Kamiya** , Shinji.
Reishi Yokomori Nanzan University, Japan Harvey Siy University of Nebraska at Omaha, USA Norihiro Yoshida Nara Institute of Science and Technology, Japan.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Detection and evolution analysis of code clones for.
1 Gemini: Maintenance Support Environment Based on Code Clone Analysis *Graduate School of Engineering Science, Osaka Univ. **PRESTO, Japan Science and.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Design and Implementation.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Applying Clone.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Inoue Laboratory Eunjong Choi 1 Investigating Clone.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University How to extract.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University VerXCombo: An.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Code-Clone Detection.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Development of.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Retrieving Similar Code Fragments based on Identifier.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 1 Towards an Assessment of the Quality of Refactoring.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Assertion with.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 1 Towards an Investigation of Opportunities for Refactoring.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Finding Code Clones.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Code Clone Analysis.
1 Measuring Similarity of Large Software System Based on Source Code Correspondence Tetsuo Yamamoto*, Makoto Matsushita**, Toshihiro Kamiya***, Katsuro.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University An Empirical Study of Out-dated Third-party Code.
Experience of Finding Inconsistently-Changed Bugs in Code Clones of Mobile Software Katsuro Inoue†, Yoshiki Higo†, Norihiro Yoshida†, Eunjong Choi†, Shinji.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Classification.
Version Control System
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
What kind of and how clones are refactored? A case study of three OSS projects WRT2012 June 1, Eunjong Choi†, Norihiro Yoshida‡, Katsuro Inoue†
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Towards a Collection of Refactoring Patterns Based.
1 Gemini: Code Clone Analysis Tool †Graduate School of Engineering Science, Osaka Univ., Japan ‡ Graduate School of Information Science and Technology,
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Detection of License Inconsistencies in Free and.
Estimating Code Size After a Complete Code-Clone Merge Buford Edwards III, Yuhao Wu, Makoto Matsushita, Katsuro Inoue 1 Graduate School of Information.
VEnron A Versioned Spreadsheet Corpus and Related Evolution Analysis
Version Control.
Do Developers Focus on Severe Code Smells?
Empirical Project Monitor and Results from 100 OSS Development Projects Masao Ohira Empirical Software Engineering Research Laboratory, Nara Institute.
Ruru Yue1, Na Meng2, Qianxiang Wang1 1Peking University 2Virginia Tech
Yuta Nakamura1, Eunjong Choi1, Norihiro Yoshida2,
○Yuichi Semura1, Norihiro Yoshida2, Eunjong Choi3, Katsuro Inoue1
: Clone Refactoring Davood Mazinanian Nikolaos Tsantalis Raphael Stein
Boris Todorov1, Raula Gaikovina Kula2, Takashi Ishio2, Katsuro Inoue1
Predicting Fault-Prone Modules Based on Metrics Transitions
Quaid-i-Azam University
Subversion Basics Guide
Yuhao Wu1, Yuki Manabe2, Daniel M. German3, Katsuro Inoue1
On Refactoring Support Based on Code Clone Dependency Relation
Kazuki Yokoi1 Eunjong Choi2 Norihiro Yoshida3 Katsuro Inoue1
Where Does This Code Come from and Where Does It Go?
Research Activities of Software Engineering Lab in Osaka University
Dotri Quoc†, Kazuo Kobori†, Norihiro Yoshida
Presentation transcript:

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Application of Clone Change Management System Yuki Yamanaka 1, Eunjong Choi 1, Norihiro Yoshida 2, Katsuro Inoue 1, Tateki Sano 3 1 Osaka University, Japan 2 Nara Institute of Science and Technology, Japan 3 NEC Corporation, Japan 1

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Maintaining Code Clones Consistent modification –Modifying clone set † consistently Refactoring –Merging clone set into a single program Unit 2 merge call † Clone set: a set of code clones identical or similar to each other modify

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Experience of Clone Change Management Related work –Juergens et al. reported inconsistent clones in the industrial developments [1]. Our motivation –Industrial experience of clone change management for refactoring support has NOT been reported. –A development team in NEC needs the daily reporting system to notify developers clone change information. 3 [1] E. Juergens, F. Deissenboeck, B. Hummel and S. Wagner,“Do Code Clones Matter?,” Proc. International Conference on Software Engineering, pp , 2009.

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Overview of Our Study 4 Investigate the usefulness of clone change management for refactoring support in NEC –Develop a clone change management system according to the opinions of developers –Apply the system to actual development process

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Overview of Clone Change Management System Developer Version Control System Commit source code Checkout source code Report change information notification Web-based UI Clone Change Management System Categorize clone sets 5 According to opinions of developer

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Categorization of Clone Set Step1: Detect code clones Step2: Trace code clones Step3: Categorize code clones Step4: Categorize clone sets 6

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Step1: Detect Code Clones 7 Apply CCFinder [2] into two versions New Version Old Version [2] T. Kamiya, S. Kusumoto, and K. Inoue, “CCFinder: A multilinguistic token-based code clone detection system for large scale source code”, IEEE Transactions on Software Engineering, 28(7): , 2002.

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Trace code clones based on correspondence between start and end points of code fragments Step2: Trace Code Clones New Version Old Version Correspond 8

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Step3: Categorize Code Clones Old Version 9 Categorize code clones based on evolution patterns of them New Version Old Version New Version Old Version

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Step3: Categorize Code Clones Old Version 10 Categorize code clones based on evolution patterns of them New Version Old Version New Version Old Version Not modified Stable

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Step3: Categorize Code Clones Old Version 11 Categorize code clones based on evolution patterns of them New Version Old Version New Version Old Version Not modified Stable Added

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Step3: Categorize Code Clones Old Version 12 Categorize code clones based on evolution patterns of them New Version Old Version New Version Old Version Not modified Stable Added Modified

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University New Version Old Version 13 Not modified Stable Categorize code clones based on evolution patterns of them Modified Added Deleted Step3: Categorize Code Clones

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Step4: Categorize Clone Set (1/2) Stable Clone Set –Share only stable clones between two versions New Clone Set –Share only added clones between two versions 14 copy & paste Added

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Deleted Clone Set –Share only deleted clones between two versions Changed Clone Set –Share modified, added and deleted clones between two versions 15 Step4: Categorize Clone Set (2/2) modify Modified Stable 15 merge Deleted

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 16 Example of Web-based UI Clone Set List Page Users can confirm change information of code clones Source File Page

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Case Study (1/2) Apply to development process in NEC Have the questionnaire and get feedback from a developer in NEC 17 Clone Change Management System Daily Report Questionnaire Feedback DeveloperAuthors

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Case Study (2/2) Term –December 19, January 31, 2012 ( 40days ) Project – Java development – 6 programmers –120KLOC, 350files Target of questionnaire –A project manager –10 years of development experiences of Java 18

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Questionnaire 19 Using the system, did developer notice any clone sets that need further maintenance? Question1 How is developer going to maintain the clone sets? Question2

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Using the system, did developer notice any clone sets that need further maintenance? Answer to Question1 Yes, developer could notice 11 clone sets. Answer 20 Question1

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Answer to Question 2 21 Date CategoryQ.2 1Dec. 28, 2011NewRefactoring 2Dec. 28, 2011NewRefactoring 3Jan. 13, 2012NewRefactoring 4Jan. 13, 2012NewComment 5Jan. 13, 2012NewRefactoring 6Jan. 13, 2012NewRefactoring 7Jan. 13, 2012NewRefactoring 8Jan. 16, 2012NewRefactoring 9Jan. 16, 2012NewRefactoring 10Jan. 18, 2012NewRefactoring 11Jan. 24, 2012NewRefactoring How is developer going to maintain the clone sets? Question2

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Answer to Question 2 22 Date CategoryQ.2 1Dec. 28, 2011NewRefactoring 2Dec. 28, 2011NewRefactoring 3Jan. 13, 2012NewRefactoring 4Jan. 13, 2012NewComment 5Jan. 13, 2012NewRefactoring 6Jan. 13, 2012NewRefactoring 7Jan. 13, 2012NewRefactoring 8Jan. 16, 2012NewRefactoring 9Jan. 16, 2012NewRefactoring 10Jan. 18, 2012NewRefactoring 11Jan. 24, 2012NewRefactoring All targets are New clone sets! How is developer going to maintain the clone sets? Question2

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Answer to Question 2 23 Date CategoryQ.2 1Dec. 28, 2011NewRefactoring 2Dec. 28, 2011NewRefactoring 3Jan. 13, 2012NewRefactoring 4Jan. 13, 2012NewComment 5Jan. 13, 2012NewRefactoring 6Jan. 13, 2012NewRefactoring 7Jan. 13, 2012NewRefactoring 8Jan. 16, 2012NewRefactoring 9Jan. 16, 2012NewRefactoring 10Jan. 18, 2012NewRefactoring 11Jan. 24, 2012NewRefactoring Almost of targets needed refactoring! How is developer going to maintain the clone sets? Question2

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Answer to Question 2 24 Date CategoryQ.2 1Dec. 28, 2011NewRefactoring 2Dec. 28, 2011NewRefactoring 3Jan. 13, 2012NewRefactoring 4Jan. 13, 2012NewComment 5Jan. 13, 2012NewRefactoring 6Jan. 13, 2012NewRefactoring 7Jan. 13, 2012NewRefactoring 8Jan. 16, 2012NewRefactoring 9Jan. 16, 2012NewRefactoring 10Jan. 18, 2012NewRefactoring 11Jan. 24, 2012NewRefactoring Add comment on the location of code clones in source code How is developer going to maintain the clone sets? Question2

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Result of Case Study We confirmed the usefulness of clone change management system. –This system is still used in NEC. Clone change management is useful for developer to notice targets of refactoring in NEC. –11 useful clone sets were found during 40 days. Need refactoring: 10 clone sets Need comment: 1 clone sets 25

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Summary and Future work Summary –Developed a clone change management system based on opinions of industrial developers in NEC –Confirmed the usefulness of clone change management system by applying to the development in NEC Future work –Get more feedbacks from the developers –Improve the system based on the feedbacks 26

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Thank you! 27