Detailseite
Projekt Druckansicht

Kontinuierliche Leistungsbewertung evolvierender Software-Systeme im Kontext elastischer Plattformtechnologien

Fachliche Zuordnung Softwaretechnik und Programmiersprachen
Förderung Förderung von 2012 bis 2015
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 211689233
 
Erstellungsjahr 2015

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)

 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung