Research DirectionOur research focuses on models, algorithms, and tools for the construction and analysis of reliable software systems, in particular (tools in whose development we were involved are given in parentheses):
for component-based design (download Chic)
model checking and static analysis (download BLAST,
analysis and comprehension of large systems (download CrocoPat or CCVisu)
- Formal verification of real-time systems (download Rabbit).
The conceptional basis of our work is in software engineering, programming languages, data structures and efficient algorithms, and mathematical logic. Our goal is not only to develop new concepts, but also to provide efficient tool implementations derived from the research results.
Bachelor and Master Theses
For more information about theses on Bachelor and Master level, please visit our teaching page.
More About Our Topics
You are currently looking for a supervisor? It seems appealing to you to help making software more reliable? Then we might be a good address for you. We work on models, algorithms, and tools for the construction and analysis of reliable software systems. Let me explain this a bit:
Models: To concretely talk about software code or a software component, we need to formalize it. If you see the advantage of formalizing concepts using mathematical notation, and formulas don't make you scared, then you should consider my projects. However, I do not consider myself as a theoretician.
Algorithms: After we have the (formal) models, we want to analyze, transform, or execute them. We need efficient algorithms for this, because software models are usually large. We not only write the algorithms on paper, but also implement them into executable code, in order to explore the algorithms and to improve their performance on real software (models).
Tools: We want to release complete tool implementations of our algorithms to the community, in order to save their time, and to let them profit from our work. Even people from industry are looking at us and have our tools integrated into their commercial products. But there is also another reason for this: to explore new algorithms, we don't want to start every time from scratch. We integrate the new algorithms into our tool framework; we use existing components, but sometimes we have to implement our own new infrastructure.
Reliable software systems: One of the most challenging part about writing programs (or, more popular, developing software) is to make them reliable, which includes, e.g., running without failure. There is a large community of researchers (including myself) who believe that we will find ways to construct complex software systems that never fail.
Construction and analysis: The methods and techniques that we are working on aim at helping software engineers to achieve the goal of error-free software; in the design phase, during programming, or in the quality assessment phase of the software project.
Explore: The short explanation above should give you an idea of the research topic. To get a more detailed insight into my work, you are invited to explore my home page, look at the projects/tools I am working on, and how the papers look like. If you are already at the university, you are always welcome to stop by my office for a chat, or send e-mail to set up an appointment.
Apply: If you are applying for a summer internship, send your complete application
material (CV, transcripts, statement of purpose) via e-mail directly to
me, and include the string "app-cs-beyer" in
the Subject line of your letter (or e-mail), just to
let me know that you have read this web page before you sent your
About University of Passau.
Contact: Dirk Beyer