Software performance is of particular relevance to software system design, operation, and evolution because it has a significant impact on key business indicators. During the life-cycle of a software system, its implementation, configuration, and deployment are subject to multiple changes that may affect the end-to-end performance characteristics. Consequently, performance analysts continually need to provide answers to and act based on performance-relevant concerns. To ensure a desired level of performance, software performance engineering provides a plethora of methods, techniques, and tools for measuring, modeling, and evaluating performance properties of software systems. However, the answering of performance concerns is subject to a significant semantic gap between the level on which performance concerns are formulated and the technical level on which performance evaluations are actually conducted. Performance evaluation approaches come with different strengths and limitations concerning, for example, accuracy, time-to-result, or system overhead. For the involved stakeholders, it can be an elaborate process to reasonably select, parameterize and correctly apply performance evaluation approaches, and to filter and interpret the obtained results. An additional challenge is that available performance evaluation artifacts may change over time, which requires to switch between different measurement-based and model-based performance evaluation approaches during the system evolution. At model-based analysis, the effort involved in creating performance models can also outweigh their benefits.
To overcome the deficiencies and enable an automatic and holistic evaluation of performance throughout the software engineering life-cycle requires an approach that: (i) integrates multiple types of performance concerns and evaluation approaches, (ii) automates performance model creation, and (iii) automatically selects an evaluation methodology tailored to a specific scenario. This thesis presents a declarative approach —called Declarative Performance Engineering (DPE)— to automate performance evaluation based on a humanreadable specification of performance-related concerns. To this end, we separate the definition of performance concerns from their solution. The primary scientific contributions presented in this thesis are:
A declarative language to express performance-related concerns and a corresponding processing framework:
We provide a language to specify performance concerns independent of a concrete performance evaluation approach. Besides the specification of functional aspects, the language allows to include non-functional tradeoffs optionally. To answer these concerns, we provide a framework architecture and a corresponding reference implementation to process performance concerns automatically. It allows to integrate arbitrary performance evaluation approaches and is accompanied by reference implementations for model-based and measurement-based performance evaluation.
Automated creation of architectural performance models from execution traces:
The creation of performance models can be subject to significant efforts outweighing the benefits of model-based performance evaluation. We provide a model extraction framework that creates architectural performance models based on execution traces, provided by monitoring tools.The framework separates the derivation of generic information from model creation routines. To derive generic information, the framework combines state-of-the-art extraction and estimation techniques. We isolate object creation routines specified in a generic model builder interface based on concepts present in multiple performance-annotated architectural modeling formalisms. To create model extraction for a novel performance modeling formalism, developers only need to write object creation routines instead of creating model extraction software from scratch when reusing the generic framework.
Automated and extensible decision support for performance evaluation approaches:
We present a methodology and tooling for the automated selection of a performance evaluation approach tailored to the user concerns and application scenario. To this end, we propose to decouple the complexity of selecting a performance evaluation approach for a given scenario by providing solution approach capability models and a generic decision engine. The proposed capability meta-model enables to describe functional and non-functional capabilities of performance evaluation approaches and tools at different granularities. In contrast to existing tree-based decision support mechanisms, the decoupling approach allows to easily update characteristics of solution approaches as well as appending new rating criteria and thereby stay abreast of evolution in performance evaluation tooling and system technologies.
Time-to-result estimation for model-based performance prediction:
The time required to execute a model-based analysis plays an important role in different decision processes. For example, evaluation scenarios might require the prediction results to be available in a limited period of time such that the system can be adapted in time to ensure the desired quality of service. We propose a method to estimate the time-to-result for modelbased performance prediction based on model characteristics and analysis parametrization. We learn a prediction model using performancerelevant features thatwe determined using statistical tests. We implement the approach and demonstrate its practicability by applying it to analyze a simulation-based multi-step performance evaluation approach for a representative architectural performance modeling formalism.
We validate each of the contributions based on representative case studies. The evaluation of automatic performance model extraction for two case study systems shows that the resulting models can accurately predict the performance behavior. Prediction accuracy errors are below 3% for resource utilization and mostly less than 20% for service response time. The separate evaluation of the reusability shows that the presented approach lowers the implementation efforts for automated model extraction tools by up to 91%. Based on two case studies applying measurement-based and model-based performance evaluation techniques, we demonstrate the suitability of the declarative performance engineering framework to answer multiple kinds of performance concerns customized to non-functional goals. Subsequently, we discuss reduced efforts in applying performance analyses using the integrated and automated declarative approach. Also, the evaluation of the declarative framework reviews benefits and savings integrating performance evaluation approaches into the declarative performance engineering framework. We demonstrate the applicability of the decision framework for performance evaluation approaches by applying it to depict existing decision trees. Then, we show how we can quickly adapt to the evolution of performance evaluation methods which is challenging for static tree-based decision support systems. At this, we show how to cope with the evolution of functional and non-functional capabilities of performance evaluation software and explain how to integrate new approaches. Finally, we evaluate the accuracy of the time-to-result estimation for a set of machinelearning algorithms and different training datasets. The predictions exhibit a mean percentage error below 20%, which can be further improved by including performance evaluations of the considered model into the training data. The presented contributions represent a significant step towards an integrated performance engineering process that combines the strengths of model-based and measurement-based performance evaluation. The proposed performance concern language in conjunction with the processing framework significantly reduces the complexity of applying performance evaluations for all stakeholders. Thereby it enables performance awareness throughout the software engineering life-cycle. The proposed performance concern language removes the semantic gap between the level on which performance concerns are formulated and the technical level on which performance evaluations are actually conducted by the user. / Die Performanz von Software ist von herausgehobener Relevanz für das Design, den Betrieb und die Evolution von Softwaresystemen, da sie den Geschäftserfolg stark beinflusst. Während des Softwarelebenszyklus ändern sich die Implementierung und die Art der Bereitstellung mehrfach, was jeweils das Ende-zu-Ende Verhalten bezüglich der Performanz beeinflussen kann. Folglich muss sich kontinuierlich mit Fragestellungen der Leistungsbewertung beschäftigt werden. Um performantes Verhalten sicherzustellen gibt es im “Software Performance Engineering” bereits eine Vielzahl an Methoden, Techniken und Werkzeugen um Performanzeigenschaften von Softwaresystemen zu messen, zu modellieren und zu evaluieren. Jedoch unterliegt die Beantwortung von konkreten Fragestellungen einem Missverhältnis zwischen dem einfachen Formulieren von Fragestellungen und dem sehr technischen Level auf dem die Fragen beantwortet werden. Verfahren zur Bestimmung von Performanzmetriken haben unterschiedliche Stärken und Einschränkungen, u.a. bezüglich Genauigkeit, Lösungsgeschwindigkeit oder der erzeugten Last auf dem System. Für die beteiligten Personen ist es ein nicht-trivialer Prozess ein passendes Verfahren zur Performanzevaluation auszuwählen, es sinnvoll zu parametrisieren, auszuführen, sowie die Ergebnisse zu filtern und zu interpretieren. Eine zusätzliche Herausforderung ist, dass sich die Artefakte, um die Leistung eines Systemes zu evaluieren, im zeitlichen Verlauf ändern, was einenWechsel zwischen messbasierten und modellbasierten Verfahren im Rahmen der Systemevolution nötig macht. Bei der modellbasierten Analyse kann zudem der Aufwand für die Erstellung von Performance-Modellen den Nutzen überwiegen.
Um die genannten Defizite zu überwinden und eine ganzheitliche, automatisierte Evaluierung der Leistung während des Software-Entwicklungszyklus zu erreichen ist ein Ansatz von Nöten, der: (i) unterschiedliche Arten von Performanzanliegen und Evaluationsmethoden integriert, (ii) die Erstellung von Performanzmodellen automatisiert und (iii) automatisch eine Methodik zur Evaluation zugeschnitten auf ein spezielles Analyseszenario auswählt. Diese Arbeit präsentiert einen beschreibenden Ansatz, Declarative Performance Engineering (DPE) genannt, um die Evaluation von Performanzfragestellungen basierend auf einem menschenlesbaren Spezifikation zu automatisieren.
Zu diesem Zweck trennen wir die Spezifikation von Performanzanliegen von deren Beantwortung. Die wissenschaftlichen Hauptbeiträge dieser Arbeit sind:
Eine beschreibende Sprache um performanzrelevante Fragestellungen auszudrücken und ein Framework um diese zu beantworten:
Wir präsentieren eine Sprache, um Performanzanliegen unabhängig von der Evaluationsmethodik zu beschreiben. Neben der Spezifikation von funktionalen Aspekten können auch nicht-funktionale Abwägungsentscheidungen beschrieben werden. Um die spezifizierten Anliegen zu beantworten präsentieren wir eine Frameworkarchitektur und eine entsprechende Referenzimplementierung,um Anliegen automatisch zu beantworten. Das Framework bietet die Möglichkeit beliebige Evaluationsmethodiken zu integrieren und wird ergänzt durch Referenzimplementierungen zur messbasierten und modellbasierten Performanzevaluation.
Automatische Extraktion von architekturellen Performanzemodellen aus Messdatenzur Anwendungsperformanz:
Der signifikante Aufwand zur Erstellung von Performanzmodellen kann deren Vorteile überlagern. Wir schlagen einen Framework zur automatischen Erstellung vor, welches Modelle aus Messdaten extrahiert. Das präsentierte Framework trennt das Lernen von generischen Aspekten von Modellerstellungsroutinen. Um generische Aspekte zu lernen kombiniert unser Framework modernste Extraktionsund Schätztechniken. Wir isolieren Objekterstellungsroutinen, die in einer generischen Schnittstelle zur Modellerzeugung angegeben sind, basierend auf Konzepten die in mehreren Performanz-annotierten Architekturmodellen vorhanden sind. Um eine Modellextraktion für einen neuen Formalismus zu erstellen müssen Entwickler müssen nur die Erstellung von Objekterstellungsroutinen schreiben statt eine Modell-Extraktionssoftware von Grund auf neu zu schreiben.
Automatisierte und erweiterbare Entscheidungsunterstützung für Leistungsbewertungsansätze:
Wir präsentieren eine Methodik und Werkzeuge für die automatisierte Auswahl eines auf die Belange und Anwendungenszenarien der Benutzer zugeschnittenen Leistungsbewertungsansatzes. Zu diesem Zweck schlagen wir vor, die Komplexität der Auswahl eines Leistungsbewertungsansatzes für ein gegebenes Szenario zu entkoppeln. Dies geschieht durch Bereitstellung von Fähigkeitsmodellen für die Lösungsansätze und einen generische Entscheidungsmechanismus. Das vorgeschlagene Fähigkeits-Metamodell ermöglicht es, funktionale und nichtfunktionale Fähigkeiten von Leistungsbewertungsansätzen und Werkzeugen in verschiedenen Granularitäten zu modellieren. Im Gegensatz zu bestehenden baumbasierten Entscheidungensmechanismen ermöglicht unser Ansatz die einfache Aktualisierung von Merkmalen von Lösungsansätzen sowie das Hinzufügen neuer Bewertungskriterien und kann dadurch einfach aktuell gehalten werden.
Eine Methode zur Schätzung der Analysezeit für die modellbasierte Leistungsvorhersage:
Die Zeit, die für die Durchführung einer modellbasierten Analyse benötigt wird, spielt in verschiedenen Entscheidungsprozessen eine wichtige Rolle. Beispielsweise können Auswertungsszenarien erfordern, dass die Vorhersageergebnisse in einem begrenzten Zeitraum zur Verfügung stehen, so dass das System rechtzeitig angepasst werden kann, um die Dienstgüte sicherzustellen.Wir schlagen eine Methode vor, um die Zeit bis zum Ergebnis für modellbasierte Leistungsvorhersage basierend auf Modelleigenschaften und Analyseparametrisierung zu schätzen. Wir lernen ein Vorhersagemodell anhand von leistungsrelevanten Merkmalen, die wir mittels statistischer Tests ermittelt haben. Wir implementieren den Ansatz und demonstrieren seine Praktikabilität, indem wir ihn auf einen mehrstufiger Leistungsbewertungsansatz anwenden. Wir validieren jeden der Beiträge anhand repräsentativer Fallstudien. Die Evaluierung der Leistungsmodellextraktion für mehrere Fallstudiensysteme zeigt, dass die resultierenden Modelle das Leistungsverhalten genau vorhersagen können. Fehler bei der Vorhersagegenauigkeit liegen für die Ressourcennutzung unter 3% und meist weniger als 20% für die Service-Reaktionszeit. Die getrennte Bewertung derWiederverwendbarkeit zeigt, dass der Implementierungsaufwand zur Erstellung von Modellextraktionswerkzeugen um bis zu 91% gesenkt werden kann.
Wir zeigen die Eignung unseres Framworks zur deklarativen Leistungsbewertung basierend auf zwei Fallstudien die mess- und model-basierte Leistungsbewertungstechniken zur Beantwortung verschiedenster Performance-Anliegen zugeschnitten auf Nutzerbedürfnisse anwenden. Anschließend diskutieren wir die Einsparungen durch den integrierten und automatisierten Ansatz. Des weiteren untersuchen wir die Vorteile der Integration vonweiteren Leistungsbewertungsansätzen in den deklarativen Ansatz.Wir demonstrieren die Anwendbarkeit unseres Entscheidungsframeworks für Leistungsbewertungsansätze, indem wir den Stand der Technik für Entscheidungsunterstützung abbilden. Anschließend zeigen wir die leichte Anpassbarkeit, was für baumbasierte Entscheidungsunterstützungssysteme eine signifikante Herausforderung darstellt. Hierbei zeigen wir wie man Änderungen funktionaler und nichtfunktionaler Fähigkeiten von Leistungsbewertungssoftware sowie neue Ansätze integriert. Abschließend bewerten wir die Genauigkeit der Zeit-zu-Ergebnis-Schätzung für eine Reihe von maschinellen Lernalgorithmen und verschiedenen Trainingsdatensätzen. Unser Vorhersagen zeigen einen mittleren prozentualen Fehler von weniger als 20%, die weiter verbessert werden können durch Berücksichtigung von Leistungsbewertungen des betrachteten Modells in den Trainingsdaten.
Die vorgestellten Beiträge sind ein bedeutender Schritt hin zu einem integrierten Performance-Engineering-Prozess, der die Stärken von modellbasierter und messbasierter Leistungsbewertung kombiniert. Die vorgeschlagene Sprache um Performanzanliegen zu spezifizieren reduziert in Verbindung mit dem Beantwortungsframework die Komplexität der Anwendung von Leistungsbewertungen für alle Beteiligten deutlich und ermöglicht dadurch ein Leistungsbewusstsein im gesamten Softwarelebenszyklus. Damit entfernt die vorgeschlagene Sprache die Diskrepanz zwischen einem einfachen Fragen bezüglich der Leistung und der sehr technische Ebene auf der Leistungsbewertungen tatsächlich ausgeführt werden.
Identifer | oai:union.ndltd.org:uni-wuerzburg.de/oai:opus.bibliothek.uni-wuerzburg.de:18090 |
Date | January 2019 |
Creators | Walter, Jürgen Christian |
Source Sets | University of Würzburg |
Language | English |
Detected Language | English |
Type | doctoralthesis, doc-type:doctoralThesis |
Format | application/pdf |
Rights | https://creativecommons.org/licenses/by-sa/4.0/deed.de, info:eu-repo/semantics/openAccess |
Page generated in 0.011 seconds