Kontinuierliche Leistungsbewertung evolvierender Software-Systeme im Kontext elastischer Plattformtechnologien
Zusammenfassung der Projektergebnisse
Cloud-Technologien werden immer häufiger für Unternehmenssoftware eingesetzt, um flexibel auf Lastschwankungen reagieren zu können. Während das Auslagern von Hard- und Software-Plattformen vom Unternehmen zu Platform-as-a-Service-Anbietern viele Vorteile bietet, erschwert es jedoch die Einschätzung der Performance von Software, da Architekten und Entwickler nicht die Details der Implementierung der Softwareplattformen bei externen Dienstleistern einsehen können. Im Wissenstransfer-Projekt »Performance Engineering for Evolving Software Systems in Elastic Environments« wurden Methoden entwickelt, mithilfe derer Techniken aus dem Software Performance Engineering auch in Cloud-Umgebungen und bei Platform-as-a-Service-Anbietern genutzt werden können. Während das initiale Vorhaben vor allem in der Entwicklung einer nicht-intrusiven, messbasierten Methode lag, die die Einschätzung des Performance-Verhaltens von Cloud-Systemen ermöglicht, wurde im Verlauf des Projektes klar, dass sich diese Methoden sehr gut zur gezielten Verbesserung von Performance-Eigenschaften nutzen lassen können. Daher wurde ein Verfahren zur Identifikation und Klassifikation von häufig auftretenden Performance-Problemen entwickelt, das auf systematischen Tests und Messungen basiert. Die Problemklassen wurden mithilfe einer hierarchischen Taxonomie beschrieben, die wiederum als Metamodell ausgedrückt ist und so eine präzise Formulierung der beobachteten Performance-Probleme erlaubt, die für weitere automatisierte Schritte im Entwicklungsprozess genutzt werden kann. Die Klassifikation der Performance-Probleme wurde prototypisch im Rahmenwerk Dynamic Spotter implementiert, das als frei verfügbare Software zur Verfügung steht und in weiteren Forschungsprojekten zum Einsatz kommt. Basierend auf der Beschreibung der Performance-Probleme wurde ein Verfahren entwickelt, um Entwickler und Software-Architekten bei der Behebung dieser Probleme zu unterstützen. Das Ziel war hierbei, es auch Nicht-Performance-Experten zu ermöglichen, Methoden aus dem Software Performance Engineerung zur Verbesserung der Performance von Software einzusetzen. Da eine vollständig automatisierte Verbesserung von Software als unrealistisch eingeschätzt wurde, jedoch ein hoher Grad von Automatisierung zur Verbesserung der Entwicklungseffzienz angestrebt wurde, berücksichtigt das entwickelte Verfahren das a priori ermittelte Wissen von Performance-Experten, um Entwicklern Vorschläge zur Verbesserung der Software zu geben. Diese müssen zwar manuell umgesetzt werden, können jedoch bewertet und in einem Empfehlungssystem an andere Entwickler weitergegeben werden.
Projektbezogene Publikationen (Auswahl)
-
»Integrating software performance curves with the palladio component model«. In: Proceedings of the third joint WOSP/SIPEW international conference on Performance Engineering. ACM. 2012, S. 283–286
Alexander Wert, Jens Happe und Dennis Westermann
-
»Automated root cause isolation of performance regressions during software development«. In: Proceedings of the 4th ACM/SPEC International Conference on Performance Engineering. ICPE ’13. Prague, Czech Republic: ACM, 2013, S. 27–38
Christoph Heger, Jens Happe und Roozbeh Farahbod
-
»Multi-Tenancy Performance Benchmark for Web Application Platforms«. Industrial Track. In: Proceedings of the 13th International Conference on Web Engineering (ICWE 2013). Aalborg University, Denmark. Aalborg: Springer-Verlag, Juli 2013
Rouven Krebs, Alexander Wert und Samuel Kounev
-
»Performance problem diagnostics by systematic experimentation«. In: Proceedings of the 18th international doctoral symposium on Components and architecture. WCOP ’13. Vancouver, British Columbia, Canada: ACM, 2013, S. 1–6
Alexander Wert
-
»Supporting swift reaction: automatically uncovering performance problems by systematic experiments«. In: Proceedings of the 2013 International Conference on Software Engineering. ICSE ’13. San Francisco, CA, USA: IEEE Press, 2013, S. 552–561
Alexander Wert, Jens Happe und Lucia Happe
-
»Systematic Guidance in Solving Performance and Scalability Problems«. In: WCOP ’13: Proceedings of the 18th international doctoral symposium on Components and Architecture. Vancouver, Canada: ACM, 2013
Christoph Heger
-
»Systematic performance evaluation based on tailored benchmark applications«. In: Proceedings of the 4th ACM/SPEC International Conference on Performance Engineering. ICPE ’13. Industrial Track. Prague, Czech Republic: ACM, 2013, S. 411–420
Christian Weiss, Dennis Westermann, Christoph Heger und Martin Moser
-
»Automatic Detection of Performance Anti-patterns in Inter-component Communications«. In: Proceedings of the 10th International Conference on Quality of Software Architecture. QoSA ’14. Acceptance Rate: 27%. Lille, France, 2014
Alexander Wert, Marius Oehler, Christoph Heger und Roozbeh Farahbod
-
»Deriving Work Plans for Solving Performance and Scalability Problems«. In: Computer Performance Engineering. Hrsg. von András Horváth und Katinka Wolter. Bd. 8721. Lecture Notes in Computer Science. Springer International Publishing, 2014, S. 104–118
Christoph Heger und Robert Heinrich
-
»Vergil: Guiding Developers Through Performance and Scalability Inferno«. In: The Ninth International Conference on Software Engineering Advances (ICSEA). Hrsg. von Herwig Mannaert et al. IARIA, 2014, S. 598–608
Christoph Heger, Alexander Wert und Roozbeh Farahbod
-
»AIM: Adaptable Instrumentation and Monitoring for Automated Software Performance Analysis«. In: Automation of Software Test (AST), 2015 IEEE/ACM 10th International Workshop on. IEEE, Mai 2015, S. 38–42
Alexander Wert, Henning Schulz und Christoph Heger
-
»DynamicSpotter: Automatic, Experiment-based Diagnostics of Performance Problems (Invited Demonstration Paper)«. In: Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering. ICPE ’15. Austin, Texas, USA: ACM, 2015, S. 105–106
Alexander Wert
-
»Generic Instrumentation and Monitoring Description for Software Performance Evaluation«. In: Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering. ICPE ’15. Austin, Texas, USA: ACM, 2015, S. 203–206
Alexander Wert, Henning Schulz, Christoph Heger und Roozbeh Farahbod