Research Unit Software-intensive Systems
The research area Software-intensive Systems deals with decision-making and optimisation issues in loosely coupled, networked and collaborative systems. The increasing networking of systems and the growing complexity of software applications require innovative approaches to enable efficient decision-making and optimisation. Ongoing research in this area is not only pushing technological boundaries, but also creating new opportunities for innovation and progress in various industries and areas of society.
It is impossible to imagine computer technology without software. It may be less obvious that systems engineering is essential when creating computer-based systems, whether such a system is software alone or hardware (electronics or mechanics) plus software. This is the subject of our specialism ‘Software and Systems Engineering’.
More specifically, an essential part of systems engineering is dealing with what kind of system should actually be built, what it should be able to do, etc. This is done in what is known as requirements engineering. This is done in what is known as requirements engineering, so that the system will also be useful once it has been created. A system of non-trivial size and complexity must have an architecture, which in turn also depends on the requirements. The process of finding and defining an architecture in the context of systems engineering is called architecting.
Many computer-based systems are interactive, i.e. users interact directly with them via so-called user interfaces. These are usually implemented primarily in software, even for systems with hardware. It is essential that the system is also easy to use.
While user interfaces today are mostly graphical, there are also many other modalities and combinations of these. The use of several modalities is referred to as multimodal user interfaces.
As the manual creation of user interfaces is very time-consuming and error-prone, attempts are being made to generate them (partially) automatically. This is done from models at a higher level of abstraction, which are gradually transformed into other models and finally into executable software that implements the user interface.
Such models must contain knowledge about the communicative interactions as well as knowledge about what is being communicated with the system in the first place. Semantic technologies are often used to visualise and process this knowledge.