Evolution Of Type-1 Clones - Pdfs.semanticscholar

Transcription

Evolution of Type-1 ClonesNils GödeUniversity of BremenSCAM’099th IEEE International Working Conferenceon Source Code Analysis and ManipulationSeptember 20th 2009

Software ClonesNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20092 / 12

Software ClonesString nameParts[] author[1].split(" ");int i 0;for (i 0; i nameParts.length; i ) {c nameParts[i].charAt(0);sb.append(c ".");}Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20092 / 12

Software ClonesString nameParts[] author[1].split(" ");int i 0;for (i 0; i nameParts.length; i ) {c nameParts[i].charAt(0);sb.append(c ".");}Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20092 / 12

Software ClonesString nameParts[] author[1].split(" ");int i 0;for (i 0; i nameParts.length; i ) {c nameParts[i].charAt(0);sb.append(c ".");}Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20092 / 12

Software ClonesString nameParts[] author[1].split(" ");int i 0;for (i 0; i nameParts.length; i ) {c nameParts[i].charAt(0);sb.append(c ".");}Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20092 / 12

Why Another Evolution Model?IOvercome limitation to predefined patternsNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20093 / 12

Why Another Evolution Model?IOvercome limitation to predefined patternsIMap fragments instead of classesNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20093 / 12

Why Another Evolution Model?IOvercome limitation to predefined patternsIMap fragments instead of classesIReduce computational effortNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20093 / 12

Clone Evolution ModelVersion1Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20094 / 12

Clone Evolution ModelVersion123.nNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20094 / 12

Clone Evolution ModelVersion123.nNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20094 / 12

Clone Evolution ModelVersion123.nNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20094 / 12

Why More Case Studies?Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20095 / 12

Why More Case Studies?IControversial resultsNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20095 / 12

Why More Case Studies?IControversial resultsIResults contradict our experienceNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20095 / 12

Why More Case Studies?IControversial resultsIResults contradict our experienceILimited diversity of subject systemsNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20095 / 12

Why More Case Studies?IControversial resultsIResults contradict our experienceILimited diversity of subject systemsOur case studies covered. . .Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20095 / 12

Why More Case Studies?IControversial resultsIResults contradict our experienceILimited diversity of subject systemsOur case studies covered. . . 9 subject systemsNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20095 / 12

Why More Case Studies?IControversial resultsIResults contradict our experienceILimited diversity of subject systemsOur case studies covered. . . 9 subject systems 200 versions each ( 4 years)Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20095 / 12

Why More Case Studies?IControversial resultsIResults contradict our experienceILimited diversity of subject systemsOur case studies covered. . . 9 subject systems 200 versions each ( 4 years) 3 programming languages (C , Java, C)Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20095 / 12

Clone RatioVersion123.nNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20096 / 12

Clone Ratio“[. . . ] the overall ratio of function clones remains stable [. . . ]”[Laguë et al., 1997]Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20097 / 12

Clone Ratio“[. . . ] the overall ratio of function clones remains stable [. . . ]”[Laguë et al., 1997]“[. . . ] the CP% remains relatively stable over the several recent versions [. . . ]”[Li et al., 2006]Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20097 / 12

Clone Ratio“[. . . ] the overall ratio of function clones remains stable [. . . ]”[Laguë et al., 1997]“[. . . ] the CP% remains relatively stable over the several recent versions [. . . ]”[Li et al., 2006]“[. . . ] the number of code clones [. . . ] is somewhat proportional to the size [. . . ]”[Livieri et al., 2007]Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20097 / 12

Clone Ratio“[. . . ] the overall ratio of function clones remains stable [. . . ]”[Laguë et al., 1997]“[. . . ] the CP% remains relatively stable over the several recent versions [. . . ]”[Li et al., 2006]“[. . . ] the number of code clones [. . . ] is somewhat proportional to the size [. . . ]”[Livieri et al., utilusGIMPDecreaseIncrease30%20%Nils Göde (University of Bremen)10%0%10%Evolution of Type-1 Clones20%30%September 20th 20097 / 12

Mean Fragment LifetimeVersion123.nNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20098 / 12

Mean Fragment Lifetime“[. . . ] a large number of clones were volatile.”[Kim et al., 2005]Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 20099 / 12

Mean Fragment Lifetime“[. . . ] a large number of clones were volatile.”[Kim et al., shttpdGIMP0Nils Göde (University of Bremen)12Evolution of Type-1 ClonesYearsSeptember 20th 20099 / 12

Inconsistent ChangesVersion123.nNils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 200910 / 12

Inconsistent Changes“[. . . ] the majority of clone classes is always maintained consistently.”[Aversano et al., 2007]Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 200911 / 12

Inconsistent Changes“[. . . ] the majority of clone classes is always maintained consistently.”[Aversano et al., 2007]“[. . . ] clone groups are consistently changed in roughly half of the time [. . . ]”[Krinke, 2007]Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 200911 / 12

Inconsistent Changes“[. . . ] the majority of clone classes is always maintained consistently.”[Aversano et al., 2007]“[. . . ] clone groups are consistently changed in roughly half of the time [. . . ]”[Krinke, MPNautilusConsistentInconsistent20%30%Nils Göde (University of Bremen)40%50%60%Evolution of Type-1 Clones70%80%September 20th 200911 / 12

“The harmfulness of clones cannot be judged withoutconsidering their evolution.”Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 200912 / 12

L. Aversano, L. Cerulo, and M. Di Penta. How clones are maintained: An empirical study. InProceedings of the 11th European Conference on Software Maintenance and Reengineering,pages 81–90. IEEE Computer Society, 2007.M. Kim, V. Sazawal, D. Notkin, and G. C. Murphy. An empirical study of code clonegenealogies. In Proceedings of the Joint 10th European Software Engineering Conference andthe 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages187–196. ACM, 2005.J. Krinke. A study of consistent and inconsistent changes to code clones. In Proceedings of the14th Working Conference on Reverse Engineering, pages 170–178. IEEE Computer Society,2007.B. Laguë, D. Proulx, J. Mayrand, E. Merlo, and J. Hudepohl. Assessing the benefits ofincorporating function clone detection in a development process. In Proceedings of theInternational Conference on Software Maintenance, pages 314–321. IEEE Computer Society,1997.Z. Li, S. Lu, S. Myagmar, and Y. Zhou. CP-Miner: Finding copy-paste and related bugs inlarge-scale software code. IEEE Transactions on Software Engineering, 32(3):176–192, 2006.S. Livieri, Y. Higo, M. Matsushita, and K. Inoue. Analysis of the linux kernel evolution usingcode clone coverage. In Proceedings of the 4th International Workshop on Mining SoftwareRepositories, pages 22–25. IEEE Computer Society, 2007.Nils Göde (University of Bremen)Evolution of Type-1 ClonesSeptember 20th 200912 / 12

Evolution of Type-1 Clones Nils Gode University of Bremen SCAM'09 9th IEEE International Working Conference on Source Code Analysis and Manipulation . !3 programming languages (C ,Java,C) Nils G ode (University of Bremen) Evolution of Type-1 Clones September 20th 2009 5 / 12. Clone Ratio 1 Version 2