ModGraph - Documentation

What is ModGraph?

ModGraph is a lightweight graph transformation engine built for and with the Eclipse Modeling Framework. The approach aims for total model driven software development using a mostly graphical environment. Therefore it combines the added value of graph transformations with well-known EMF Ecore class diagrams and Xcore (a textual syntax for Ecore and its behavior). That means, a developer uses only models and generates all the code needed to get a fully functional programm. Such a model is called an executable model.

A ModGraph graph transformation rule.

ModGraph and the EMF World

How to work with ModGraph?

With ModGraph, complex in-place model transformations may be specified at a high level of abstraction. Its rule language supports parameterized graph transformation rules with pre- and postconditions, multi-objects, negative application conditions, and OCL / Xcore expressions for specifying constraints, attribute values, and paths. Each rule refines an operation defined in an EMF Ecore class diagram or an Xcore model. ModGraph is tightly integrated with the EMF and Xcore code generator since it extends the generated EMF code with the code generated from graph transformation rules. Alternatively ModGraph provides a transformation engine, that transforms a graph transformation rule into Xcore model elements. In order to keep things simple and to value the added value of graph transformations, simple or rather procedural operations may be implemented in Xcore.
(For more detailed information see Scientific Publications and Examples.)

Why ModGraph?

Over the last decades programming languages evolved from assembler code into high level object oriented programming languages. Executable & graphical models are the next step of abstraction. These models are often only partially executable like it is the case within the Eclipse Modeling Framework (EMF). It provides code generation from structural Ecore class diagrams. The EMF code generator creates code for classes, attributes, references and elementary operations (setter or getter). For user modeled operations EMF creates only empty methods, which have to be implemented by a programmer.
Here ModGraph steps in: ModGraph supports behavioral modeling of complex operations based upon graph transformation.

Programming goes modeling: Increasing the level of abstraction.

ModGraph and Eclipse.

How about Eclipse integration?

As ModGraph is an eclipse plugin it is seamlessly integrated: ModGraph provides its own view and project wizard. Furthermore, to ease development, a dashboard and cheat-sheets are available.

Who develops ModGraph?

ModGraph is a research project at the University of Bayreuth, Chair of Applied Computer Science 1 - Software Engineering.
 Uni Bayreuth AI1 ModGraph - logos