Subsections

Frameworks and libraries

Jupe is based on external work. We use the Eclipse Modeling Framework (EMF) [7], the EMF-based UML 2.0 Metamodel Implementation UML2 [6], the Graphical Editing Framework GEF [5] and of course the Eclipse platform [4]. All used frameworks and libraries are open source software.


Eclipse

Jupe is a plugin for Eclipse and thus cannot be run as stand-alone application. The main mechanisms to extend Eclipse are the so-called extension points. These are entry points defined by the Eclipse platform, which can be used by a plugin in its plugin.xml file. Besides information like the text of new buttons, links to icons and IDs for the extensions, it contains the qualified names of the classes of Jupe that provide the extensions. Thus, the plugin.xml file is the connection between the Eclipse platform and the org.jupe.* packages. The following table shows the most important extension and their corresponding extension points.

Beyond the extensions, Jupe makes a lot of use of the Eclipse API. [1] and [2] provide detailed information how to use it. The Java support is developed with the help of the Java Development Tools (JDT). They provide classes and interfaces to access the different parts of the Java programming language, like packages, classes and methods.


EMF and UML2

EMF is a modelling framework and code generation facility for building tools and other applications based on a structured data model. In Jupe we use the EMF based UML2. It is an implementation of the UML metamodel as described in [9]. Its objective is to provide a usable implementation of the metamodel to support the development of modelling tools. UML2 offers classes and interfaces for every part of the UML standard, such as classes, associations, properties, packages and dependencies, as well as some utilities. Using it we possess a correct and complete implementation of the standard with a practicable API.

However, UML2 doesn't include how diagrams look like. The data model only contains non-graphical information which are independent of specific diagram types like class diagram.

GEF

The Graphical Editing Framework (GEF) allows developers to create a rich graphical editor based on an application model. GEF contains the Draw2D plugin. It provides a layout and rendering toolkit for displaying graphics. The framework offers many common operations that can be used and extended for a specific domain. It employs an MVC (model-view-controller) architecture which enables simple changes to be applied to the model from the view.

An application that uses GEF has to provide three classes for every graphical object. The application model class which contains the graphical information of an object, as well as its properties. In addition, you need a so-called editpart and a figure, which is based on the above mentioned Draw2D. The last two build the view of the architecture, whereas the application model is evidently the model.

XStream

XStream is a simple library to serialize objects to XML and vice versa. It offers a high level facade to simplify common use cases, supports circular references, allows customization of conversion strategies and requires no modifications to the objects to serialize.

http://jupe.binaervarianz.de