IEEE Access (Jan 2019)
Dissection on Java Organs in GitHub Repositories
Abstract
Organ transplantation has brought convenience for software reuse and evolution since it was proposed. However, studies about mature, high-quality organs are still insufficient. It is still unclear about the detailed characteristics of organs in the open-source environment. In this paper, we look deep into organs obtained from software evolution processes of the ten large-scale Java repositories hosted on GitHub, aiming at providing practical information for utilizing organs in the open-source environment. We found that: 1) commits use add as a keyword in their comments possess the most organs, occupying 38% of the total amount, but commits with the keyword fix possess the highest locating accuracy (about 57%); 2) developers prefer to add new classes when they bring new functionalities to the projects in that the proportion of class level organs is 40%, more than statement level organs' and function level organs' (35% and 25%, respectively); 3) nearly 70% of the total amount are cross-file organs with the median of the number of files each organ spans reaching three and the average of this value being around four; 4) a small number (0.55%) of organs are multi-commit; 5) more than 40% of code reuse in the open-source software can be finished by organ transplantation. Based on our findings, we highlight implications for future studies and design the mode of using organs to conduct code reuse.
Keywords