
## 3.3 Implementing Transformation Analysis

Transformation analysis is a case of Higher-Order Transformation [19] (HOT): it is a transformation that takes as input another transformation to be analyzed, and produces as output a model containing the analysis result. This HOT uses OCL expressions over the ATL metamodel, which is the metamodel of the language in which the transformations to analyze are written. These expressions recognize the patterns presented in Section 3.2. Then, an analysis model is created that relates concepts of the pivot metamodel to recognized patterns.

The main objective is to deliver a result that a user may understand and interpret. Consequently, special care was given to the rendering of the results. Figure 3 shows how the whole process is implemented. It starts from a collection of n ATL transformations T1 to Tn conforming to the ATL metamodel. Transformation t1 **is applied to these transformations in order to obtain model** T1−n conforming to the TA (for Transformation Analysis) metamodel. This model contains the raw results of the analysis.

Then, transformation t2 **is applied in order to obtain model** T
′

1−n that conforms to a generic Table metamodel. This model may then be rendered to concrete display surfaces like HTML using transformation t3, or LATEXusing transformation t4. The HTML rendering leverages the metamodels and transformation presented in [20], and available from Eclipse.org. The LA**TEXrendering was**
specifically developed for the work presented in this paper. **The tables given as** example in Section 4 below have been generated automatically using the process depicted here. All metamodels conform to the KM3 [10] (Kernel MetaMetaModel) metametamodel.

Although other techniques could have been used for the implementation, the whole transformation analysis and rendering process is **defined in terms of**
models, metamodels, and transformations. This is an example of the unification power of models [3].

![0_image_0.png](0_image_0.png)

