About Us

The main research foci of the Research Group Software Architecture are software engineering, design, and architecture. We specialize in engineering of distributed systems and other software technologies such as virtualization, containerization, deployment, database, IoT, and AI software technologies.

We seek to contribute to core challenges of software engineering. Key challenges addressed by our research are: Software is, unlike any other man-made product, constrained more by intellectual complexity than by fundamental laws of physics. It can be argued that software is among the most complex things ever produced at a large scale by humans. Finding and validating well-fitting software abstractions is key to managing this complexity. Software is a product that must continuously change at a pace unknown to other man-made products, and constant change is a major complexity driver.

Our research group has provided many contributions to general software design and architecture topics such as our pioneering works on design and architecture patterns, architectural decisions, architecture metrics, architecture traceability, and many more. We have made major contributions in distributed systems engineering and their continuous release with core topics such as distributed systems patterns, service and cloud architectures, and engineering methods for microservices, distributed APIs, blockchains, DevOps, and continuous delivery. For this we perform research based on and extending software modelling methods and related quality measures in areas such as domain-specific languages, model-driven development, architectural decision modelling, (semi-)automated compliance checking and monitoring, software pattern modelling, and models at runtime. Finally, a core focus is also on empirical software engineering, where we perform explorative (often qualitative) research using methods such as pattern mining, grounded theory, and model-based qualitative studies, and focus on quantitative empirical studies such as controlled experiments or runtime studies of distributed system architectures.