OPAL is an umbrella project to develop an integrated set of tools for analyzing software programs. OPAL aims to support analyses ranging from simple bug detectors over metrics up to analyses depending on complex control- and data-flow information. At the core of OPAL is a runtime environment that facilitates the definition of static analyses and which enables their efficient execution. On top of the runtime environment different software engineering tools are built. At the moment, we are developing tools for detecting bugs and for the specification and verification of architectures (Vespucci).

The OPAL project is lead by
  • Michael Eichberg (eichberg ( at ) informatik.tu-darmstadt.de)
  • Ralf Mitschke (mitschke ( at ) st.informatik.tu-darmstadt.de)

Current Members
  • Thomas Schulz formalization of Vespucci’s constraint language and specification of design patterns using Vespucci (Bachelor Thesis)
  • Patrick Gottschämmer, Olav Lenz Eclipse plug-in to facilitate the integration of Vespucci and static analyses engines (Lab)
  • Tabea Born, Robert Alexander Cibulla, Tanya Harizanova, Christian Knapp implement Vespucci 2.0 with support for project-global architecture definitions (Lab)
  • Mateusz Parzonka implements a RESTful WebService to store and manage software architecture diagrams on a central server (Lab)

Previous Members
  • Dominic Scheurer, Alexander Weitzmann, Thomas Schulz, NS Theo Kischka (September 2011) implement the next version of Vespucci (Lab)
  • Minh Hoang Nguyen (August 2011) did a case study related to the modeling of Software Architectures using Vespucci (Master Thesis)
  • Malte Viering (July 2011) worked on the automatic incrementalization of recursive queries
  • Malte Viering, Artem Vovk, Patrick Jahnke, Benjamin Lück, and Sven Amann (April 2011) significant overhaul of the internal structure and user interface of Vespucci (Lab)
  • Dennis Siebert (March 2011) implemented a source code beautifier for Prolog (Lab)
  • David Sullivan (December 2010) prototyped support for efficiently querying large fact databases (Master Thesis)
  • Leo Ross (Oktober 2010) implemented several lightweight static analyses (Bachelor Thesis)
  • Thomas Schlosser (July 2010) implemented an algorithm to transform Java Bytecode into a higher-level intermediate representation (Bachelor Thesis)
  • Tam-Minh Nguyen (June 2010) implemented the first version of Vespucci (Master Thesis)
  • Sebastian Hartte (March 2010) developed a prototype to assess ideas, techniques and concepts related to the efficient execution of declaratively specified static analyses (Master Thesis)

Searching for Members
Are you interested in static analyses? Are you interested in (internal) software quality and how to make sure that a software achieves a certain quality level? Is the design and implementation of software architectures one of your main professional interests?

Are you an expert in Java or Scala? Do you know a specific Java/Scala/Groovy framework or library in and out and want to leverage your knowledge? You think that you are already an expert in Java and want to test your knowledge? Do you want to become an expert in building Eclipse Plug-ins?

If you can answer any of those questions with yes, then this your project! If you want to carry out a bachelor or master thesis just write me an email (eichberg ( at ) informatik.tu-darmstadt.de) or come to my office to discuss potential topics.