Transformation Analysis

From SDQ-Wiki
Jump to: navigation, search

Description

TransformationAnalysis.png

Transformation Analysis is a visualization tool for QVT editors under the Eclipse IDE. The tool contributes a perspective Transformation Analysis with a graph-based view. For model-to-model transformation programs that have been opened in the text-based code editor, the analysis view displays controlflow and data dependencies as node-link diagrams. The view helps to significantly reduce the effort spent for understanding model transformations during maintenance.

The view currently supports the Eclipse editors QVT Operational, QVT Declarative (beta), and mediniQVT.

Motivation

With the success of model-driven software engineering, the number of models, meta models, and model transformations which need to be maintained is steadily growing. Our own experience with transformation programs written in diverse languages lead us to the assumption that it is the complexity of the metamodels which makes a transformation hard to understand and maintain. Plenty of model transformation languages exist, some more successful than others. Many of those allow for transformation logics to be separated into rules, functions and modules. Still, there is no language known to us which doesn’t require developers to read into a rule, function or module to understand which elements are read or written. Besides those hidden data dependencies, additional control dependencies between rules and function calls come into play, which worsen this situation.

Therefore, we invented dependency graphs as an additional view to editors for standardized transformation languages, QVT-O and QVT-R. We expect such a view to ease the effort to understand and maintain model transformations. It integrates into the Eclipse environment and provides adapters for QVTmedini, QVTd, and QVT-O, further adapters may follow.

Practicability, efficiency, and effectiveness had been validated in an empirical experiment. We asked programmers to carry out typical maintenance tasks on a real-world transformation in QVT-O. Subjects using our view located relevant code spots significantly more efficiently.

Features

The tool's dependency graph view offers the following feature:

  • Visualization of control dependencies. A control unit is, depending on the language, a mapping, helper or query function, or a relation. If one unit calls another, a black arrow connects both, pointing into the calling direction («calls»). Multiple calls are condensed to one arrow.
  • Visualization of data dependencies. A data element is a class or an attribute from one of the referenced metamodels. If a control unit reads/modifies an element, a green/red arrow points to/from the control unit, indicating the relationship «is read by»/«modifies». If an attribute is accessed, a dashed line is leading to a class element which contains the attribute. Multiple reads/writes are condensed to one arrow.
  • The graph is built live and filtered according to an extensible, configurable set of filter rules. Predefined rules are:
    1. Show control dependencies for a transformation unit.
    2. Only show control dependencies in the context of the control unit currently selected in the QVT editor.
    3. Only show control and data dependencies in the context of the control or data unit currently selected in the QVT editor.
    4. Only show control and data dependencies in the context of the control or data unit currently selected in the QVT editor.
      Furthermore, condense data dependencies to the class-level, i.e. if an attribute is accessed, display the parent class instead.
  • The graph is navigatable. It is connected to the editor, so the graphical view always reflects the editing context.

The implementation uses the Eclipse Visualization Toolkit Zest for visualizing node-link diagrams (NLDs). It integrates seamlessly within Eclipse. Graph layout algorithms are freely configurable.

Installation

Prerequisites for installation are:

In Eclipse, open the software installer via Install New Software… and install the transformation analysis component from our update site http://www.pelle7.de/eclipse/updatesites/transformation-analysis/

Supplementary Documents

We carried out an empirical study to demonstrate the added value of our approach. The transformation, handouts (the exercice sheet, pre and post questionnaire), data collected and the evaluation script in R are available here:

Screencasts that show the basic functionality of the tool.

Source code can be obtained from our SVN:

Publications

  1. Andreas Rentschler, Qais Noorshams, Lucia Happe, and Ralf Reussner. Interactive Visual Analytics for Efficient Maintenance of Model Transformations. In Proceedings of the 6th International Conference on Model Transformation (ICMT '13), Budapest, Hungary, Keith Duddy and Gerti Kappel, editors, June 2013, volume 7909 of Lecture Notes in Computer Science, pages 141-157. Springer-Verlag Berlin Heidelberg. June 2013, Acceptance Rate: 20.7%. PDF
  2. Andreas Rentschler and Per Sterner. Interactive Dependency Graphs for Model Transformation Analysis. In Joint Proceedings of MODELS'13 Invited Talks, Demonstration Session, Poster Session, and ACM Student Research Competition co-located with the 16th International Conference on Model Driven Engineering Languages and Systems (MODELS '13), Miami, USA, September 29 - October 4, 2013., Yan Liu and Steffen Zschaler, editors, January 2014, volume 1115 of CEUR Workshop Proceedings, pages 36-40. CEUR-WS.org. January 2014. PDF

Contact

See also