Introducing Variability Rules in ATL for Managing Variability in MDE-based Product Lines

Various approaches show that software product lines can be implemented using the Model-Driven Engineering concept of successive model refinements. An important aspect of Product-Line Engineering (PLE) is the management of variability. In this paper we propose a strategy to let the model transformation language ATL handle the variability. We consider a transformation sequence that can generate a family of products. Furthermore, we model the variability separately in a feature diagram. In our case, the features from this diagram will have corresponding feature realization artefacts whose blueprints are defined as meta classes residing in meta models throughout the transformation sequence. We use model-to-model transformations written in ATL to instantiate these feature realization artefacts from the meta models, guided by the feature model’s feature selection. This paper shows that the conventional language constructs of ATL (ie. rules) are ineffective in managing variability this way. We therefore extend the concrete syntax of ATL with the concept of variability rules. This yields a first-class language construct for variability management. Variability rules are declarative, use implicit scheduling and are a true modular extension; they inherit from the normal rule class in the ATL meta model. This means that they have the same quality properties as normal rules. The execution semantics of variability rules – execute iff the corresponding variant in the feature model is selected – is implemented in a higher-order transformation, which compiles an extended ATL model back to a normal ATL model, therefore no new ATL plugin needs to be installed.

[1]  D. Batory,et al.  Scaling step-wise refinement , 2003, IEEE Transactions on Software Engineering.

[2]  Frédéric Jouault,et al.  Transforming Models with ATL , 2005, MoDELS.

[3]  Kelly Garcés,et al.  Variability Management in a Model-Driven Software Product Line , 2007 .

[4]  Iris Groher,et al.  Aspect-Oriented Model-Driven Software Product Line Engineering , 2009, LNCS Trans. Aspect Oriented Softw. Dev..

[5]  Brice Morin,et al.  Weaving variability into domain metamodels , 2010, Software & Systems Modeling.