Write a Blog >>
ESEC/FSE 2022
Mon 14 - Fri 18 November 2022 Singapore
Wed 16 Nov 2022 11:45 - 12:00 at SRC GLR - JF Software Evolution Chair(s): Danny Dig

Software bloat is code that is packaged in an application but is actually not necessary to run the application. The presence of software bloat is an issue for security, for performance, and for maintenance. In this paper, we introduce a novel technique for debloating, which we call coverage-based debloating. We implement the technique for one single language: Java bytecode. We leverage a combination of state-of-the-art Java bytecode coverage tools to precisely capture what parts of a project and its dependencies are used when running with a specific workload. Then, we automatically remove the parts that are not covered to generate a debloated version of the project. We succeed to debloat 211 library versions from a dataset of 94 unique open-source Java libraries. The debloated versions are syntactically correct and preserve their original behavior according to the workload. Our results indicate that 68.3% of the libraries’ bytecode and 20.3% of their total dependencies can be removed through coverage-based debloating.

For the first time in the literature on software debloating, we assess the utility of debloated libraries with respect to client applications that reuse them. We select 988 client projects that either have a direct reference to the debloated library in their source code or which test suite covers at least one class of the libraries that we debloat. Our results show that 81.5% of the clients with at least one test that uses the library successfully compile and pass their test suite when the original library is replaced by its debloated version.

Wed 16 Nov

Displayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change

11:00 - 12:30
JF Software EvolutionJournal First at SRC GLR
Chair(s): Danny Dig University of Colorado Boulder, USA
11:00
15m
Talk
Clones in Deep Learning Code: What, Where, and Why?
Journal First
Hadhemi Jebnoun Ecole Polytechnique de Montréal, Md Saidur Rahman SWAT Lab, Polytechnique Montreal, Foutse Khomh Polytechnique Montréal, Biruk Asmare Muse Ecole Polytechnique de Montréal
11:15
15m
Talk
Aide-mémoire: Improving a Project’s Collective Memory via Pull Request–Issue Links
Journal First
Profir-Petru Pârțachi National Institute of Informatics, Japan, David White , Earl T. Barr University College London
DOI Pre-print
11:30
15m
Talk
Learning How to Listen: Automatically Finding Bug Patterns in Event-Driven JavaScript APIs
Journal First
Ellen Arteca Northeastern University, Max Schaefer GitHub, Inc., Frank Tip Northeastern University
Link to publication DOI Pre-print Media Attached
11:45
15m
Talk
Coverage-Based Debloating for Java Bytecode
Journal First
César Soto-Valero KTH, Thomas Durieux KTH, Nicolas Harrand KTH Royal Institute of Technology, Benoit Baudry KTH
Link to publication DOI Pre-print Media Attached
12:00
15m
Talk
Characterizing and Mitigating Self-Admitted Technical Debt in Build Systems
Journal First
Tao Xiao Nara Institute of Science and Technology, Dong Wang Kyushu University, Japan, Shane McIntosh University of Waterloo, Hideaki Hata Shinshu University, Raula Gaikovina Kula Nara Institute of Science and Technology, Takashi Ishio Nara Institute of Science and Technology, Kenichi Matsumoto Nara Institute of Science and Technology
Link to publication DOI Pre-print Media Attached
12:15
15m
Talk
An empirical study of type-related defects in Python projects
Journal First
Faizan Khan McGill University, Boqi Chen McGill University, Daniel Varro McGill University / Budapest University of Technology and Economics, Shane McIntosh University of Waterloo