Direkt zum Inhalt
Eine algebraische Fläche vom Grad 6 (eine "Sextik"), die 65 Singularitäten besitzt.

Splittr: Splitting models using information retrieval and model crawling techniques

Splittr tackles the maintainability challenge induced by large models. It facilitates the splitting of a large Ecore meta-model into a set of smaller sub-models.

The tool creates a splitting suggestion from a splitting description. The splitting description is a set of (usually sketchy) textual descriptions for each of the desired sub-models. An example splitting description is shown in Figure 1. The splitting suggestion proposes a target sub-model for each model element of the input model. To create a useful splitting suggestion, the tool employs an algorithm that combines information retrieval and model crawling techniques. A visual editor, shown in Figure 2, allows to review the splitting suggestion and, where required, reassign model elements to different sub-models than proposed.

screen1.png screen2.png
Figure 1: Defining the splitting description in a textual editor        
Figure 2: Post-processing the splitting suggestion in a visual editor


Splittr is an Eclipse plugin designed for Eclipse Luna (4.4). Since the visual editor is an extension of EcoreTools 2.0, being introduced in Eclipse Luna, we do not provide backwards compatibility for earlier Eclipse versions.

We suggest installing the Eclipse Word Wrap Plug-In to enable line-wrapping for textual editors in Eclipse. Developers who want to extend Splittr also need the Sirius Specification feature.


The suggested user process is described as follows:

  1. Trigger the creation of a splitting description: After installation of the plug-in, select the Ecore model to be split and choose "Create a Splitting Description..." in the context menu. A splitting description file (*.splittr) will be created and opened in the editor shown in Fig. 1.

  2. Prepare the splitting description: Assemble the textual descriptions using the textual editor. The sub-model descriptions do not have to be too detailed: The algorithm executed in the background will identify the most important model elements for each sub-model and analyze the model's topology in order to complete the splitting. The splitting description file supports the optional adjustment of parameters of the underlying technique. For convenient editing, the editor provides code completion (CTRL + Space).

  3. Trigger the generation of a splitting suggestion: To trigger the automated creation of a splitting suggestion, select the splitting description file and choose "Derive a Splitting Suggestion..." in the context menu. A splitting result file (*.splittrResult) will be created.

  4. Review and post-process: To review the generated splitting, open the model in the EcoreTools editor: Switch into the Modeling Eclipse perspective, use the context menu in the package explorer to create a new Representations file (*.aird), open the file, navigate to the class diagram in the Design viewpoint and add all model elements to this diagram (right click on the canvas -> Add related elements).
    You can now activate a layer called Model Split. Activating the layer will trigger the color-coding and labelling of elements shown in Fig. 2. To reassign model elements to a different sub-model, use the Assign tool. Feel free to modify the splitting description, generate a new splitting suggestion and refresh the Model Split layer as often as required (however, manual reassignments will not be carried over).

  5. Trigger physical splitting: Eventually, to trigger the physical splitting along the splitting suggestion, select the splitting result file and choose "Split Input Model to Multiple Files..." or "Split Input Model to Multiple Packages..." in the context menu.

The following parametrization options are provided. It is worth pointing out that parametrization is optional: Splittr comes with a default configuration that yields decent results in typical Ecore models.
  • partially with threshold <DOUBLE>: When set, the derived suggestion will represent a partial split. In a partial split, some model elements are mapped to a sub-model called Unassigned. The threshold parameter defines the numerical threshold score that models elements must exceed in order to become assigned.

  • weight of (generalization|association|containment|interface realization|enum instantiation) = <DOUBLE>: The weights attached to different relationship types in the scoring formula.

  • alpha = <DOUBLE>: An exponent in the scoring formula. Shapes the distribution of scores.


  • Strüber, D., Lukaszczyk, M., Taentzer, G. (2014). Tool Support for Model Splitting using Information Retrieval and Model Crawling Techniques. In: Big MDE Workshop Proceedings. [ pdf ]
  • Strüber, D., Rubin, J., Taentzer, G., Chechik, M. (2014). Splitting Models Using Information Retrieval and Model Crawling Techniques. In: Fundamental Approaches to Software Engineering. [ pdf ]


  • Splittr was developed by Daniel Strüber and Michael Lukaszczyk. For support or feedback, contact Daniel Strüber.

Zuletzt aktualisiert: 30.09.2014 · struebed

Fb. 12 - Mathematik und Informatik

Fb. 12 - Mathematik und Informatik, Hans-Meerwein-Straße 6, D-35032 Marburg
Tel. +49 6421/28-21514, Fax +49 6421/28-25466, E-Mail: dekanatfb12@mathematik.uni-marburg.de

URL dieser Seite: https://www.uni-marburg.de/fb12/arbeitsgruppen/swt/forschung/software/splittr

Impressum | Datenschutz