Wednesday, July 05, 2017

Tool supported Papyrus customization

by Draskovits Stefan and Heinzl Michael


Papyrus is a model based open source engineering tool. The core feature of Papyrus is to create domain specific applications. Therefore, you can customize every important aspect like: UML profile, model explorer, diagram notation and style, properties views, palette and creation menus and much more.
This customization has a high impact on the usability in real productive environments. Furthermore, this customization mechanism of Papyrus positively influences the pace of work, because only relevant elements are displayed to the user.

Example of a Papyrus instance

Thus the Papyrus environment provides a huge set of customization possibilities. Papyrus has many configuration files, where you can specify exactly the look and feel of the environment. This results in a huge set of files with configuration properties and references, which makes the customization of Papyrus surprisingly complex. The target audience has not the required knowledge and insight in this configuration system. As model based engineering is a rather new field, it is developing constantly.

The approach of Papyrus is a very ambitious one, but too complex for their target audience. This results in a huge overhead to set up a new Papyrus projects. For that reason it is very time costly and more likely to put people off, as there are many possibilities and ways to customize a Papyrus instance. Besides that it requires a lot of time to set up a project, it is also necessary to maintain and update the project. If you want to use a certain feature you have to configure multiple files to achieve the desired result.
Additionally you have to have a certain base knowledge about programming and model driven engineering. As there are so many properties and references in these configuration files it is a lot to process at a time if you are not familiar with the system. In summary the whole process of setting up and maintaining a project is cumbersome and tedious.

This paper deals with exactly with those described problems. Our goal is to develop a meta model with a textual representation to describe a specific set of the customization possibilities and gather them in one place. Furthermore, we develop an automatic tool which can process our meta model and generate all relevant configuration files to build a customized Papyrus instance. Many of those configuration files are an instances of a corresponding meta model. The meta models of the configuration files are used to generate and adapt the files without interfering directly with the textual representation. By using the meta models of the configuration files following advantages emerge:

  • Concise and precise definition of the language concepts Standardized exchange format
  • Checking correctness of models
  • Simple maintenance
  • Extensibility of modelling languages
By using this model oriented approach one can setup a customized Papyrus instance in a few simple steps. Therefore, the setup time decreases significantly. As our textual representation of our meta model is designed for easy use, it is not necessary to read the whole complex Papyrus customization documentation. Furthermore, you only have to specify a certain feature once and it will be added to multiple configuration files. Overall the tool provides a simple but powerful language to describe and generate a Papyrus configuration. 

Meta Model

The meta model which is used as a an input is kept simple on purpose. Users should be able to simply create a model for their needs. The meta model contains the root element CustomPapyrusModel which contains multiple ItemsThe element Item contains one property of type EString which is name. It is used to generate pallet rules, assistant rules and element creation menus, which represents the configuration files for a papyrus instance.

Meta Model

Future work

There are still menus, where it would be nice if they are configured automatically, which is not handle by this project at the moment. Therefore, for future work the tool could be extended with a generator for other features.
  • Properties view
  • Multiple viewpoints Styling (CSS)
  • Extended branding Welcome page
  • UML Profiles 

1 comment: