Write a Blog >>
ICSE 2020
Wed 24 June - Thu 16 July 2020
Fri 10 Jul 2020 07:36 - 07:44 at Silla - I21-Version Control and Programming Chair(s): Sunghun Kim

Nowadays, with the rapid growth of open source software (OSS), library reuse becomes more and more popular since a large amount of third- party libraries are available to download and reuse. A deeper understanding on why developers reuse a library (i.e., replacing self-implemented code with an external library) or re-implement a library (i.e., replacing an imported external library with self-implemented code) could help researchers better understand the factors that developers are concerned with when reusing code. This understanding can then be used to improve existing libraries and API recommendation tools for researchers and practitioners, by using the developers concerns identified in this study as design criteria.

In this work, we investigated the reasons behind library reuse and re-implementation. To achieve this goal, we first crawled data from two popular sources, F-Droid and GitHub. Then, potential instances of library reuse and re-implementation were found automatically based on certain heuristics. Next, for each instance, we further manually identified whether it is valid or not. For library re-implementation, we obtained 82 instances which are distributed in 75 repositories. We then conducted two types of surveys (i.e., individual survey to corresponding developers of the validated instances and another open survey) for library reuse and re-implementation. For library reuse individual survey, we received 36 responses out of 139 contacted developers. For re-implementation individual survey, we received 13 responses out of 71 contacted developers. In addition, we received 56 responses from the open survey. Finally, we perform qualitative and quantitative analysis on the survey responses and commit logs of the validated instances.

The results suggest that library reuse occurs mainly because developers were initially unaware of the library or the library had not been introduced. Re-implementation occurs mainly because the used library method is only a small part of the library, the library dependencies are too complicated, or the library method is deprecated. Finally, based on all findings obtained from analyzing the surveys and commit messages, we provided a few suggestions to improve the current library recommendation systems: tailored recommendation according to users’ preferences, detection of external code that is similar to a part of the users’ code (to avoid duplication or re-implementation), grouping similar recommendations for developers to compare and select the one they prefer, and disrecommendation of poor-quality libraries.

Fri 10 Jul
Times are displayed in time zone: (UTC) Coordinated Universal Time change

07:00 - 08:00: I21-Version Control and ProgrammingPaper Presentations / Technical Papers / Journal First / Software Engineering in Practice at Silla
Chair(s): Sunghun KimHong Kong University of Science and Technology
07:00 - 07:12
Towards Understanding and Fixing Upstream Merge Induced Conflicts in Divergent Forks: An industrial Case StudySEIP
Software Engineering in Practice
Chungha SungUniversity of Southern California, Shuvendu LahiriMicrosoft Research, Mike KaufmanMicrosoft Corporation, Pallavi ChoudhuryMicrosoft Corporation, Chao WangUSC
07:12 - 07:20
Version Control Systems: An Information Foraging PerspectiveJ1
Journal First
Sruti Srinivasa RagavanMicrosoft Research; School of EECS, Oregon State University, Mihai CodobanMicrosoft, David PiorkowskiIBM Research AI, Danny DigUniversity of Colorado, Boulder, Margaret BurnettOregon State University
07:20 - 07:28
How different are different diff algorithms in Git?J1
Journal First
Yusuf Sulistyo NugrohoNara Institute of Science and Technology, Hideaki HataNara Institute of Science and Technology, Kenichi MatsumotoNara Institute of Science and Technology
DOI Media Attached
07:28 - 07:36
Characterizing the Usage, Evolution and Impact of Java Annotations in PracticeJ1
Journal First
Zhongxing YuKTH Royal Institute of Technology, Chenggang BaiBeihang University, Lionel Seinturier, Martin MonperrusKTH Royal Institute of Technology
07:36 - 07:44
Why Reinventing the Wheels? An Empirical Study on Library Reuse and Re-implementationJ1
Journal First
Bowen XuSingapore Management University, Le AnPolytechnique Montreal, Ferdian ThungSingapore Management University, Foutse KhomhPolytechnique Montréal, David LoSingapore Management University
07:44 - 07:56
HeteroRefactor: Refactoring for Heterogeneous Computing with FPGATechnicalArtifact Available
Technical Papers
Aishwarya SivaramanUniversity of California, Los Angeles, Jason LauUniversity of California, Los Angeles, Qian ZhangUniversity of California, Los Angeles, Muhammad Ali GulzarUniversity of California, Los Angeles, Jason CongUCLA, Miryung KimUniversity of California, Los Angeles