% $Id: introduction.tex 16735 2009-02-08 17:37:19Z gokhale $
\section{Introduction}
\label{sec:intro}

\iffalse
% Gabor suggested trimming this since ICMT does not need to be told
% about model transformations
Model transformations are key to the success of model-based software
development.  They are used to define progressive refinements of
application models from abstract, high-level views into low-level, 
detailed views that are used by the execution platform for different
purposes, such as application configuration, deployment, and code
synthesis.  They are also used in transforming models to representations
suitable for analysis tools that check various properties, such as
correctness or deadlock free behavior.
\fi

% JGG: A reference to add at the end of the first sentence below could be
%      Shane Sendall's Software paper on "Heart and Soul" of MT
% DONE
Model transformations are key to the success of model-based software
development~\cite{Sendall:03}.  Model transformations have been applied
in significantly diverse use cases as in (a) transforming XML documents
from an XSLT representation into  an XQuery
representation~\cite{ATL:03}, (b) middleware quality of service (QoS)
configuration~\cite{Gokhale_GTQMAP_RTAS:08}, which involves
automatically mapping application-specific QoS requirements onto the
correct QoS configuration options for the middleware platform,  (c)
transforming Simulink/Stateflow models into their hybrid  automata
representation for formal verification~\cite{Karsai:04}, and (d)
synthesizing  dialogs for communication endpoints (\emph{e.g.}, 
hardware devices/software applications for communications, such as
cellphone, instant messenger (IM), pager) in enterprise workflows for
rapid decision making~\cite{Gokhale_Dialog_EDOC:08}.  

% JGG: Sentence below was hard to parse for me. I rewrote to simplify. Please make
%      sure I did not change any meaning.
% Reads fine - Andy
Despite the diversity in application, a noticeable trait is the
commonality among model transformations from a similar domain or product
line. For example, in the QoS configuration use case, many generated
middleware configurations are the same across a class of applications
that are related to each other due to similarities in their QoS
requirements and the implementation platform.  Similarly, in the dialog
use case, despite differences in the communication endpoints, a number
of dialog properties remain common. 

Our study of the advances in model transformations suggests that despite
the strong evidence of recurring patterns in the transformations,  model
transformation tools and
techniques~\cite{Polack_ICMT:08,VIATRA:02,Taentzer:04,GReAT:03} lack
support for reusability, modularization and extensibility of the model
transformation rules and algorithms.  These shortcomings force the
transformation developers to reinvent the transformation steps and the
translation logic leading to significant code duplication in the
transformations, and increased effort in code maintenance and evolution
activities.  

Recent research
efforts~\cite{Voelter:07,Gerard_ISORC:08,Cuadrado_ICMT:08} have
demonstrated the use of model transformations to families of
applications or product lines~\cite{Clements:02}.   Yet, the following
questions remain to be resolved in concert:    
\textbf{(a) \emph{Invariants}:} How can the commonalities in the
transformation process be factored out such that they can be reused by
the entire application family? 
\textbf{(b) \emph{Variability}:} How can the variabilities be decoupled
from the model transformation rules while maximizing the flexibility of
the transformation process?  
\textbf{(c) \emph{Extensibility}:} How can the model transformation
process for an application family be extended with new variants, with
minimally invasive changes to the transformation rules? 
\textbf{(d) \emph{Minimal Intrusiveness}:} How can all of these
capabilities be achieved with minimal changes, if any, to existing model
transformation tools? 

In this paper we present \emph{MTS (Model-transformation Templatization
  and Specialization)} to address these questions in the context of
graphical model transformation tools.  MTS provides transformation
developers with a simple specification language to define variabilities
in their application family such that the variabilities are factored out
and are decoupled from the transformation rules.  MTS provides a higher
order transformation (HOT)~\cite{Jouault_ATL:08}~\footnote{Since the
  transformation(s) themselves become the input and(or) output, we refer
  to the transformation process in MTS as higher order transformations
  (HOTs).} 
algorithm that automates the synthesis of a family-specific
\emph{variability metamodel}, which is used by transformation developers
to capture the variability across the variants of an application family.
Another HOT algorithm defined in MTS generates the specialized instances
of the application family variants.  MTS requires minimal changes to the
underlying model transformation engine. 

The rest of the paper is organized as follows:
Section~\ref{sec:reuse} discusses a representative case study to
concretely motivate the problem and elicit the challenges;
Section~\ref{sec:soln} describes the MTS solution;
Section~\ref{sec:eval} evaluates our approach in terms of efforts saved;  
Section~\ref{sec:rel} compares our work with the existing literature;
and Section~\ref{sec:conclusion} provides concluding  remarks.

