Source code reuse evaluation by using real/potential copy and paste

Developers often reuse existing software by copy and paste. Source code reuse improves productivity and software quality. On the other hand, source code reuse requires several professional skills to developers. In source code reuse, developers must locate reusable code fragments, and judge whether such reusable code is adequate to copy and paste into the source file under development. This paper presents extraction and analysis methods for developers' source code reuse behavior (copy and paste). Our method extracts developers' actual source code reuse (real copy and paste). Then, by using a code clone detection tool, the method extracts code fragments for (potential reuse). Our study of real and potential copy and paste provides a quantitative assessment for source code reuse by developers.

[1]  Daniel Lucrédio,et al.  A survey on software reuse processes , 2005, IRI -2005 IEEE International Conference on Information Reuse and Integration, Conf, 2005..

[2]  Mario Gleirscher,et al.  On the Extent and Nature of Software Reuse in Open Source Java Projects , 2011, ICSR.

[3]  Giuliano Antoniol,et al.  Comparison and Evaluation of Clone Detection Tools , 2007, IEEE Transactions on Software Engineering.

[4]  Kam-Fai Wong,et al.  Component-based software engineering: technologies, development frameworks, and quality assurance schemes , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[5]  Brandon Dixon,et al.  A case study approach to teaching component based software engineering , 2000, Thirteenth Conference on Software Engineering Education and Training.

[6]  Anthony Finkelsteiin Software engineering education: a place in the sun? , 1994, ICSE 1994.

[7]  Matias Martinez,et al.  Do the fix ingredients already exist? an empirical inquiry into the redundancy assumptions of program repair approaches , 2014, ICSE Companion.

[8]  Yuanyuan Zhou,et al.  CP-Miner: finding copy-paste and related bugs in large-scale software code , 2006, IEEE Transactions on Software Engineering.

[9]  Munindar P. Singh,et al.  Service-Oriented Computing: Key Concepts and Principles , 2005, IEEE Internet Comput..

[10]  Kai Qian,et al.  Teaching Component-Based Software Development , 2008, 2008 21st IEEE-CS Conference on Software Engineering Education and Training Workshop.

[11]  Miryung Kim,et al.  An ethnographic study of copy and paste programming practices in OOPL , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[12]  Liqing Wang,et al.  A formal approach to component-based software engineering: education and evaluation , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[13]  Claire Le Goues,et al.  A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[14]  Yuhua Qi,et al.  The strength of random search on automated program repair , 2014, ICSE.

[15]  Yuriy Brun,et al.  The plastic surgery hypothesis , 2014, SIGSOFT FSE.

[16]  Shinji Kusumoto,et al.  Gapped code clone detection with lightweight source code analysis , 2013, 2013 21st International Conference on Program Comprehension (ICPC).

[17]  Jaejoon Lee,et al.  Teaching reuse-driven software engineering through innovative role playing , 2014, ICSE Companion.

[18]  Shinji Kusumoto,et al.  Towards an Analysis of Who Creates Clone and Who Reuses it , 2014, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..