%$Id: stepIII.tex 14261 2008-09-21 18:47:53Z gokhale $
\sqztiny
\sqzsmall
\subsection{Step III: Synthesizing a Specialization Repository}
\label{sec:sprepo}
\sqztiny
In the next step transformation developers use the generated VMM 
to create VMM model instances, where each VMM model corresponds to a
family member (or more appropriately, variabilities of a family
member).  A collection of such VMM models for a family is called a
specialization repository.  This step is similar to partial
specialization in programming languages for different data types.  
% For example, in our QoS configuration case
% study case study, the specialization repository contains a distinct VMM
% model for every configuration.  The aggregate of all the VMM models
% collectively contain variabilities of all the family members.


Figure~\ref{fig:vmm-model} shows a sample VMM model that instantiates
\begin{figure}[htb] 
\centering
\includegraphics[width=0.8\textwidth,keepaspectratio]{vmm-model}
\bfcaption{A Sample VMM model for a Variant of QoS Configuration Case Study.} 
\label{fig:vmm-model}
\vspace{-0.1in}
\end{figure}
the quantitative variability in terms of exact values of the 
\texttt{RT\-Re\-qu\-ir\-em\-ent} and \texttt{La\-ne} attributes.  Note
that since the exact values are now specified as models rather than
being encoded in terms of transformation rules, it is considerably
easier to modify these values.  Notice that none of the rules are
modified to change an existing mapping, and hence the transformation
logic need not be re-compiled and linked. 

