Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Feedback Driven Development Bringing Runtime Metrics to the Developer
Organization Unit
Authors
  • Christian Bosshard
Supervisors
  • Harald Gall
  • Jürgen Cito
Language
  • English
Institution University of Zurich
Faculty Faculty of Economics, Business Administration and Information Technology
Number of Pages 106
Date 2015
Abstract Text oftware Developers utilize various data sources to draw a more complete picture of the evolution of an application over its lifetime. What kind of data is being used by developers, and how they use this data, is constantly evolving. Techniques derived from empirical software engineering mostly focus on static information (e.g., change requests in issue trackers, test coverage and build information). However, as multifaceted as the development-time feedback discussed so far may be, it still only covers one part of the application evolution. So far, it rarely bothers with gathering data about the application at runtime while it is actually being used. This is the domain of performance engineering, a relatively decoupled separate research domain, which is mostly concerned with optimizing non-functional properties of applications without actually looking at development-time artifacts, such as source code or change requests. However, with the advent of Cloud Computing and DevOps, software development and operations activities are converging. Hence, feedback for empirical software engineering needs to be extended with runtime information. In the cloud, both development-time and runtime feedback are readily available. However, developers currently lack awareness of the potential data and tools provided in the cloud. In this thesis, an approach is developed that integrates feedback from operational data into the Integrated Development Environment (IDE). A prototypical implementation called PerformanceHat, which uses the gathered runtime data to automatically detect the two common software performance problems “hotspot method” and “critical loop”, is contributed. The obtained feedback is visualized in the existent Java editor inside the IDE. An exploratory study shows that the presented approach combines important characteristics to support the DevOps methodology that has not been covered in its entirety in previous research.
Zusammenfassung Software Entwickler verwenden verschiedene Datenquellen, um ein umfassendes Bild der zu entwickelnden Applikation zu erhalten. Diese Datenquellen, sowie auch die Art, wie Entwickler die Daten verwenden, entwickeln sich stetig. Techniken aus der empirischen Software Entwicklung haben sich bisher stark auf die Bereitstellung von statischen Daten (z.B. Change Requests aus Issue Trackern, Build-Informationen und Testabdeckung) konzentriert. Dynamische Informationen, welche Aufschluss darüber geben, wie sich die Applikation zur Laufzeit verhält, werden bis anhin nur im Bereich Performance Engineering verwendet. Dieser Forschungsbereich ist relativ stark von der Software Entwicklung losgekoppelt und untersucht hauptsächlich die Optimierung von nicht-funktionalen Anforderungen, ohne dabei statische Artefakte, wie Quellcode oder Change Requests, einzubeziehen. Mit dem Aufkommen von Cloud Computing und DevOps konvergieren die Software Entwicklung und operative Tätigkeiten jedoch immer stärker. Somit sollte die empirische Software Entwicklung operationale Daten stärker miteinbeziehen. In der Cloud ist sowohl statisches als auch dynamisches Feedback leicht verfügbar. Die Bewusstheit der Entwickler über die Verfügbarkeit dieser Tools und Daten ist jedoch noch nicht zufriedenstellend. In dieser Arbeit wird ein Ansatz entwickelt, welcher Feedback von operationalen Daten in die Entwicklungsumgebung (IDE) integriert. Teil der Arbeit ist eine prototypische Implementierung namens PerformanceHat, welche operationale Daten verwendet, um die beiden gängigen Software Performance-Probleme “hotspot method” und “critical loop” zu ermitteln. Eine qualitative Evaluation zeigt, dass der vorgestellte Ansatz, anders als vorangehende Forschungsarbeit, die DevOps Methodologie in ihrer Gesamtheit unterstützt.
PDF File Download
Export BibTeX