A Soundness and Precision Benchmark for Java Debloating Tools - Klauke, Jonas; Ohlmer, Tom; Schott, Stefan; Ponta, Serena Elisa; Fischer, Wolfram; Bodden, Eric (Proceedings of the 2025 Workshop on Software Supply Chain Offensive Research and Ecosystem Defenses)
Modern software development reuses code by importing libraries as dependencies. Software projects typically include an average of 36 dependencies, with 80% being transitive, meaning they are dependencies of dependencies. Recent research indicates that only 24.9% of these dependencies are required at runtime, and even within those, many program constructs remain unused, adding unnecessary code to the project. This has led to the development of debloating tools that remove unnecessary dependencies and program constructs while balancing precision by eliminating unused constructs and soundness by preserving all required constructs. To systematically evaluate this trade-off, we developed Deblometer, a micro-benchmark consisting of 59 test cases designed to assess support for various Java language features in debloating tools. Each test case includes a manually curated ground truth specifying necessary and bloated classes, methods, and fields, enabling precise measurement of soundness and precision. Using Deblometer, we evaluated three popular Java debloating tools: Deptrim, JShrink, and ProGuard. Our evaluation reveals that all tools remove required program constructs, which results in changed semantics or execution crashes. In particular, the dynamic class loading feature introduces unsoundness in all evaluated tools. Our comparison shows that Deptrim retains more bloated constructs, while ProGuard removes more required constructs. JShrink’s soundness is significantly affected by limited support for annotations, which leads to corrupted debloated artifacts. These soundness issues highlight the need to improve debloating tools to ensure stable and reliable debloated software.

SootUp: A Redesign of the Soot Static Analysis Framework - Karakaya, Kadiray; Schott, Stefan; Klauke, Jonas; Bodden, Eric; Schmidt, Markus; Luo, Linghui; He, Dongjie (Tools and Algorithms for the Construction and Analysis of Systems)
Abstract Since its inception two decades ago, Soot has become one of the most widely used open-source static analysis frameworks. Over time it has been extended with the contributions of countless researchers. Yet, at the same time, the requirements for Soot have changed over the years and become increasingly at odds with some of the major design decisions that underlie it. In this work, we thus present SootUp , a complete reimplementation of Soot that seeks to fulfill these requirements with a novel design, while at the same time keeping elements that Soot users have grown accustomed to.

Java Bytecode Normalization for Code Similarity Analysis - Schott, Stefan; Ponta, Serena Elisa; Fischer, Wolfram; Klauke, Jonas; Bodden, Eric (38th European Conference on Object-Oriented Programming (ECOOP 2024))

Compilation of Commit Changes Within Java Source Code Repositories - Schott, Stefan; Fischer, Wolfram; Ponta, Serena Elisa; Klauke, Jonas; Bodden, Eric (2024 IEEE International Conference on Software Maintenance and Evolution (ICSME))

Compilation of Commit Changes Within Java Source Code Repositories - Schott, Stefan; Fischer, Wolfram; Ponta, Serena Elisa; Klauke, Jonas; Bodden, Eric (2024 IEEE International Conference on Software Maintenance and Evolution (ICSME))

Are Neural Bug Detectors Comparable to Software Developers on Variable Misuse Bugs? - Richter, Cedric; Haltermann, Jan Frederik; Jakobs, Marie-Christine; Pauck, Felix; Schott, Stefan; Wehrheim, Heike (37th IEEE/ACM International Conference on Automated Software Engineering)

Benchmark Fuzzing for Android Taint Analyses - Schott, Stefan; Pauck, Felix (2022 IEEE 22nd International Working Conference on Source Code Analysis and Manipulation (SCAM))

Android App Analysis Benchmark Case Generation - Schott, Stefan