The Fujaba Tool Suite (shortly: Fujaba) is an Open Source CASE tool providing developers with support for model-based software engineering and re-engineering. The Fujaba project aimes at developing and extending the Fujaba Tool Suite and thus offering an extensible platform for software engineering researchers.
Originally, Fujaba was aimed to support software forward and reverse engineering. That is why Fujaba is an acronym for "From UML to Java and back again".
The Fujaba project started at the software engineering group of the University of Paderborn in 1997 and is now being developed by several universities spread all over Germany and several other countries. In 2002 Fujaba has been re-designed and became the Fujaba Tool Suite with a plug-in architecture allowing developers to add functionality easily while retaining full control over their contributions. Since 2006 there is a Fujaba integration into the Eclipse platform.
Fujaba followed the model-driven development philosophy right from its beginning in 1997. It combines UML class diagrams, UML activity diagrams, and a graph transformation language (so called Story Patterns) and offers a formal, visual specification language that can be used to completely specify the structure and behaviour of a software system under development. The structure is specified by UML class diagrams, the behaviour is specified by so called Story Diagrams, a combination of UML activity diagrams and Story Patterns. Story Patterns are graph transformation rules specifying modifications of object structures (models). Based on these structural and behavioural specifications executable code (e.g. Java code) is generated.
Besides forward engineering Fujaba provides support for several other software engineering goals and application domains. There are fujaba extensions (plug-ins) providing support for reverse engineering, model-to-model transformations and synchronisation with triple graph grammars (TGGs), modelling, validation and verification of embedded real-time systems, MOF-based meta-modelling, teaching object-oriented software engineering, and many other applications.
Besides the software engineering group in Paderborn, quite a number of research groups have also chosen Fujaba as a platform for MDD/MDA related research activities. Today universities from at least the following countries are developing Fujaba or are working with Fujaba and related tools:
In addition, quite a number of Fujaba users send requests for more functionality and extensions.