An Initial Step Towards Organ Transplantation Based on GitHub Repository

10/11/2018
by   Shangwen Wang, et al.
0

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 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 lowest one still passing 80 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.

READ FULL TEXT
research
03/20/2023

Method Chaining Redux: An Empirical Study of Method Chaining in Java, Kotlin, and Python

There are possible benefits and drawbacks to chaining methods together, ...
research
11/09/2021

An Empirical Study of Automated Unit Test Generation for Python

Various mature automated test generation tools exist for statically type...
research
09/02/2020

Java Cryptography Uses in the Wild

[Background] Previous research has shown that developers commonly misuse...
research
02/25/2021

What's in a GitHub Repository? – A Software Documentation Perspective

Developers use and contribute to repositories on GitHub. Documentation p...
research
07/20/2020

Jupyter Notebooks on GitHub: Characteristics and Code Clones

Jupyter notebooks have emerged as a standard tool for data science progr...
research
02/12/2021

Same File, Different Changes: The Potential of Meta-Maintenance on GitHub

Online collaboration platforms such as GitHub have provided software dev...
research
06/20/2023

Outside the Sandbox: A Study of Input/Output Methods in Java

Programming languages often demarcate the internal sandbox, consisting o...

Please sign up or login with your details

Forgot password? Click here to reset