Software plays an increasingly strong role globally and must be seen as an essential material of the future. Today, software pervades all relevant industries, including many that traditionally would not have considered themselves as software manufacturers, such as the automotive industry, medical technology, rail transportation, avionics, and telecommunications. The progress of each of these industries increasingly depends on software. For example, 70% of innovations in the automotive industry already occur at the level of embedded software.
One of the greatest challenges in the field of software engineering is the longevity of software. Many software systems must work reliably and dependably over years, while at the same time facing pressure to adapt to constantly changing circumstances in order to remain usable.
This leads to two core problems. On the one hand, software systems must be updated when the technologies on which they were developed are modernized. Software comprehension is also a central hurdle - that is, how an existing software system can be effectively understood by developers. On the other hand, software systems must also be adjusted when usage requirements change. User-oriented design approaches provide methods that contribute to a better understanding of the application context and active involvement of stakeholders in the development and maintenance process.
New developments, such as the increasing industrial use of machine learning (ML) and artificial intelligence (AI), present additional challenges for the longevity of software. ML/AI are reasons for hope that software will one day be able to adapt to changing circumstances to a certain degree autonomously. One of the central questions here is how software development needs to change when incorporating ML/AI components. Additionally, it is important to understand and utilize the enormous potential that ML/AI technologies offer to improve the development of long-lasting software itself.
Our main focus is on the following topics:
- Model-Based Software Development
- Empirical Methods in Software Engineering and Human-Computer Interaction
- Tools for the Construction and Analysis of Software Systems and their Use