title: Agile software performance engineering
Creators: name: Artner, Johannes Manuel
Publisher: name: TU Wien
Year: 2016
Subjects: subject: Software Performance Engineering
subject: Agile development
subject: Continuous Delivery
subject: DevOps
subject: Markov models for user-behaviour modelling
subject: queuing networks
subject: Software performance models
subject: combining model-based and measurement-based approach
subject: Performanzverwaltung von Softwaresystemen
subject: Agile Softwareentwicklung
subject: Continuous Delivery
subject: DevOps
subject: Markov Modelle zur Abbildung von Benutzerverhalten
subject: Warteschlangentheorie
subject: Performanzmodelle von Softwaresystemen
subject: Verbindung von modell- und messgetriebenen Techniken

description: Performanz, unter dem Gesichtspunkt zeitlicher Anfrage-Antwortintervalle, ist eine charakteristische Eigenschaft von Softwaresystemen. Zur Evaluierung und Optimierung der Performanz gibt es in der wissenschaftlichen Literatur eine Vielzahl an Ansätzen, wobei aufgrund des zumeist sehr hohen Zusatzaufwandes und der zusätzlichen Komplexität die meisten dieser Ansätze wenig Verwendung in der Praxis finden. Das adäquate Management von Performanz anhand ingenieurmäßiger Prinzipien ist in der Praxis demfolgend sehr selten. Die Konzeption und Evaluation der Performanz von Softwaresystemen wird in der wissenschaftlichen Disziplin des Software Performance Engineerings behandelt. In dieser Disziplin gibt es modell- und messgetriebene Methoden welche zumeist isoliert voneinander ablaufen. In der jungen Vergangenheit gab es eine Vielzahl an Innovationen im Bereich der Softwareentwicklung. Hierfür sind im Speziellen die Konzepte der agilen Entwicklung, des Continuous Deliveries sowie die DevOps-Kultur von Interesse. Die vorliegende Arbeit präsentiert ein neues Vorgehensmodell in der SPE-Domäne, den ASPE-Ansatz (Agile Software Performance Engineering) welcher modell- und messgetriebene Techniken verbindet. Der ASPE-Ansatz wurde auf Grundlage des Travelistr-Systems evaluiert. Hierbei galt es zunächst, Travelistr unter Verwendung des ASPE-Ansatzes zu entwickeln und die Nützlichkeit dieses Ansatzes zu evaluieren. Darauffolgend konnte in einem empirischen Versuch mit 32 Testnutzern die Markov-Eigenschaft einer typischen Web 2.0 Applikation bestätigt, und die Effektivität der Markov-Approximation gezeigt werden. Des Weiteren wurden zwei Tools entwickelt die Teilbereiche des ASPE-Ansatzes automatiseren: Der OperationsAndTraceMonitor und das UserTrace2Markov-Tool. Um die Performanz eines Softwaresystems anhand der Warteschlangetheorie evaluieren zu können, wurde ein Ansatz zur Berechnung von Ankunftsintervallen an Stationen auf Basis der Ergodizitätstheorie und Little-s Gesetz entwickelt.
description: Performance, considered in this work with respect to timely responses, is a key-characteristic of software systems. There are multiple performance engineering approaches in scientific literature. However, most of these approaches lack utility due to the high overhead and additional complexity. In practice, performance management of a software system is often more of an ad-hoc trial and error approach, rather than an engineering approach. Managing the performance of a software system belongs to the field of Software Performance Engineering (SPE) where two distinct approaches are available: The model-based approach and the measurement-based approach. Both having different limitations which may be mitigated by combining them. In the last decade, a wide range of innovations in the software engineering domain emerged. Of interest for this work are especially the concepts Agile development, Continuous Delivery and the DevOps-culture. Besides other benefits, these concepts enable better performance management. This work introduces a new engineering approach to the SPE domain which showed utility in practice: The ASPE-approach (Agile Software Performance Engineering) that integrates and combines model-based and measurement-based techniques throughout designing and developing a software system. In order to be useful in practice, it is essential to have high utility while bringing little overhead. Therefore, the ASPE-approach is built upon the principles (1) Force automation, (2) Reuse artefacts and (3) Use approximations instead of over-engineering SPE. Principles 1 and 2 are tackled by the use of model-driven concepts. Principle 3 is tackled by the use of Markov-models for describing user behaviour and in consequence workloads on resources. The ASPE-approach was evaluated in a case study covering the development of the Travelistr software system which was later also used for an empirical user test where the Markov assumption for a typical Web 2.0 application was evaluated and showed effectiveness. Two self-developed tools that automate parts of the ASPE-approach are introduced: (1) The OperationsAndTraceMonitor - an instrumentation tool able to track user navigation and the duration of defined operations. (2) The UserTrace2Markov-tool - which uses the results of the OperationsAndTraceMonitor and semi-automatically calculates Markov model transition probabilities of first and second order. Furthermore, for analysing a software systems performance with the widely used queuing network formalism, an approach to transfer Markov models towards arrival-rates of resources based on ergodicity theory and Little-s Law is introduced.