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.
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 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.
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.
http://jupe.binaervarianz.de