Our research in software engineering is concerned with the early phases and activities in the development of software, or more general software-intensive technical systems. These early activities are concerned with the elicitation and validation of the software and systems requirements. It is known, that the removal of errors in these phases can be extremely costly. In fact, requirement errors are among the main reasons for software project failures today.
More specifically, the motivation of our research is the insight that requirements engineering and design of software systems are inevitably intertwined. Swartout and Balzert described the “inevitable intertwining of specification and design” already in 1982 (Swartout and Balzer 1982). This observation becomes evident with the success of agile methods for software development, in which short feedback cycles support this tight intertwinement. This is remarkable, because the success of starting design activities while the requirements are still under investigation, was doubted by many. In particular, any approaches that systematically aim to transform requirement models into design models suffer from the observation that, in larger projects, requirements are usually not stable and never completely modelled.
Today, there still is a perceived mismatch between agile, code-centric software development with concurrent requirements engineering and software design on the one hand and model-based software engineering with systematic transformations between requirements, design, and code on the other hand. With our research, we want to conciliate model-based software engineering with development processes that have fast and agile feedback cycles and thus combine the benefits of both approaches.
In particular, we are interested in providing systematic, yet low-cost model-based design space exploration to support making good design decisions, which are a major success factor for mission-critical software-intensive technical systems. This support shall enable well-informed trade-off decisions in software design, in requirements elicitation and in requirements analysis while at the same time incurring minimal overhead for the developers.
With respect to this aim, we have contributed to the following main topics (among others)
- Qualitative reasoning in model-based design space exploration
- Energy efficiency prediction
- Survivability evaluation
- Continuous, automated update of performance models
Additionally, we are interested in empirical studies on software architecture topics, especially on the empirical validation of software architecture approaches.