Research Projects

Current research projects

Current projects in alphabetical order:

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.

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.

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.

Security modelling in system architectures

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 secure software. In order to cope with the high complexity introduced by solutions of security requirements in software architecture, appropriate modelling techniques are required. While there have been some approaches to security modeling in recent years, none of them address the problem of complexity that arises when modeling security-related concepts. In this research project, we aim to develop a new approach to build lightweight and easily accessible security models for software architectures or IT architectures. We want to investigate which practical obstacles hinder the use of existing modeling concepts in industrial and academic contexts. Based on this, we want to develop new approaches to mitigate the obstacles and thus create a more usable approach for security modeling.

Transformation towards Test Automation
  • 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. On the one hand, this requires a definition of testability and factors that hinder and promote it. On the other hand, testability does not guarantee automatability. This must be considered as well. Enabling these features of the software and the transformation of manual tests into automated tests can be considered as refactoring tasks.

Past research projects

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