  Organ transplantation, which is the utilization of codes directly related to
some specific functionalities to complete ones own program, provides more
convenience for developers than traditional component reuse. However, recent
techniques are challenged with the lack of organs for transplantation. Hence,
we conduct an empirical study on extracting organs from GitHub repository to
explore transplantation based on large-scale dataset. We analyze statistics
from 12 representative GitHub projects and get the conclusion that 1) there are
abundant practical organs existing in commits with add as a key word in the
comments; 2) organs in this repository mainly possess four kinds of contents;
3) approximately 70% of the organs are easy-to-transplant. Implementing our
transplantation strategy for different kinds of organs, we manually extract 30
organs in three different programming languages, namely Java, Python, and C,
and make unit tests for them utilizing four testing tools (two for Java, one
for Python, and one for C). At last, we transplant three Java organs into a
specific platform for a performance check to verify whether they can work well
in the new system. All the 30 organs extracted by our strategy possess good
performances in unit test with the highest passing rate reaching 97% and the
lowest one still passing 80% and the three Java organs work well in the new
system, providing three new functionalities for the host. All the results
indicate the feasibility of organ transplantation based on open-source
repository, bringing new idea for code reuse.
