Research Projects

Current research projects

Current projects in alphabetical order:

An Approach for Vertical Reuse of Unit Test Cases to Automate Integration Testing
  • Researcher: Nils Wild
  • Time: 2020 – ongoing

Test automation is a central requirement in DevOps, which many companies adopt to increase the quality of their products and reduce the time to market. Despite the efforts, most companies still rely on manual testing to assess the functionality of their products. Besides the time to automate Tests, expertise is needed to design suitable test cases and to achieve the necessary testability of the products and automatability for the test cases. Given that the individual teams already invested effort in designing and creating the test cases for individual components, it is desirable to reuse these test cases for integration testing. Reusing information of test cases on one level to test on a different level is referred to as vertical reuse. This project aims for researching approaches to support test automation on the integration level by reusing information contained in those test cases.

DevOps-aware Software Engineering

Each software system relies on infrastructure elements to be operated correctly. Caused by the growing complexity and distributed manner of modern software systems the management of infrastructure get more and more important. In parallel the delivery and operation of software gain more attention. The agile manifest proposes the continuously delivery of valuable software to the customer. A tight integration of methods from software engineering and software operation the software development process can achieve this goal.

Enterprise Architecture Debt

IT initiatives have constituted a major proportion of the overall strategic initiatives in today’s businesses. To fulfill the full potential of IT investments, bridging all gaps between business and IT is the first fundamental step. Such alignment has been the core focus of Enterprise Architecture, a discipline for establishing and maintaining strategic governance and management of IT decisions in complex and dynamic businesses.

Modernization approaches for legacy systems

In this research project a new approach shall be developed to support the stakeholders in making the decision on how to modernise their system. We want to investigate the modernisation “good practice” in both academic and industrial context. Based on this, we want to develop new approaches and identify the information needed to manage the decision process behind the modernization of any (legacy) system.

SCAM - Security-Centric Architecture Modelling

It is impossible to imagine today's world without software: whether it is smartphones, with which we carry a powerful computer with us almost everywhere and are connected to the Internet around the clock, highly scalable cloud applications that we use in our everyday working lives, airports, hospitals, supermarkets - the list of areas in which software is used in one form or another seems endless. Being surrounded by software, most of which being connected to the internet all the time, i.e. 24/7 potential vulnerabilities for outside intruders and attackers, emphesizes the need for highly secure software systems. In order to cope with the high complexity introduced by solutions of security requirements in software architecture, appropriate modelling techniques are required. Although some approaches to security modeling have been developed in recent years, it is still difficult and cumbersome to design, maintain, and evaluate the security architecture of a software system. This is partly because security modeling and architecture modeling belong together, since security solutions can affect the architecture of the software system, but they are handled as separate topics. For instance, threat modeling can be used to identify potential threats in a software system and to design countermeasures for these threats. However, looking at the architecture description documents after the fact, it is not apparent what solutions have been incorporated to address threats, making it much more difficult to evaluate the security architecture of a software system. This research project aims to develop and test new approaches to get a better view of security from an architectural perspective.

SE4ML - Processes, People and Tools

In this reseach project, we aim to contribute to the development of new ML-specific system development approaches. To this end, we analyze and aim to improve the development processes and associated tooling environments. This of course involves a close coordination with the people involved in the process and applying the tools.

Past research projects

Cloud Service Selection and Cost Optimization

Selecting suitable cloud services and estimating future cloud costs for organizations with a large set of software services is a challenging task. To achieve this, one needs to understand all software applications’ cloud service configuration requirements. Further, one needs to estimate how the applications’ requirements change over time, e.g., due to scaling with a growing number of application users. Then, one needs to compare for different cloud providers the costs over time of setups matching the requirements. This task, if done manually, is laborious, error prone, and has to be repeated when the organization’s business or application requirements change.

An Exploration Plattform for Microservice Applications

The microservice architecture pattern is a software architecture pattern that structures a software application into many individual services that are closely aligned with business capabilities. To be able to explore the effect of changes in a software architecture on the quality of the software system, one usually needs a system under test. These are often missing in the microservice context and can only be used with high information loss by software architecture reconstruction. In this research project we try to develop a platform that allows explorations on microservice architectures and thus does not require the existence of microservice applications and their reconstruction for research on microservice systems.

Business-centered Software Development
ROBUSTA – Combinatorial Robustness Testing
EARTh – Integrated Enterprise Architecture Roundtrip Approach
Scalable Distributed Data Processing with Microservices
Cost/Benefit-based Technical Debt Management
Model-based Software Architecture Evolution and Evaluation
Regression Test Optimization

Software regresses when existing functionality stops working upon the change of the program. Thus, the importance of automatic regression testing is increasing; this is especially true for fast-evolving systems and continuous delivery done right. To stress functional behavior, the regression test suite and its execution time is, in general, large. Moreover, by definition, regression test suites are executed recurrently, and thus, the number of test cases greatly influences the execution time. However, a change has only a partial impact on the system, so we can choose to execute only relevant test cases (test selection). Similarly, we can permanently remove test cases that are “irrelevant” (test minimization). Last but not least, the order of the test cases can reveal regression errors “faster” (test prioritization).

Reusing Domain-engineered Artifacts for Code Generation
Metric-based Project and Process Management
Goal-based Process Improvement
Model-based Testing of Web Applications
Interactive Use Case based Prototyping
Process Assessment based on Software Repository Data
Model-based Software Engineering of Small Embedded & Real-Time Systems
Architectures for Software Product Lines
  • Time: until 2008
Requirements Engineering for Software Product Lines
Role-based Software Test
Object-based Internet Search