Research projects of the Software Quality and Architecture Group

Software Quality and Architecture Group

The Software Quality and Architecture Group participates regularly in research projects in close collaboration with our partners from industry and academia. We have a long, successful track record in performing EU, BMBF, BMWi, DFG and direct cooperation projects. This page keeps track of our most up-to-date project highlights.

radon logo

Rational Decomposition and Orchestration for Serverless Computing (RADON, 2019-2021)

Emerging serverless computing technologies, such as function-as-a-service (FaaS) offerings, enable developers to virtualize the internal logic of an application, simplifying management of cloud-native applications and allowing cost savings through billing and scaling at the level of individual function calls. Serverless computing is therefore rapidly shifting the attention of software vendors to the problem of developing cloud applications that can use these platforms.

RADON aims at creating a DevOps framework to create and manage microservices-based applications that can optimally exploit serverless computing technologies while avoiding FaaS vendor lock-in. RADON applications will include fine-grained and independently deployable microservices that can efficiently exploit FaaS and container technologies. The end goal is to broaden the adoption of serverless computing technologies within the European software industry. The methodology will strive to tackle complexity, harmonize the abstraction and actuation of action-trigger rules, avoid FaaS lock-in, and optimize decomposition and reuse through model-based FaaS-enabled development and orchestration.

Web site:

Persons (University of Stuttgart):

RADON is sponsored through Horizon 2020 - Research and Innovation Framework Programme.

Declare logo

Declarative Performance Engineering (Declare, 2016-2020)

Performance is of particular relevance to software system design, operation, and evolution because it has a major impact on key business indicators. Consequently, during the life-cycle of a software system, performance analysts continuously need to provide answers to and act on performance-relevant questions about response times, hardware utilization, bottlenecks, trends, anomalies, etc. Various established methods, techniques, and tools for modeling and
evaluating performance properties have been proposed, ranging from model-based prediction and optimization in early design phases, over measurement-based approaches in phases where implementations exist, up to solutions that continuously evaluate and control a system's performance during operation. However, particular challenges which hinder these techniques from being widely applied in practice include that it is hard to choose and to parameterize the various available approaches, as well as to filter and interpret the obtained results.

In DECLARE, the University of Stuttgart and the University of Würzburg will jointly address these challenges introducing a Declarative Performance Engineering approach. We envision to reduce the current abstraction gap between the level on which performance-relevant concerns are formulated and the level on which performance evaluations are actually executed. Performance queries and goals are formulated in a declarative modeling language. Performance evaluation methods, techniques, and tools are integrated into the DECLARE platform based on capability models and adapters and are selected based on corresponding decision algorithms. We will experimentally and empirically evaluate the results using benchmark systems and based on a large-scale industrial application system. We build on our expertise in the area of combining model-based and measurement-based performance evaluation techniques, including preliminary results on Declarative Performance Engineering. DECLARE will be integrated into the second phase of the Priority Programme "Design for Future - Managed Software Evolution" (SPP 1593), including collaborations with other projects inside the SPP and by contributing to the SPP case studies, focusing on CoCoME.

Web site:

Persons (University of Stuttgart):

Declare is sponsored by the German Research Foundation (DFG) under Grant No. HO 5721/1-1 and KO 3445/15-1.


Automated Performance Testing in Continuous Software Engineering (ContinuITy, 2017-2020)

Modern businesses require their application systems to perform in a responsive and cost-effective way. To develop such systems, performance regressions have to be identified early during the software development process, and especially before deployment. However, practice shows that load testing, as a relevant form of performance (regression) testing, is either not performed adequately or not at all. Load tests are usually not representative enough for the actual usage profile in production. This situation is caused by the fact that they require additional effort and necessary competence to create load test scripts. In addition, these scripts become obsolete very quickly due to system and usage profile changes, and their maintenance is associated with high costs. In the context of emerging continuous software development (DevOps), in which software changes are being put into operation ever faster and more frequently, this becomes even a greater problem. Furthermore, because the execution of these tests requires a longer time, it is not practical to carry out a load test for each change, e.g., to detect performance regressions. However, if regressions are detected in these aggregated changes, manual diagnosis is necessary to determine the responsible change in the software or the usage profile.

The ContinuITy research project, executed by NovaTec Consulting GmbH and the University of Stuttgart (Reliable Software Systems Group), aims to ensure automated and efficient load testing by integrating continuously recorded measurement data from production and to integrate it into the continuous software development environment. Load tests are automatically extracted from APM (application performance management) data and evolved taking into account changes in the usage profile. To specify load tests, we use a modular description language, which can be extended with additional contextual information, e.g., with test type and objectives. As a part of the automation of the software development process (continuous delivery), relevant load tests are selected to be executed in testing. Obtained results are used for the detection of regressions and their diagnosis. ContinuITy examines regressions to find whether they are caused by changes in the implementation or the usage profile and provides results to the DevOps team.

Web site:

Persons (University of Stuttgart):

diagnoseIT is sponsored by the German Federal Ministry of Education and Research under Grant No. 01IS17010.

Orcas logo

Efficient Resilience Benchmarking of Microservice Architectures (Orcas, 2017-2021)

The microservice architectural style is gaining more and more prevalence when constructing complex, distributed systems. One of its guiding principles is design for failure, which means that a microservice is able to cope with failures of other microservices and its surrounding software/hardware infrastructure. This is achieved by employing architectural patterns such as the circuit breaker and the bulkhead. Resilience benchmarking aims to assess failure tolerance mechanisms—for instance, via fault injection. Meanwhile, resilience benchmarking is not only conducted in development and staging environments, but also during a system’s production use. Existing resilience benchmarks for microservice architectures are ad-hoc and based on randomly injected faults.

The Orcas project aims for efficient resilience benchmarking of microservice architectures. Resilience vulnerabilities shall be detected more efficiently, i.e., faster and with fewer resources, by incorporating architectural knowledge as well as knowledge about the relationship between performance/capacity/stability (anti) patterns and suitable injections. The approach builds on existing works on model-based and measurement-based dependability evaluation of component-based software systems.

Persons (University of Stuttgart):

Orcas is sponsored by the Baden-Württemberg Stiftung as part of the elite program for junior researchers.


Search Techniques for Managing Quality-Attribute Tradeoffs in Software Design Optimizations (SQuAT, 2015-2018)

Designing a software system in such a way that it meets the main quality-attribute requirements desired by the system stakeholders (e.g., performance, modifiability, reliability, among others) is a complex, challenging and error-prone activity, even for experienced software engineers. A factor that contributes to this complexity is the existence of multiple alternative solutions that satisfy the same requirements, making tradeoffs inevitable. This process can be seen as a search through a large design space, in which the solution space is n-dimensional and each dimension represents a different quality attribute to be optimized. Tool support is vital to assist engineers in exploring the design space and selecting “good-enough” solutions. Over the last years, several tools usually based on heuristic search techniques have been developed. This research has been focused on improving the tooling capabilities but has paid less attention to the quality-attribute tradeoffs of the solutions.

In SQuAT, the University of Stuttgart and the Universidad Nacional del Centro de Buenos Aires (UNICEN) jointly investigate new semi-automated techniques for managing quality-attribute tradeoffs in software design optimizations, particularly focusing on i.) distributed search strategies, ii.) modularization of design knowledge, iii.) incorporation of user preferences and uncertainty, and iv.) application of negotiation techniques for managing quality-attribute tradeoffs.


SQuAT is sponsored by the German Federal Ministry of Education and Research under Grant No. 01DN15014.



Expert-guided Automatic Diagnosis of Performance Problems in Enterprise
Applications (diagnoseIT, 2015-2017)

Quality attributes of enterprise software applications such as performance, availability, and reliability have a significant impact on business critical metrics of enterprises such as revenue and total cost of ownership. Application Performance Management (APM) processes and tools are often facilitated and integrated into the application lifecycle to monitor performance-relevant metrics of the enterprise applications (e.g., response time, throughput, or resource utilization). APM is a necessity to detect and solve performance problems early. Experience shows that comprehensive APM is seldom implemented in industry, resulting in an unsatisfying quality of enterprise applications and detection rate of performance problems. There are major reasons for the low adoption rate of APM: the initial setup and maintenance of APM is error-prone and requires a high manual effort and expertise.

In order to improve this situation, NovaTec Consulting GmbH and the University of Stuttgart (Reliable Software Systems Group) launched the collaborative research project diagnoseIT on “Expert-guided Automatic Diagnosis of Performance Problems in Enterprise Applications”. Formalized APM expert knowledge is used to systematically detect and diagnose performance problems. Therefore, diagnoseIT uses an APM-tool-independent approach to orchestrate available APM solutions, initially focusing on the open-source tools inspectIT and Kieker. diagnoseIT provides a goal-oriented root cause analysis, offering a starting point for problem resolution. The project results will be published under an open-source license.

Web site:

Persons (University of Stuttgart):

diagnoseIT is sponsored by the German Federal Ministry of Education and Research under Grant No. 01IS15004.

To the top of the page