Research

My latest contributions to software engineering research

A Critical Evaluation of Spectrum-Based Fault Localization Techniques on a Large-Scale Software System

This paper is published in Software Quality, Reliability and Security (QRS) 2017. It is a paper on the topic of my bachelor’s thesis.

Abstract

In the past, spectrum-based fault localization (SBFL) techniques have been developed to pinpoint a fault location in a program given a set of failing and successful test executions. Most of the algorithms use similarity coefficients and have only been evaluated on established but small benchmark programs from the Software-artifact Infrastructure Repository (SIR). In this paper, we evaluate the feasibility of applying 33 state-of-the-art SBFL techniques to a large real-world project, namely ASPECTJ. From an initial set of 350 faulty version from the iBugs repository of ASPECTJ we manually classified 88 bugs where SBFL techniques are suitable. Notably, only 11 bugs of these bugs can be found after examining the 1000 most suspicious lines and on average 250 source code files need to be inspected per bug. Based on these results, the study showcases the limitations of current SBFL techniques on a larger program.

Read more

Master's Thesis: Introducing Performance Awareness in an Integrated Specification Environment

Abstract

With an increase in software complexity and modularization to create large software systems and software product lines it is increasingly difficult to ensure all requirements are met by the built system. Performance requirements are an important concern to software systems and research has developed approaches being capable of predicting software performance from annotated software architecture descriptions, such as the Palladio tool suite. However, the tooling when moving between specification, implementation and verification phase has a gap as the tools are commonly not linked, leading to inconsistencies and ambiguities in the produced artifacts. This thesis introduces performance awareness into the Integrated Specification Environment for the Specification of Technical Software Systems (IETS3), which is a specification environment aiming to close the tooling gap between the different lifecycle phases. Performance awareness is introduced by integrating existing approaches for software performance prediction from the Palladio tool suite and extending them to cope with variability-aware system models for software product lines. The thesis includes an experimental evaluation showing that the developed approach is able to provide performance predictions to users of the specification environment within 2000 ms for systems of up to 20 components and within 8000 ms for systems of up to 30 components.

Read more

Leveraging Palladio for Performance Awareness in the IETS3 Integrated Specification Environment

This paper is published in the Symposium on Software Performance 2016. It is a short paper on the topic of my master’s thesis.

Abstract

Performance is an important concern when designing and implementing software-intensive systems. Various techniques are available for specifying and evaluating performance concerns throughout the system life-cycle. However, there is a gap in terms of tooling when moving between requirements, design, and implementation artifacts. We address this gap by integrating simulation-based and analytical performance prediction tools into IETS3 - an integrated specifi cation environment for technical software systems based on the JetBrains MPS language workbench. In this paper, we provide an overview of our work in progress on integrating performance awareness support into the IETS3 editor and user interface. We leverage Palladio’s prediction infrastructure by transforming to Palladio’s modeling language to obtain performance predictions, which are then fed back into the IETS3 user interface. The approach yields a tight integration of the requirements and the design of a system strengthened by a real-time feedback loop.

Read more

High Dimensional Data Visualization

I attended a seminar on large scale visualization and wrote a paper on high dimensional data visualization, comparing different techniques. A key concept of high dimensional data visualization is dimensionality reduction, in order to reduce the number of dimensions to be visualized. The paper covers linear (principal component analysis) and non-linear (local linear embedding, ISOMAP, t-SNE) dimensionality reduction techniques. The paper has been peer-reviewed in class.

The title photo is a visualization of the MNIST dataset - a database of handwritten digits. The R language was used to create the plots.

Read more