Zum Inhalt
Fakultät für Informatik
Masterarbeit

Verbesserung eines bestehenden Ansatzes zu JVM-Debloating

Kontext

Unsere Arbeitsgruppe hat einen Ansatz und ein Werkzeug zum Debloating von Maven-basierten Java-Projektabhängigkeiten auf der Grundlage einer präzisen abstrakten Interpretation entwickelt. Es übertrifft bereits den Stand der Technik in allen untersuchten Fällen und wird derzeit zur Veröffentlichung vorbereitet.  Allerdings sind wir noch von einer älteren Version des von uns verwendeten statischen Analyse-Frameworks abhängig. Dies könnte die Möglichkeit eröffnen, bei den bestehenden Benchmarks noch besser abzuschneiden. 

Zielsetzung 

In dieser Arbeit soll das bestehende Tool zunächst auf die neueste Version des Frameworks migriert werden. Anhand der bestehenden Benchmarks sollte dann ein Regressionstest durchgeführt werden, um zu sehen, ob sich die Genauigkeit des Ansatzes verschlechtert. Da das neue Framework über neuere und möglicherweise präzisere Optionen verfügt, kann dann untersucht werden, welche Änderungen an der Analyse im bestehenden Tool vorgenommen werden müssen, um die etablierte Baseline zu übertreffen. 

Der bestehende Benchmark kann dann erweitert werden, um tiefere Experimente mit dem Ansatz zu ermöglichen oder um mehr der früheren Ansätze einzubeziehen. 

Die Studierenden müssen mit Scala-Code umgehen können (oder bereit sein, dies zu lernen), da sowohl das bestehende Tool als auch das Framework in Scala implementiert sind. 

Forschungsfragen

  1. Wie wirkt sich das aktualisierte Framework auf die Präzision des Ansatzes aus, die sich im Debloating-Koeffizienten manifestiert, während die Fähigkeit, Anwendungen auszuführen, erhalten bleibt?
  2. Können verbesserte Algorithmen und Konfigurationen noch bessere Debloating-Koeffizienten erreichen? 

Verwandte Arbeiten

  • 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