Subsections

Extensibility

Extensibility is one of the main design goals of Jupe. We try to build up an architecture that facilitates extending and enhancing. The most important extensions would be the support for other programming languages than Java and for other diagram types than class diagrams. Figure 6.1 shows the five layers of Jupe including support for C++ and UML sequence diagrams.

Figure 6.1: Layered architecture with support for C++ and sequence diagrams.
Image layers_ext

Programming languages

In principle, Jupe can be enhanced to every programming language supported by the Eclipse platform. Conserving the layered architecture described in chapter 4, this would mean to add another source layer and its synchronization with the UML2 layer. It would be absolutely independent of the Java source layer.

As UML2 is an implementation of the UML standard and independent of the programming language, no adaption of it would be necessary. The other layers, model, editparts and figures could be reused, too. Depending on the programming language it could be unavoidable to add or hide small parts. E.g. the concept of interfaces isn't known in C++, so the class diagram editor should not provide their creation when working with it. On the other hand, there could be features of UML which are supported by another programming language, but not by Java. They are consequently neither included in our model, nor in the editparts nor figures. Although small adaptations are necessary, most parts of our work could be reused.

The actual work would be to provide synchronization between the source code in the new programming language and UML2. It consists of a similar work as described in chapter 5.

Diagram types

The UML standard contains 13 diagram types, only one is included in Jupe. To make the plugin more useful, at least the support for sequence diagrams and use case diagrams should be added. The layered architecture of Jupe allows to reuse certain parts of our work. The source layer, as well as the UML2 layer are independent of the diagram type. Since the UML2 layer is only connected to the model layer using an observer mechanism, no adaption of it would be needed.

On the contrary, adding a new diagram type demands to develop new model, editpart and figure layers. They highly depend on the diagram type and cannot be reused on code level. Their development could be resembling to the work described in the sections 4.3 and 4.4. The use of a model layer is essential for GEF, since it requires an application model. Further, the concept of property IDs should be implemented in a similar way to the class diagram model in order to integrate the new diagram type in the plugin.

http://jupe.binaervarianz.de