|
Textual concrete syntaxes for models are beneficial for many reasons. They foster usability and productivity because of their fast editing style, their usage of error markers, autocompletion and quick fixes. Several frameworks and tools from different communities for creating concrete textual syntaxes for models emerged during recent years. However, they fail to provide solutions for explicit textual views as well as incremental update capabilities needed within Universally Unique Ìdentifier (UUID)-based modelling environments. It needs to be distinguished between two different flavours of the term view. View (I): The definition of what elements are displayed in a certain type of view. This is also called a view-point. View (II): For the same view-point it might still be necessary to have different instances showing the abstract concept on the same level of abstraction but providing different means of presentation. Therefore, information that are only used for the presentation need to be stored and managed seperately to the actual model. Within graphical modelling several approaches have been developed that allow to define explicitly holistic, partial or combined graphical views for models. The Graphical Modelling Framework (GMF), as part of the Eclipse Modelling Framework (EMF) provides means to define and generate views for arbitrary metamodels. Furthermore, these views are not view-only but rather provide functionality to edit the underlying models through its views. The information on how a specific model element is displayed in the graphical representation is done using a decorator pattern based approach. The origninal decorator pattern is used to non-intrusively, dynamically add functionality to a class that is wrapped by the decorator. In our concrete case the functionality consists of information that is added to a model element that describes how it is represented in a certain view. This means that the graphical information is clearly seperated from the actual model content, allowing to define different views on the same model elements. Rational Rose even showed this separation to the user. If a diagram element referred to a model element that was not accessible anymore, due to whatever reason, the diagram element was still shown, however with an indicating small M circle attached to it. On the other hand several frameworks that provide textual editing support for models have been presented over recent years. Frameworks such as TCS or TEF allow the definition of textual concrete syntaxes (CTS) for metamodels. TEF even allows the combination of textual and graphical editors. By this, it allows to define languages that only partially cover a metamodel. The combination of both principles, meaning textual, editable and decorating views is currently not supported by any of these approaches. For example, assuming there is a textual notation for UML, editing the same UML Class using both a graphical editor and a texutal editor, while preserving the layout of both views is not supported. This means that it is not posssible to define views that are on the one hand textual and on the other hand allow the independent storage and management of their represenation. Furthermore, textual languages in combination with modelling pose further challenges when a UUID based model repository is employed. Such repositories assign each element a UUID that remains stable across the lifetime of the element (e.g, the MOFID in MOF1.4). This is problementic if, as it is done in most textual modelling frameworks [1], model elements are re-created upon re-parsing of the textual representation. In large scale environments with a high number of model partitions and numerous connections between these partitions, such repositories become very important. In distributed development where developers of one artefact do not always know all referrers from other model partitions to a specific model element it is crucial that elements have stable IDs. Further advantages of the UUID-based approach can be found here |