Our research is dedicated to developing new technologies that help to construct high-quality software in a productive way.
Our collective goal is to use, advance and create techniques from the fields of programming languages and software engineering to aid in current and future challenges to software development ranging from distributed computing and software security to experimental evidence.
Below we give an overview of selected projects at STG:
MAKI creates an innovative premise for the communication systems of the future. Its aim is to be more adaptive to changes, particularly during ongoing operations. This could facilitate, for instance, the ability to stream video on a smartphone in high quality without interruptions in spite of busy or overloaded mobile networks. Users would be able to rely on steady and reliable reception even while attending festivals or crowded sporting events.
Our specific project started in 2017. In the context of MAKI, we develop language abstractions and type systems for software-defined networks, which provide guarantees about the correct runtime behavior of programmable networks already at compile time.
Crossing is a collaborative research center focussed on providing cutting-edge cryptography solutions. Our research within Crossing focusses on bridging the gap between crypto experts and software developers. This separation of roles is vital since studies have suggested that software developers struggle in using cryptographic libraries, mistakes caused by which can have disastrous solutions. We develop methodologies and tooling to equip the developers with the right support to avoid cryptographic abuses in their code.
Our research aims to protect smart cities from disasters. For this we are developing resilient infrastructures that save human lives.
Within the area of information, the focus lies on autonomous composition of ICT services from whatever resources still available. Especially the role of mobile edge computing as well as distributed and decentralized services to support disaster response and recovery is analyzed. We provide software infrastructure that makes all applications applicable in disaster scenarios.
Our research focusses on designing and implementing program analysis to detect vulnerabilities in hybrid applications. Current analysis techniques target one domain or language and cater to homogenous applications. Modern applications however comprise of more than one programming language, owing to their hybrid nature a.k.a web-based front-end with a java based backend. We are working on developing generic analysis that relies on information that have tendency to span multiple languages like variable names, and parameters to identify sources and sinks. As part of our research, we will also aid secure code generation and secure api usage by expanding our in-house open-source framework CognICrypt to support multiple languages and development environments.
Furthermore we are also working on decentralized (cyber-)security solutions. Our goal is to avoid a central authority and provide resilient means of communication that include powerful device verification, is scalable and works in a decentralized fashion. Thus, it can handle different attackers as well as complete network outages. The impact of compromised devices in such a network is to be limited and appropriate reactions should be explored.
Software factory 4.0 is a multi-year project focussed on developing automation techniques to adapt legacy software to meet the modern requirements owing to technological advancements. Within this project, we are developing techniques to extract modules out of unstructured, large C-projects. The extracted modules can be used to better organize the project into Software product lines. As part of the project, we also actively advance developments with Phasar a C- static analysis framework.
Our research is dedicated to developing new technologies that help to construct high-quality software in a productive way. Part of our research is in programming language design and implementation. One key theme underlying our current work is aspect-oriented and component-based software development. The goal is to support developers in clearly expressing the design structure of the systems they build and to enable software construction as an assembly of modular (reusable) services. Another thread of our research focuses on intelligent programming environments that provide means to manage and explore the software space to enable the static analysis of a variety of software properties on the fly including design and coding styles, and for better supporting software comprehension and reengineering.
Our work is funded by the following organizations:
European Research Council (ERC)
Deutsche Forschungsgemeinschaft (DFG)
German Federal Ministry of Education and Research (BMBF)
Hessen State Ministry for Higher Education, Research and the Arts (HMWK)