Henshin Example: Java2StateMachine

contributed by Stefan Jurack, Johannes Tietje and Christian Krause

This transformation is an exogenous one solving the Reengineering case of the Transformation Tool Contest (TTC) 2011. This example primarily shows the use of transformation unit and parameter passing. Some of the details could be modeled differently and more efficiently using nested rules.

A detailed description of the transformation can be found here:

The whole transformation is depicted in the following screenshot. The models, transformation, source code and example input / output models can be found here.

We ran the transformation for three input models of different sizes. These input models were provided by the TTC organizers. We measured the time needed for transforming the Java models into state machines. The benchmark was conducted on a Intel(R) Xeon(R) CPU @ 2.50GHz with 8GB of main memory using Henshin 0.9.2. All times do not include the loading of the models and the initialization of the transformation engine. The correctness of the transformation was automatically checked by comparing the generated result with the reference model provided by the TTC organizers.

 Input model   Number of objects   Transformation time 
1-java-model-small.xmi 6.117 1372ms
2-java-model-medium.xmi 6.400 1418ms
3-java-model-big.xmi 737.102 1729ms