Research Projects

Current research projects

Current projects in alphabetical order:

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.

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.

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

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