Table 3. Kendall’s correlations (from [9]).
Metric Comple. Modifi. Consis. Reusab. Concis. Unders.
cc sig cc sig cc sig cc sig cc sig cc sig
# Elements per output pattern -.228 .180 -.215 .202 .124 .472 -.146 .389 -.122 .474 -.375 .026
# Calls to resolveTemp() -.159 .380 -.358 .045 -.088 .632 -.236 .189 -.179 .323 -.352 .049
# Calls to resolveTemp per rule -.106 .558 -.306 .087 -.061 .741 -.236 .189 -.153 .399 -.326 .068
# Parameters per called rule -.391 .038 -.407 .029 -.122 .524 -.345 .066 -.218 .249 -.407 .029
# Unused parameters per called rule -.391 .038 -.407 .029 -.122 .524 -.345 .066 -.218 .249 -.407 .029
Called rule fan-in -.391 .038 -.407 .029 -.122 .524 -.345 .066 -.218 .249 -.407 .029
Unit fan-in -.391 .038 -.407 .029 -.122 .524 -.345 .066 -.218 .249 -.407 .029
Unit fan-out -.391 .038 -.407 .029 -.122 .524 -.345 .066 -.218 .249 -.407 .029
# Input models -.391 .038 -.407 .029 -.122 .524 -.345 .066 -.218 .249 -.407 .029
# Ouput models -.391 .038 -.407 .029 -.122 .524 -.345 .066 -.218 .249 -.407 .029
# Units -.391 .038 -.407 .029 -.122 .524 -.345 .066 -.218 .249 -.407 .029
# Unused helpers -.391 .038 -.407 .029 -.122 .524 -.345 .066 -.218 .249 -.407 .029
# Times a unit is imported -.379 .045 -.138 .459 .086 .654 -.084 .656 -.247 .192 -.318 .088
Lazy rule fan-in -.397 .021 -.143 .404 .005 .976 -.021 .905 -.062 .719 -.356 .037
Helper cyclomatic complexity -.357 .037 -.154 .364 -.026 .882 -.175 .304 .126 .461 -.248 .142
# Direct copies .322 .070 .040 .822 -.059 .745 -.125 .478 -.196 .271 .227 .197
# Imported units -.323 .078 -.080 .661 .110 .554 -.027 .883 -.223 .225 -.252 .164
Rule fan-out -.333 .046 -.124 .453 -.157 .351 -.235 .157 .024 .885 -.223 .175
Helper fan-out -.105 .537 .183 .278 .302 .081 .264 .120 .136 .426 .020 .907
# Transformation rules -.082 .623 -.086 .604 -.364 .031 -.273 .099 -.092 .582 .024 .885
# Called rules -.158 .389 -.263 .149 -.308 .098 -.365 .046 -.347 .060 -.128 .482
# Unused called rules -.158 .389 -.263 .149 -.308 .098 -.365 .046 -.347 .060 -.128 .482
# Rules with filter -.005 .977 -.038 .818 -.049 .771 -.129 .435 -.402 .016 -.005 .977
# Rules with local variables .032 .861 -.051 .780 -.137 .460 -.178 .328 .302 .100 -.013 .944
# Rules per input pattern -.130 .434 -.114 .489 .029 .861 -.014 .931 .315 .059 -.109 .507
# Unused input pattern elements -.033 .854 .059 .737 -.056 .758 .033 .854 .297 .097 -.032 .854
# Variables per helper .013 .944 .063 .727 -.111 .550 .178 .328 .328 .074 .006 .972
# Non-lazy matched rules .034 .839 .000 1.000 -.029 .861 -.129 .435 -.383 .022 .014 .931
# Helpers per helper name (overloadings) -.054 .769 -.066 .714 .220 .237 .060 .741 .007 .971 -.033 .855
# Variables per rule .070 .700 -.076 .676 -.111 .550 -.242 .184 .225 .220 -.038 .834
Helper fan-in -.024 .885 .000 1.000 -.236 .162 -.196 .236 -.005 .977 .138 .402
# Helpers -.201 .243 -.229 .180 -.047 .786 -.246 .152 .187 .281 -.178 .296
# Unused lazy matched rules -.152 .419 .138 .460 .026 .892 .076 .687 .217 .251 -.025 .893
# Rules with do-section -.057 .747 -.153 .385 .018 .922 -.108 .540 -.173 .332 .000 1.000
# Lazy matched rules -.201 .243 .041 .812 -.058 .741 .051 .765 .239 .168 -.081 .633
# Helpers per unit -.201 .243 -.229 .180 -.047 .786 -.246 .152 .187 .281 -.178 .296
[16], Tisi et al. defined HOTs as ”a model transformation such that its input and/or
output models are themselves transformation model”. This way, iTrace uses HOTs
to enrich existing m2m transformations so that they are able to produce not only the
corresponding target models, but also trace models.
This idea was first proposed by Jouault in [17] that introduced an initial prototype
to support the enrichment of ATL transformations. The enrichment process bundled
in iTrace is a little bit more complex than the one from [17], due to the increased
complexity of iTrace metamodels.
Fig. 1 depicts graphically the enrichment process for m2m transformations sup-
ported by iTrace: first, the TCS [18] injector/extractor for ATL files bundled in the
AMMA (Atlas Model Management Architecture) platform
7
produces a transformation
model from a given ATL transformation (a); next, such transformation model is en-
riched by a HOT (b) and finally the resulting transformation models is again serialized
into an ATL model transformation (c). As mentioned before, the execution of such en-
riched transformation will produce not only the corresponding target models, but also a
traces model.
With regard to the selection of ATL, there were two decisive factors. Firstly, ATL is
considered the de facto standard for the development of model transformations [19] and
7
The AMMA Platform. Available in: http://www.sciences.univnantes.fr/lina
/atl/AMMAROOT/.
83