industrial application of clone change management system
DESCRIPTION
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. Maintaining Code Clones. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/1.jpg)
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
1
Industrial Application of Clone Change Management System
Yuki Yamanaka1, Eunjong Choi1, Norihiro Yoshida2, Katsuro Inoue1, Tateki Sano3
1 Osaka University, Japan 2 Nara Institute of Science and Technology, Japan
3 NEC Corporation, Japan
![Page 2: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/2.jpg)
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
mergecall
† Clone set: a set of code clones identical or similar to each other
modifymodify
![Page 3: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/3.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
3
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.
[1] E. Juergens, F. Deissenboeck, B. Hummel and S. Wagner,“Do Code Clones Matter?,” Proc. International Conference on Software Engineering, pp.485-495, 2009.
![Page 4: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/4.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
4
Overview of Our Study
• 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
![Page 5: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/5.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
5
Overview of Clone Change Management System
Developer
Version Control System
Commit source code
Checkoutsource code
Report change information• E-mail notification• Web-based UI
Clone Change Management System
Categorize clone sets
According to opinions of developer
![Page 6: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/6.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
Categorization of Clone Set
Step1: Detect code clonesStep2: Trace code clones Step3: Categorize code clones Step4: Categorize clone sets
6
![Page 7: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/7.jpg)
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 VersionOld 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):654-670, 2002.
![Page 8: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/8.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
8
Trace code clones based on correspondence between start and end points of code fragments
Step2: Trace Code Clones
New VersionOld Version
Correspond
Correspond
![Page 9: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/9.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
9
Step3: Categorize Code Clones
Old Version
Categorize code clones based on evolution patterns of them
New VersionOld Version New VersionOld Version
![Page 10: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/10.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
10
Step3: Categorize Code Clones
Old Version
Categorize code clones based on evolution patterns of them
New VersionOld Version New VersionOld Version
Not modifiedStable Stable
![Page 11: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/11.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
11
Step3: Categorize Code Clones
Old Version
Categorize code clones based on evolution patterns of them
New VersionOld Version New VersionOld Version
Not modifiedStable Stable
AddedAdded
![Page 12: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/12.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
12
Step3: Categorize Code Clones
Old Version
Categorize code clones based on evolution patterns of them
New VersionOld Version New VersionOld Version
Not modifiedStable Stable
AddedAdded
ModifiedModified Modified
![Page 13: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/13.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
13New VersionOld Version
Not modifiedStable Stable
Categorize code clones based on evolution patterns of them
ModifiedModified Modified
AddedAdded
DeletedDeleted
Step3: Categorize Code Clones
![Page 14: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/14.jpg)
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
Added
![Page 15: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/15.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
15
• Deleted Clone Set– Share only deleted clones between two versions
• Changed Clone Set– Share modified, added and deleted clones between two versions
Step4: Categorize Clone Set (2/2)
modifyModified Modified
StableStable 15
mergeDeleted
Deleted
![Page 16: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/16.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
16
Example of Web-based UIClone Set List Page
Users can confirm change information of code clones
Source File Page
![Page 17: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/17.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
17
Industrial Case Study (1/2)
• Apply to development process in NEC• Have the questionnaire and get feedback from a
developer in NEC
Clone Change Management System
Daily ReportQuestionnaire
FeedbackDeveloper Authors
![Page 18: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/18.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
18
Industrial Case Study (2/2)
• Term– December 19, 2011 - January 31, 2012 ( 40days )
• Project– Java development– 6 programmers– 120KLOC, 350files
• Target of questionnaire– A project manager– 10 years of development experiences of Java
![Page 19: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/19.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
19
Questionnaire
Using the system, did developer notice any clone sets that need further maintenance?
Question1
How is developer going to maintain the clone sets?Question2
![Page 20: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/20.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
20
Using the system, did developer notice any clone sets that need further maintenance?
Answer to Question1
Yes, developer could notice 11 clone sets. Answer
Question1
![Page 21: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/21.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
21
Answer to Question 2
Date Category Q.21 Dec. 28, 2011 New Refactoring2 Dec. 28, 2011 New Refactoring3 Jan. 13, 2012 New Refactoring4 Jan. 13, 2012 New Comment5 Jan. 13, 2012 New Refactoring6 Jan. 13, 2012 New Refactoring7 Jan. 13, 2012 New Refactoring8 Jan. 16, 2012 New Refactoring9 Jan. 16, 2012 New Refactoring
10 Jan. 18, 2012 New Refactoring11 Jan. 24, 2012 New Refactoring
How is developer going to maintain the clone sets?
Question2
![Page 22: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/22.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
22
Answer to Question 2
Date Category Q.21 Dec. 28, 2011 New Refactoring2 Dec. 28, 2011 New Refactoring3 Jan. 13, 2012 New Refactoring4 Jan. 13, 2012 New Comment5 Jan. 13, 2012 New Refactoring6 Jan. 13, 2012 New Refactoring7 Jan. 13, 2012 New Refactoring8 Jan. 16, 2012 New Refactoring9 Jan. 16, 2012 New Refactoring
10 Jan. 18, 2012 New Refactoring11 Jan. 24, 2012 New Refactoring
All targets are New clone sets!
How is developer going to maintain the clone sets?
Question2
![Page 23: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/23.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
23
Answer to Question 2
Date Category Q.21 Dec. 28, 2011 New Refactoring2 Dec. 28, 2011 New Refactoring3 Jan. 13, 2012 New Refactoring4 Jan. 13, 2012 New Comment5 Jan. 13, 2012 New Refactoring6 Jan. 13, 2012 New Refactoring7 Jan. 13, 2012 New Refactoring8 Jan. 16, 2012 New Refactoring9 Jan. 16, 2012 New Refactoring
10 Jan. 18, 2012 New Refactoring11 Jan. 24, 2012 New Refactoring
Almost of targets needed refactoring!
How is developer going to maintain the clone sets?
Question2
![Page 24: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/24.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
24
Answer to Question 2
Date Category Q.21 Dec. 28, 2011 New Refactoring2 Dec. 28, 2011 New Refactoring3 Jan. 13, 2012 New Refactoring4 Jan. 13, 2012 New Comment5 Jan. 13, 2012 New Refactoring6 Jan. 13, 2012 New Refactoring7 Jan. 13, 2012 New Refactoring8 Jan. 16, 2012 New Refactoring9 Jan. 16, 2012 New Refactoring
10 Jan. 18, 2012 New Refactoring11 Jan. 24, 2012 New Refactoring
Add comment on the location of code clones in source code
How is developer going to maintain the clone sets?
Question2
![Page 25: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/25.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
25
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
![Page 26: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/26.jpg)
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
26
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
![Page 27: Industrial Application of Clone Change Management System](https://reader036.vdocuments.us/reader036/viewer/2022070422/56816390550346895dd48537/html5/thumbnails/27.jpg)
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
27
Thank you!