Jupe is structured in different layers. This architecture is partially imposed by the used frameworks and has several advantages. It leads to orthogonality, one of our main design goals, because each layer depends at most on two other layers. This in turn encourages extensibility and reusability since some layers can be replaced to fit other needs and others can be reused for the mentioned extensions. Figure 4.1 shows the five layers of Jupe and their connections.
The normal lines signify dependencies. The model layer depends on UML2, whereas the editparts depend on the model as well as on the figures. The dotted lines have special meanings that will be explained.