To content
Fakultät für Informatik
Master-Thesis

Improvement of an Existing Approach to JVM Debloating

Context 

Our group has developed an approach and tool to debloat Maven-based Java project dependencies based on precise abstract interpretation. It already exceeds the state-of-the-art in all cases inspected and is currently prepared for publication.  However, we still depend on a previous version of the static analysis framework we use. This might open the possibility to perform even better on the existing benchmarks. 

Goal 

In this thesis project the existing tool needs to be migrated to the most recent version of the framework first. Using the existing benchmarks a regression test should then be performed to see if the precision of the approach degraded. As the new framework has newer and possibly more precise options it can then be explored which changes need to be made to the analysis in the existing tool to exceed the established baseline. 

The existing benchmark can then be extended to allow for deeper experiments with the approach or to include more of the previous approaches. 

Students need to be comfortable (or willing to learn to work) with Scala code as the existing tool as well as the framework is implemented in Scala. 

Research Question

  1. How does the updated framework influence the precision of the approach which manifests in the debloating coefficient while maintaining the ability to still run applications?
  2. Can improved algorithms and configurations reach even better debloating coefficients? 

Related Work

  • Michael Eichberg and Ben Hermann. 2014. A software product line for static analyses: the OPAL framework. In Proceedings of the 3rd ACM SIGPLAN International Workshop on the State of the Art in Java Program Analysis (SOAP '14). Association for Computing Machinery, New York, NY, USA, 1–6. DOI:https://doi.org/10.1145/2614628.2614630
  • Dominik Helm, Florian Kübler, Michael Reif, Michael Eichberg, and Mira Mezini. 2020. Modular collaborative program analysis in OPAL. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2020). Association for Computing Machinery, New York, NY, USA, 184–196. DOI:https://doi.org/10.1145/3368089.3409765
  • Bobby R. Bruce, Tianyi Zhang, Jaspreet Arora, Guoqing Harry Xu, and Miryung Kim. 2020. JShrink: in-depth investigation into debloating modern Java applications. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2020). Association for Computing Machinery, New York, NY, USA, 135–146. DOI:https://doi.org/10.1145/3368089.3409738
  • Paper draft for our own approach (available upon request)
  • Christian Gram Kalhauge and Jens Palsberg. 2021. Logical bytecode reduction. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2021). Association for Computing Machinery, New York, NY, USA, 1003–1016. DOI:https://doi.org/10.1145/3453483.3454091
  • César Soto-Valero, Thomas Durieux, and Benoit Baudry. 2021. A longitudinal analysis of bloated Java dependencies. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2021). Association for Computing Machinery, New York, NY, USA, 1021–1031. DOI:https://doi.org/10.1145/3468264.3468589