Research

Research topics

The Faculty of Computer Science stands for excellent basic research and the scientific development of future-oriented application fields. Renowned and internationally networked researchers set the status quo in computer science research. The results are globally visible and recognized. They lay the scientific foundation for the rapid development of computer science. This dynamic is also reflected in the faculty’s broad research portfolio, which includes important sub-disciplines of applied computer science, core computer science, neuroinformatics and IT security.

Bochum as a research location offers the ideal breeding ground for innovative research achievements. In close proximity to institutes such as the Max Planck Institute for Security and Privacy, a lively IT sector and partner universities of the University Alliance Ruhr, interdisciplinary projects can be realized effectively.

Distributed and Networked Systems

Modern systems such as factories, aircraft and cars consist of many components, each of which is specialized for specific tasks. Nevertheless, the overall system consisting of these components must function smoothly. For example, modern cars have a large number of control units to ensure the functionality of the vehicle. These control units work in parallel and must be networked with each other so that they can exchange information such as measurement data or control commands.

Often, the boundaries of the distributed system are not so clear and narrow, as data or computing power from distant data centers must be accessed via the mobile network and the Internet. Regardless of its size or the underlying network architecture, such a combination of independent computers is also called a distributed system, as long as it appears to the user as a single, coherent system.

Challenges

The challenges for the development of networks and distributed systems are manifold and range from the basic functional aspects, i.e. the pure implementation of the desired functionality, to various non-functional requirements such as performance, security, scalability or (energy) efficiency of the proposed system design.

In the future, the use of applications that allow no tolerances in terms of fast, reliable and predictable data transfer, such as remote heart surgery, will increase. Research is therefore concerned with the most diverse aspects of modern computer systems. These include the design and analysis of hardware and software as well as their integration, the simulation and measurement of system behaviour or the analysis and optimization of algorithms under certain non-functional aspects.

Databases and Information Systems

The core challenge in the establishment and further development of databases and information systems lies in the area of data management. Data management deals with the handling of data throughout its entire life cycle: from collection and analysis to the generation of further data resulting from the analysis.

Data is a key input and success factor for all types of data-driven solutions. These include digital systems and advanced analytics, such as machine learning, as well as data-driven applications such as recommendation and question answering systems. The success of these applications depends largely on fast access to high-quality data.

Challenges

Despite the developments in data management in recent decades, the field is constantly facing new opportunities and challenges due to the increasing amount of user-generated data and the emergence of new data models and computer architectures. Research into innovative data processing techniques that exploit the opportunities offered by the latest technologies therefore forms the basis for the development of comprehensive and significant data-driven solutions.

Focus areas

The research area Databases and Information Systems at RUB is concerned with the development of new techniques for the efficient and effective management of decentralized data, in particular with the following research topics:

  • Query optimization: Reducing the execution time and amount of resources used to evaluate queries based on big data sources.
  • Federated query processing: Source selection and query scheduling techniques to efficiently execute queries across decentralized, autonomous sources that form a federation.
  • Data quality: Detection of quality issues including incomplete or incorrect information in data sources.

Cryptography and IT Security

Cryptography, i.e. the encryption of information, forms the basis of modern security systems. It provides the basic building blocks that enable secure surfing and shopping on the internet, email encryption and cryptocurrencies, for example.

IT security is becoming increasingly relevant as digitalization continues to gain momentum and IT enters almost all areas of life, because increasing digitalization is also accompanied by an increasing attack surface for cyberattacks. These can affect private individuals as well as industry, business and government organizations. In addition to data, the Internet of Things and Industry 4.0 are also bringing smart devices and machines into focus as potential targets. Security gaps in the IT infrastructure now not only pose risks to privacy and data misuse, but also concrete physical dangers.

Challenges

As in the entire sub-discipline of IT security, researchers in the field of cryptography must always think about the future. As new technologies, such as the development of quantum computers, progress, existing cryptographic processes can be solved. The challenge here is to develop sustainably secure encryption methods that also protect data from unauthorized access in the long term, but at the same time are so efficient that they can be implemented in a wide variety of (small) devices.

Secure and trustworthy IT processes are essential for the positive and sustainable use of information technology. Due to the continuous development of newer and newer technologies, researchers in the field of IT security are always in a race against time.

Focus areas

In the research field of cryptography, world-leading scientists investigate sub-disciplines of modern cryptography, including, among others: Post-quantum, cryptography, block ciphers, lattice-based cryptography, symmetric cryptography, theoretical cryptography.

  • Secure systems: Development of reliable security solutions to detect and prevent attacks on IT systems. Topics range from secure web applications and the detection of software vulnerabilities to new security protocols. Research in the field of machine learning (ML) is also becoming increasingly relevant here. For example, research is being conducted into the robustness of ML algorithms and attacks against such systems.
  • Embedded security: Secure embedding of computer systems in their physical environment. The subject of the investigations are, for example, methods to prevent hardware manipulation or the reading of cryptographic keys from chip cards and smartphones. Research is also being conducted into securing new types of applications, for example in electromobility or self-driving cars.
  • Security and usability: research into human (mis)behavior as a key component in securing IT systems. Research here is highly interdisciplinary and focuses on the secure interaction between humans and technology. For example, work is being carried out on new password concepts, the security of CAPTCHAs and the detection of “fake” internet ratings.

Machine learning

The ability to learn is a central component of intelligence. Machine learning is the subfield of artificial intelligence that deals with adaptive algorithms. These algorithms independently learn to recognize patterns and regularities in data and use them to make predictions and decisions. Deep learning is a prominent subfield of machine learning that uses artificial neural networks to model patterns and regularities, and which has led to breakthroughs in numerous application areas such as character, image and speech recognition over the last decade. Recent milestones in artificial intelligence, such as the victory of the Go program AlphaGo in a game against the world’s best human player, can also be attributed to artificial neural networks.

Focus areas

Within deep learning, Prof. Dr. Asja Fischer’s team conducts research primarily in the area of analysis and development of probabilistic methods and models. The focus here is on the theory underpinning the methods. Despite the immense success of deep learning algorithms in many areas of application, relatively little is known about their theoretical properties. However, a better understanding of the mathematical properties is of enormous importance in order to make these algorithms more robust, reliable, interpretable and secure. The working group also conducts research into the application of neural networks to exciting practical problems and in interdisciplinary projects.

The following priorities have been set in previous research:

  • Development and analysis of generative models and MCMC-based learning methods
  • Analysis of neural network optimization methods
  • Methods for uncertainty estimation for the predictions of neural networks
  • Biologically plausible deep learning
  • Methods for knowledge graph analysis and deep learning for question answering via knowledge graphs
  • Machine Learning für IT-Security und sicheres maschinelles Lernen

Theoretische Informatik

Die Theoretische Informatik beschäftigt sich mit den theoretischen Grundlagen der Informatik. Zwei Kerngebiete sind die Komplexitätstheorie und die Algorithmik. Forschende im Bereich der Komplexitätstheorie stellen sich die Frage, welche Probleme sich wie effizient lösen lassen. Basierend auf einem formalen Rechenmodell ergeben sich dabei Klassen von Problemen verschiedener Komplexität. Die Komplexitätstheorie untersucht, wie sich diese Klassen zueinander verhalten.

In der Algorithmik werden Methoden zum Entwurf und der Analyse effizienter Algorithmen betrachtet. Die beiden Gebiete, Algorithmen und Komplexität, hängen eng miteinander zusammen. Auch sind Algorithmen eng verknüpft mit Datenstrukturen, da manche effizienten Algorithmen geschickte Datenstrukturen benötigen. Datenstrukturen hingegen benötigen geschickte Algorithmen zur Konstruktion, Modifikation und Abfrage.

Herausforderungen

Viele Probleme haben eine geometrische Komponente, beispielsweise die Abfrage numerischer Daten in einer Datenbank oder die Suche nach einem kürzesten Weg. Algorithmen für solche Probleme nennt man auch kurz geometrische Algorithmen. Diese nutzen, neben allgemeinen Techniken für effiziente Algorithmen, auch Techniken basierend auf den geometrischen Eigenschaften des Problems. Viele der Fragen, die betrachtet werden, sind aus Anwendungen motiviert. Je komplexer dabei die Probleme sind, desto häufiger stellen sich diese als weniger effizient lösbar heraus. Hierfür dennoch nach effizienten Lösungen zu suchen, stellt die Herausforderung dar.

Schwerpunkte

Der Forschungsbereich Theoretische Informatik rund um Prof. Dr. Maike Buchin betrachtet insbesondere geometrische Probleme auf polygonalen Kurven, geometrisch eingebetteten Graphen und einfachen Polygonen. Wie diese miteinander verglichen, zusammengefasst oder in homogene Teile zerlegt werden können, gehört zum Gegenstand der Forschung.

  • Vergleich geometrischer Objekte: Eine fundamentale Frage ist es, die Ähnlichkeit zwischen geometrischen Objekten, z.B. Punktmengen, Polygonkurven oder triangulierten Flächen zu bestimmen. Hierfür existieren unterschiedliche Ähnlichkeitsmaße, deren effiziente Berechnung von der Komplexität des Maßes und der Objekte abhängt.
  • Analyse von Bewegungsdaten: Heutzutage treten Bewegungsdaten, also diskrete Sample einer kontinuierlichen Bewegung, in immer größeren Mengen auf. Geometrisch sind diese Daten Polygonkurven in Zeit und Raum, wobei diese in der Regel fehlerbelastet und eingebettet in eine Umgebung sind. Diese zu analysieren erfordert geeignete effiziente Algorithmen.
  • Analyse von geometrischen Netzwerken: Netzwerke, z.B. Fluss- oder Straßennetzwerke, treten in vielen Kontexten auf. In deren Analyse stellen sich unterschiedliche Fragen, beispielsweise wie man die Qualität verschiedener Netzwerke vergleicht oder basierend auf einer großen Menge an Bewegungsdaten auf einem Netzwerk selbiges rekonstruiert. Auch hier variiert die algorithmische Komplexität der resultierenden Probleme stark.

Praktische Informatik

Die Forschungsarbeiten im Bereich Betriebssysteme und Systemsoftware befassen sich mit dem Entwurf, der Entwicklung und dem Betrieb effizienter, systemnaher Software. Betriebssysteme sind in Computersystemen für die effiziente Verwaltung vorhandener Betriebsmittel (z.B. CPU-Zeit, Speicher) verantwortlich und gewährleisten den sicheren Ablauf von Systemaktivitäten (z.B. Prozesseinlastung).

Herausforderungen

Durch den rasanten technologischen Fortschritt hinsichtlich Hardware und Software rücken Betriebssysteme stärker in den Fokus. Die Hardware heutiger Rechensysteme bietet eine Vielzahl unterschiedlicher Einstellungsmöglichkeiten zur Performancesteigerung (z.B. Turbo Boost) und Energieeinsparung (z.B. zahlreiche Tiefschlafmodi). Diese individuellen Einstellungen setzen eine ganzheitliche Systemsicht voraus, über die lediglich das Betriebssystem verfügt. Für zukünftige Computersysteme kommt Betriebssystemen daher eine zunehmend wichtiger werdende, zentrale Rolle zu, um Weiterentwicklungen der Hardware (z.B. neue Hardwarearchitekturen wie RISC-V) und der Software (z.B. neue Programmiersprachen wie RUST oder Konzepte wir Container-Software) gezielt auszureizen.

Schwerpunkte

Die Forschung konzentriert sich insbesondere auf die parallele und energieeffiziente Ausführung von Prozessen unter Ausnutzung verfügbarer Rechenkerne.

  • Energiebewusste Systeme: Forschung an Konzepten zur Etablierung energiebewusster Systemsoftware. Untersucht werden heterogene Systeme unterschiedlicher Klassen: Von eingebetteten Systemen bis hin zu Systemen aus dem Bereich des Hochleistungsrechnens.
    Die sorgfältige Verwendung der zur Verfügung stehenden Energieressourcen für die Durchführung anstehender Arbeitsaufträge (z.B. Prozesse, Programmfäden) spielt beim verantwortungsbewussten Umgang mit Systemressourcen die entscheidende Rolle: Nicht-funktionale Systemeigenschaften (z.B. Effizienz, Betriebsdauer) werden nur durch eine möglichst optimale und reibungsfreie Anpassung von Software- und Hardwarekomponenten erreicht. Die enge Verzahnung von Betriebssystemkomponenten mit der Anwendungsebene einerseits und der zielgerichtete Einsatz hardwareseitiger Mechanismen zur Reduktion des Leistungsbedarfs zur Betriebszeit andererseits sind die Grundvoraussetzung für die Etablierung von Energiebewusstsein auf Systemebene.
  • Projekte im Bereich Energiebewusste Systeme umfassen Forschungen zur energiebewussten Programmierung, der energiebewussten Ablaufplanung und zum Entwurf und Betrieb energiebewusster Betriebssystemkomponenten. Sie werden durch die Deutsche Forschungsgemeinschaft (DFG) gefördert, beispielsweise durch den SFB/Transregio „Invasive Computing“ (InvasIC).

Software Engineering

Der Forschungsbereich Software Engineering rund um Prof. Dr. Thorsten Berger verbindet grundlegende mit angewandter Forschung, um die Softwareentwicklung der nächsten Generation von intelligenten, autonomen und variantenreichen Softwaresysteme zu automatisieren.

Hier werden neue Ansätze zur Softwareerstellung, -analyse und -evolution untersucht. Unsere Anwendungsdomänen sind im Wesentlichen Automotive-Systeme, Systemsoftware (z.B. Linux kernel), Softwareökosysteme (z.B. Android Apps) und mobile Roboter.

Herausforderungen

„Software is eating the world“ ist ein bekanntes Zitat von Marc Andreessen aus dem Jahr 2011. Software isst noch immer die Welt – Software-orientierte Firmen dominieren die Märkte – wenn auch ein klein wenig anders als 2011. Heutzutage ist Software zunehmend datengetrieben, variantenreich und enthält Technologien der künstlichen Intelligenz (AI). Während sich allerdings Märkte und Technologien rapide ändern, stellt das Gebiet Software Engineering verschiedenste Methoden und Werkzeuge bereit, die diese rapiden Technologie-Änderungen überwinden und Software immer schneller entwickeln lassen, um auf neue Märkte reagieren zu können. Während die Entwicklung von Software für eine sehr lange Zeit eine hochkreative Aktivität bleiben wird, durchgeführt von menschlichen Entwicklern, erhöhen moderne Methoden und Werkzeuge des Software Engineerings das Niveau der Abstraktion und der Automatisierung.

Schwerpunkte

  • Model-Driven Software Engineering (MDSE): Softwareentwicklung mit zentraler Verwendung von Modellen und domänenspezifischen Sprachen (DSLs – Domain-Specific Languages). Wir entwickeln DSLs für variantenreiche Software (sog. Softwareproduktlinien), mobile Service-Roboter, selbstfahrende Autos, und weitere interessante Anwendungsdomänen. Außerdem verbessern wir Technologien zur Sprachentwicklung, wie z.B. Metamodellierung, Language-Workbenches und Projektionales Editieren.
  • Software Product Line Engineering (SPLE): Software is immer häufiger variantenreich, um flexibel auf verschiedene Nutzungsszenarien, Optimierungen (z.B. Energiebedarf) oder Hardware-Umgebungen reagieren zu können. Solche Software wird häufig mit unstrukturierten, ad hoc-Methoden wie z.B. Cloning realisiert, aber idealerweise sollte man Software automatisch basierend auf den gewünschten Features generieren oder ableiten können. Wir entwickeln und verbessern Techniken um diese sogenannten Softwareproduktlinien effizient entwickeln zu können, auch in enger Zusammenarbeit mit der Industrie.
  • Software Analytics (SWA): Das Re-Engineering und die Qualitätssicherung (z.B. des korrekten Verhaltens) von Software benötigt häufig die Analyse von Quellcode und anderen Softwareartefakten, was eine Herausforderung darstellt. Wir entwickeln statische Quellcode-Analysetechniken und verwenden diese unter anderem auch als Basis unserer MDSE- und SPLE-Technologien. Darüber hinaus erlaubt uns die großskalige Datenanalyse von Software-Repositories (z.B. Android Apps auf Google Play oder Repositories auf GitHub), dass wir empirische und statistisch signifikante Einsichten in reale Softwareentwicklung und deren Phänomene erhalten.
  • AI Engineering (SE4AI/AI4SE): Software Engineering unterstützt die Entwicklung intelligenter Systeme (SE4AI), genauso wie umgekehrt AI die Entwicklung von Software unterstützt (AI4SE). Wir arbeiten auf beiden Gebieten, wobei wir in SE4AI das Management (z.B. Versions-/Varianten-/Experiment-Management) von Artefakten des maschinellen Lernens (z.B. Modelle) unterstützen, sowie in AI4SE Techniken aus Basis des maschinellen Lernens zur Qualitätssicherung (z.B. Defektvorhersage in Software) und die Entwicklung variantenreicher Systeme (z.B. durch Recommender-Systeme) entwickeln.