Research Areas

In our understanding, Software Engineering is the art of designing useful software products in an efficient way. More precisely, we see “build the right software” and “build the software right” as overarching themes in our research.

Building the software right means designing a software product to be as „helpful“ as possible to its users. One aspect of this is – of course – requirements engineering. However, this definition falls far too short. „The right sofware“ further addresses issues of interacting with the system, explaining the system to the user (so that the user can build trust in the system), and organizational issues such as involving users in the design, transition, and decision-making processes. To achieve this, software engineers, product owners, AI experts and users must find new ways of working together as a team, far beyond the current scope of agile processes.

Building the software right means developing a software product so that it is of the highest quality. At best 100% guaranteed fault free. Standard approaches such as testing or code reviews can undoubtedly improve software quality. However, these methods can only be applied in domains of low criticality. In critical systems such as aerospace or even real-time financial systems, errors must not occur under any circumstances. To achieve this, efficient combinations of automated and human quality assurance mechanisms must be installed. The vision is for human and AI-powered quality assessors to work hand-in-hand as a team.

 

Current Areas of Research

Build the right software – Pervasive Assistance

In the 2000s, mobile phones and data communication lead to a fully connected world. Information became omnipresent. As a consequence, dozends of smart assistant systems emerged helping us in our daily lives. Since the mid 2010s, a new generation of mobile device became popular: wearables. In contrast to mobile phones, these small devices are typically equipped with a limited set of sensors and thus allow to capture some idea of their user’s contexts. However, they have almost no way of communicating pervasively with the user. The second half of the 2020s will very likely be dominated by various types of smart glasses. These gadgets will for the first time allow for truly pervasive assistants. Equipped with smart cameras, they can both capture the interesting part of a users context as well as providing information pervasively – by projecting it directly in the users points of view. Combined, this will reshape our day to day processes as much as the introduction of efficient search and index technology in the web.

In our current research, we focus on design and evaluating such assistance systems methodologically.

Build the software right – AI-supported Programming

AI currently has a huge renaissance. This is mostly due to the breakthroughs in modern parallel computing hardware and GPUs. This allows for efficient training and evaluation of huge neural networks. Such networks have proven to be by far more efficient than any rule-based approach for complex sensory task like image recognition. In recent years, the approaches have been successfully transferred to many parts of private life and work processes.

In our current research, we focus on applying AI-based methods in software development in order to make it more efficient and less error-prone.

Build the software right – Dependable Software

Software allows for many incredible and new functionalities. However, our current software quality assurance processes mostly focus on pure IT systems. For software in technical systems two major problems exist. On the one hand, it is only to some limited extent possible to develop the software incrementally in an agile way (for example a thrust control in an airplane can not be deployed incrementally). Secondly, and maybe even more important, testing alone is neither practical nor sufficient for showing correctness of the software. So new approaches to design, analyse and verify such software systems are needed.

In our current research, we focus on how systems engineering, software engineering and safety engineering can be combined such that an effective combination of human and computer-based quality assurance can be achieved. A particular focus is the intuitive application of formal methods and the evaluation of AI-based functions.

Build the right software – Human-centric programming of robots

Robots are by far the most flexible machines mankind has ever designed. However, currently robots are almost exclusively used in large batch series in industry. The main reason is our current understanding of production automation. The current paradigm follows the mantra “analyse once – find optimal solution – derive optimal process – follow this process”. This mantra is the basis for today’s very high production efficiency. On the other hand, it is also the basis for today’s throw-away-society.  Following this mantra, we can only automate fixed processes. As a consequence, underspecified tasks or flexible problems (like repair) can not be automated. We believe the time is ripe to fundamentally change this and design robots such that can flexibly adapt to tasks and ultimately team up with human co-workers. We call this productive teaming.

In our current research, we focus on how to make programing robots more easy or even generate programs automatically as well as designing concepts to measure how robots can prove their human co-workers that they are “trust-worthy”.

 

optiPlan – Robot Trajectory Optimization for Relaxed Effective Tasks

optiPlan – Robot Trajectory Optimization for Relaxed Effective Tasks

Many industrial effective tasks, e.g., welding, cutting, allow a certain freedom during their execution, e.g., the robot’s tool might have a certain deviation during welding. This freedom can be used as an extra degree of freedom for robot trajectory optimization. In this project, we formalize these tasks and optimize robot trajectory.

Read More
checkAll

checkAll

In modern software and systems engineering formal verification gets more and more important to ensure safeness of safety critical systems. Especially, if the systems get in contact with human beings. Therefore, we research for new techniques in the domain of formal verification for software intensive systems.

Read More
Fine-Grained Visual Recognition of Retail Products

Fine-Grained Visual Recognition of Retail Products

Open set recognition at scale is an issue for computer-vision systems, especially in the retail industry in which scalable AI-related technology solutions at the physical store level have not been deployed to the best of our knowledge.

Read More
VECS

VECS

VECS is an Eclipse-based specification framework for the analysis of software-intensive systems. It includes an implementation of the SAML language and model transformations to verification engines. Currently, connectors to high-level Software Engineering tools (Rhapsody) are being developed.

Read More
TouchAuth

TouchAuth

Smart mobile devices are gaining widespread acceptance as displays sizes, computation power and mobile data transfer bandwidth increase. However, this also leads to new security issues. Here, we develop new bio-metric authentification methods. The core idea is to use soft keyboards as a biometric feature for authentification.

Read More
API Specific Automatic Program Repair (ASAP-Repair)

API Specific Automatic Program Repair (ASAP-Repair)

API Specific Automatic Program Repair or how can we find and fix API Misuses automatically? Nowadays, programmers re-use much code from existing code libraries by means of Application Programming Interfaces (APIs). Due to missing or outdated documentation as well as misunderstandings on how to correctly use a particular API, programmers may falsely apply that API.

Read More
Opti-Spec

Opti-Spec

In early stages of software engineering projects, several fundamental decisions must be made. At the same time, there exists a number of potentially antagonistic goals and/or requirements. If these decisions are not simply yes/no decisions, but are numerical in nature, then it is necessary to find an optimal configuration in the design space.

Read More
SafeMotion

SafeMotion

Autonomous mobile robots gain more and more importance. In the nearest future, they will be a part of everyday life. Therefore, it is critical to make them as reliable and safe as possible even in an environment cluttered with unexpectedly moving obstacles.

Read More
Elastic Coverage Path Planning

Elastic Coverage Path Planning

Industrial surface processing by robots - applications such as cleaning, material removal or painting - are characterized by low automation level and consequently remain manually intensive. For automated robot control in such applications we need a solution of the Coverage Path Planning (CPP) problem, which could be performed either off-line or on-line.

Read More