Write a Blog >>
Tue 10 Nov 2020 08:35 - 08:36 at Virtual room 2 - Developer Support 1

As a mixed result of intensive dependency on third-party libraries, flexible mechanisms to declare dependencies and increased number of modules in a project, different modules of a project directly depend on multiple versions of the same third-party library. Such library version inconsistencies could increase dependency maintenance cost, or even lead to dependency conflicts when modules are inter-dependent. Although automated build tools (e.g., Maven's enforcer plugin) provide partial support to detect library version inconsistencies, they do not provide any support to harmonize inconsistent library versions.

We first conduct a survey with 131 Java developers from GitHub to retrieve first-hand information about the root causes, detection methods, reasons for fixing or not fixing, fixing strategies, fixing efforts, and tool expectations on library version inconsistencies. Then, based on the insights from our survey, we propose LibHarmo, an interactive, effort-aware library version harmonization technique, to detect library version inconsistencies, interactively suggest a harmonized version with the least harmonization efforts based on library API usage analysis, and refactor build configuration files.

LibHarmo is currently developed for Java Maven projects. Our experimental study on 443 highly-starred Java Maven projects from GitHub shows that i) LibHarmo detected 621 library version inconsistencies in 152 (34.3%) projects with a false positive rate of 16.8%, while Maven's enforcer plugin only detected 219 of them; and ii) LibHarmo saved 87.5% of the harmonization efforts. Further, 31 library version inconsistencies have been confirmed, and 17 of them have been already harmonized by developers.

Tue 10 Nov
Times are displayed in time zone: (UTC) Coordinated Universal Time change

08:30 - 09:00: Developer Support 1Paper Presentations / Tool Demos / Research Papers at Virtual room 2
08:30 - 08:32
Talk
DiffTech: A Tool for Differencing Similar Technologies from Question-and-Answer Discussions
Tool Demos
Han Wang, Chunyang ChenMonash University, Australia, Zhenchang XingAustralian National University, Australia, John GrundyMonash University, Australia
DOI
08:33 - 08:34
Talk
Enhancing Developer Interactions with Programming Screencasts through Accurate Code Extraction
Tool Demos
Lingfeng Bao Zhejiang University, Shengyi PanZhejiang University of Technology, China, Zhenchang XingAustralian National University, Australia, Xin XiaMonash University, David LoSingapore Management University, Xiaohu YangZhejiang University, China
DOI
08:35 - 08:36
Talk
Interactive, Effort-Aware Library Version Harmonization
Research Papers
Kaifeng HuangFudan University, China, Bihuan ChenFudan University, China, Bowen ShiFudan University, China, Ying WangFudan University, China, Congying XuFudan University, China, Xin PengFudan University, China
DOI
08:37 - 08:38
Talk
JITO: A Tool for Just-in-Time Defect Identification and Localization
Tool Demos
Fangcheng QiuZhejiang University, China, Meng YanChongqing University, Xin XiaMonash University, Xinyu WangZhejiang University, Yuanrui FanZhejiang University, Ahmed E. HassanQueen's University, David LoSingapore Management University
DOI
08:39 - 08:40
Talk
Reusing Software Engineering Knowledge from Developer Communication
Paper Presentations
Camila Mariane Costa SilvaUniversity of Canterbury
08:41 - 09:00
Talk
Conversations on Developer Support 1
Paper Presentations
Camila Mariane Costa SilvaUniversity of Canterbury, Fangcheng QiuZhejiang University, China, Han Wang, Kaifeng HuangFudan University, China, Shengyi PanZhejiang University of Technology, China, M: Ayushi RastogiDelft University of Technology, Netherlands