David Georg Reichelt

Wissenschaftlicher Mitarbeiter

Lebenslauf

  • 2008-2011: Studium Wirtschaftsinformatik (B.Sc.)
  • 2011-2013: Studium Informatik (M.Sc.)
  • Seit 2013: Wissenschaftliche Mitarbeit an der Universität Leipzig
  • Seit 2017: Promotionsstipendiat der Hanns-Seidel-Stiftung

Forschungsinteressen

  • Software Performance Engineering und Software Engineering
  • Statische und dynamische Codeanalyse
  • Informationssysteme für Energiemanagement
  • Energieinformatik

Publikationen

2019

David Georg Reichelt, Stefan Kühne, Wilhelm Hasselbring: On the Validity of Performance Antipatterns at Code Level, Proceedings of Symposium on Software Performance, Softwaretechnik-Trends, Würzburg, 2019.

David Georg Reichelt, Stefan Kühne, Wilhelm Hasselbring: PeASS: A Tool for Identifying Performance Changes at Code Level, Proceedings of Automated Software Engineering 2019, San Diego (im Erscheinen).
Tooldemo: https://www.youtube.com/watch?v=RORFEGSCh6Y

2018

David Georg Reichelt, Lars-Peter Mayer and Stefan Kühne: Better a Microbenchmark on a Cluster than a User at the Office: Flink Cluster Benchmarking. Proceedings of Symposium on Software Performance, Softwaretechnik-Trends, Hildesheim, 2018.

David Georg Reichelt, Stefan Kühne:
Better Early Than Never: Performance Test Acceleration by Regression Test Selection. ICPE Companion 2018: 127-130, Berlin.

David Georg Reichelt, Stefan Kühne:
How to Detect Performance Changes in Software History: Performance Analysis of Software System Versions. ICPE Companion 2018, Berlin.

Scheller, F.; Johanning, S.;  Reichelt, D.G.; Reichardt, S., Bruckner, T.: Competition effects of simultaneous application of flexibility options within an energy community, 15th International Conference on the European Energy Market (EEM), Lodz (2018).

2017
Scheller, F.; Reichelt, D.G.; Dienst, S.; Johanning, S., Reichardt, S., Bruckner, T.: Effects of Implementing Decentralized Business Models at a Neighborhood Energy System Level: A Model Based Cross-sectoral Analysis, 14th International Conference on the European Energy Market (EEM), Dresden (2017). DOI: 10.1109/EEM.2017.7981910.

2016
David Georg Reichelt, Stefan Kühne:
Empirical Analysis of Performance Problems on Code Level. ICPE 2016: 117-120.

2015
David Georg Reichelt, Fabian Scheller:
Improving Performance Analysis of Software System Versions Using Change-Based Test Selection. Softwaretechnik-Trends 35(3) (2015)

David Georg Reichelt, Johannes Schmidt:
Performanzanalyse von Softwaresystemversionen: Methode und erste Ergebnisse. Software Engineering & Management 2015: 153-158

Scheller, F.; Keitsch, K.; Kondziella, H.; Reichelt, D. G.; Dienst, S.; Kühne, S.; Bruckner, T. (2015): Evaluation von Geschäftsmodellen im liberalisierten Energiemarkt - Energieeffizienz und Flexibilität der Kunden als Grundlage innovativer Geschäftsmodelle, in: BWK 67.

2014
David Georg Reichelt:
Berücksichtigung von Softwareperformanz im Entwicklungsprozess. GI-Jahrestagung 2014: 2329-2334

David Georg Reichelt, Lars Braubach:
Sicherstellung von Performanzeigenschaften durch kontinuierliche Performanztests mit dem KoPeMe Framework. Software Engineering 2014: 119-124

Offene Abschlussarbeiten

Beschleunigung der Ursachenanalyse von Performanzänderungen

Um Ursachen von Performanzänderungen zu finden, ist ein Ansatz die Ursachanalyse (Root-Cause Analysis). Dabei wird der Aufrufbaum ermittelt und anschließend werden für jede Ebene die Knoten des Aufrufbaums instrumentiert und gemessen. Um zuverlässige Messwerte zu erhalten, müssen hierfür die Messungen wiederholt und in verschiedenen, nacheinander gestarteten Java-VMs durchgeführt werden.

Aktuelle Implementierungen dieses Verfahrens, bspw. in PeASS  nutzen hierfür neue VMs für jede einzelne Methodenmessung. Durch adaptive Instrumentierung wäre es möglich, VMs nur zu pausieren und die Instrumentierung anschließend für die Messung der nächsten Baumebene anzupassen. So könnte der Warmup entfallen und die Messung maßgeblich beschleunigt werden.

Im Rahmen der Abschlussarbeit soll erprobt werden, wie es möglich ist, die VM mit Performanzmessungen zu pausieren und durch adaptives Monitoring effizienter Messwerte zu generieren. Die Arbeit kann als Bachelor- oder Masterarbeit durchgeführt werden. Im Fall einer Masterarbeit ist empirisch an verschiedenen Beispielprojekten zu untersuchen, welche Beschleunigung das Verfahren gegenüber der herkömmlichen Messung bietet.

Feststellung des stationären Zustands bei Performanzmessungen

Performanz von Software verändert sich während der Ausführung innerhalb einer VM: Durch Just-in-Time-Compilation, Optimierung und Garbage Collection ändert sich die Ausführungsdauer einzelner Methoden. Um zuverlässige Messwerte zu erhalten, werden Messungen deshalb innerhalb einer VM wiederholt. Dabei werden Messungen oft so lange wiederholt, bis der stationäre Zustand erreicht ist.

Problematisch ist, dass verschiedene Anwendungsfälle unterschiedliche Anzahl von Wiederholungen benötigen. Deshalb soll das Performanztestframework KoPeMe so erweitert werden, dass Messungen ausgeführt werden, bis der stationäre Zustand einer Ausführung erreicht ist.

Die Arbeit kann als Bachelor- oder Masterarbeit durchgeführt werden. Im Fall einer Masterarbeit soll die entwickelte KoPeMe-Erweiterung an Beispielprojekten evaluiert werden.

Visualisierung der Ursachenanalyse von Performanzänderungen [vergeben]

Ändert sich die Performanz einer Software, ist es für den Entwickler hilfreich, herauszufinden, in welcher/welchen Methode(n) die Ursache hierfür liegt. Dies kann durch Messung der Performanz einzelner Methoden geschehen.

Nachdem die Methoden einzeln gemessen wurden, ist es hilfreich, den Aufrufbaum sowie die Messwerte der Methoden zu visualisieren. Dies soll im Rahmen der Abschlussarbeit geschehen. Dabei soll der Nutzer die Möglichkeit haben, interaktiv auf die einzelnen Messwerte jedes Knoten des Aufrufbaums zuzugreifen.

Die Arbeit kann als Bachelor- oder Masterarbeit durchgeführt werden. Im Fall einer Masterarbeit ist zusätzlich zu implementieren:
- Eine Hervorhebung von Methoden auf Basis besonderer Eigenschaften der Messwerte, bspw. rekursiv aufgerufenen Methoden, in denen ggf. Messfehler vorliegen und Messwerte, bei denen aufgrund besonders hoher Standardabweichung ggf. eine Neumessung hilfreich wäre
- Eine automatisierte Neumessung von als kritisch erkannten Methoden

Untersuchung der Performanzentwicklung von Tomcat [vergeben]

Software-Entwicklungsprojekte sind regelmäßigen Refactorings und Funktionserweiterungen unterworfen. Derzeitig wird ein Werkzeug zur Performanzanalyse von Softwaresystemversionen erstellt (PeASS, https://github.com/DaGeRe/peass). Ziel von PeASS es ist, Performanzveränderungen in verschiedenen Softwareversionen festzustellen. Dies geschieht durch die Transformation der Unit-Tests zu Performanz-Unit-Tests, mittels denen festgestellt wird, welche Performanz bestimmte Testfälle haben und ob sich diese verändert.

Mit dem bestehenden Werkzeug soll der Applikationsserver Tomcat untersucht werden. Das bestehende Werkzeug zur Performanzanalyse von Softwaresystemversionen soll so erweitert werden, dass es Tomcat-Ant-Buildskripte um Performanzmessungen und Performanztestinstrumentierung erweitern kann. Hiermit sollen Performanzveränderungen gefunden werden.

Die Arbeit kann als Bachelor- oder Masterarbeit belegt werden. Im Fall einer Masterarbeit sollen die gefundenen Performanzveränderungen klassifiziert und mit Performanz-Antipatterns aus der Literatur verglichen werden.

Bei besonderem Interesse kann auch eine andere quelloffene Software untersucht werden.

Entwicklung eines Maven-Plugins zur Performanzmessung [Vergeben]

Softwareperformanz ist, gerade für kleinere Programmeinheiten, schwer messbar: Andere Programme, die die selben Ressourcen benutzen, JIT-Compilierung, Garbage Collection, die Ungenauigkeit der Messungen selbst, etc. verändern Messwerte bei jeder Messung.

Während der Softwareentwicklung verändert sich die Performanz eines Programms regelmäßig. Neue Funktionalitäten können eine Verlangsamung des Programms verursachen. Um dies zu verhindern, sollen Performanz-Unit-Tests die Erfüllung von Performanzanforderungen sichern. Problematisch ist, dass Performanzmesswerte sich bei jeder Messung unterscheiden.

In der Abschlussarbeit soll deshalb ein Maven-Plugin entwickelt werden, dass Performanzmessungen zuverlässig macht, indem mehrere VM-Ausführungen nacheinander durchgeführt werden und anschließend statistische Kennzahlen dieser Ausführungen ermittelt wird. An einem Beispielprojekt soll gezeigt werden, dass das Plugin im Buildprozess genutzt werden kann.

Die Arbeit kann als Bachelor-/Master- bzw. Diplomarbeit belegt werden.

letzte Änderung: 11.11.2019

Hilfe

Servicedesk

Neues Augusteum
2. Etage, Raum A252

Telefon: +49 341 97-33333
E-Mail

Suche