%$Id: variabilities.tex 12673 2008-05-06 18:50:38Z amoghk $
%\vspace{-0.1in}
\subsection{Taxonomy of Variabilities}
\label{sec:variab} 
In middleware QoS configuration using model transformations, the
same high-level domain requirement may be satisfied using different
subset of configurations on two separate platforms and the 
identification of this subset (along with appropriate values for
subset elements) is performed by platform-specific transformation rules.
As shown in Figure~\ref{fig:prob}, middleware platforms exhibit 
commonalities in configurations across various QoS dimensions. For example,
both Web Services (WS) and CORBA Component Model (CCM) provide
asynchronous event filtering based on event type/topic, event producer,
and mechanisms for managing event subscriptions, grouping of events etc.
However, the exact details of configurations for satisfying domain requirements
vary based on the underlying platform and are encoded in
(platform-specific) transformation rules. So that these middleware
configuration variabilities can be easily identified in model
transformations, a taxonomy is necessary for classifying the
variabilities.  Below we  give a (non-exhaustive) list of types of
configuration variabilities that can occur in model transformations:

\textbf{Direct Value Assignments:} Since source models are typically
at a higher level of abstraction compared to target models, developers
would not necessarily be able to define mappings for all of the target
model objects.  Instead,  as part of the transformation process,
developers use their knowledge of the target modeling language
semantics to directly assign values to target objects that cannot be
mapped from some source objects.  We call this direct value
assignments. 
% Amogh, in a larger paper where we may have a case study, an example
% will be good to alleviate the abstract description. If there is a
% simple example, then please provide one.
%
% One another concern I had was whether we require the developer to
% know the syntax of the target lang? Isn't this defeating the
% purpose? 
%
% Andy, good point. If you are talking about knowing the "`intermediate"
% common meta-model (to which all requirements map to first, before
% being ultimately realized on target platforms), yes this must be
% known to the transformation developer. However, this is to the
% extent
%
% Amogh, ok so is the role of the transformation developer different
% form the DRE system developer and deployer?
%
% of how models using this common representation capture his/her
% target-specific configuration details. In other words, this can be
% said to be an overhead of our approach, which arguably is acceptable
% considering that you only need to specify certain details in variability
% models, as against writing the whole transformations.
% 
% FINE - capture this advantage later as part of conclusions or
% something.
%

\textbf{Conditional Value and Creation Mappings:} We define
conditional mappings as implication relations between source and
target objects \emph{i.e.}, association relationships between the
source objects ($x \in X$) and target objects ($y \in Y$).  These
associations may be one-to-one,  one-to-many, or many-to-one and apply
to both value- and (target) object creation-based relations:
      
%\begin{NumList}
  
% Amogh, IMO we are not gaining anything from the formal defn since
% aren't these straightforward defns of well known concepts like
% injective function i.e., we are not developing any new defn. So we
% can just say it is injective and that should be it.
%
% Andy, agreed - however as far as possible I would like to be concise
% when giving these definitions. These definitions say exactly what we
% want to convey w.o being too verbose. If you see I have used similar
% notation later in the solution section as well (i.e., rather than 
% repeating the whole thing, I just reused the set definitions etc.
% introduced here.
%
% OK
%\item 
1. A one-to-one association between a pair $(x,y)$ 
      of source and target objects respectively is
      defined as an injective function:
      $x \in X, y \in Y \; \exists \;            
      f(x)\stackrel{\alpha}{\longmapsto}f(y)\;$ such that
      $if\; f(x) = f(y)\; then\; x = y. $
            
% Amogh, what are t1, t2 .. so on? Are these multiple target languages?
%
% Andy, as mentioned below these are target objects and form half-portion
% of the source, target object pairs. Note that t1,t2... are shown to be
% contained in Y which as mentioned before the start of this NumList, is 
% is the set of all target objects.
%
% OK
%\item 
2. A one-to-many association between pairs $(s,t)$
      of source and target objects respectively is defined
      as: \\     
      $s \stackrel{\phi}{\longmapsto} t,$ 
      where
      $s \in X$ and 
      $t = \{(t_1 \wedge t_2 \wedge .. \wedge t_n) \mid t_{i = 1..n} \in Y\}$.
      
% Amogh, what are s1, s2 .. so on? Are these multiple source languages?
%
% Andy, as already mentioned these are source objects.
% OK
%\item 
3. A many-to-one association between pairs $(s,t)$
      of source and target objects respectively is defined
      as: \\      
      $s \stackrel{\varphi}{\longmapsto} t,$ 
      where
      $t \in Y$ and 
      $s = \{(s_1 \wedge s_2 \wedge .. \wedge s_n) \mid s_{i = 1..n} \in X\}$.
%\end{NumList}
% Amogh, an example for each of the above will make things
% clear. Moreover, I think it might be actually better to provide more
% intuitive defn. We have space.
%
% Andy, as per your other comment, I have added an example of each in the Listing that
% follows. Pls. see if I still need to clarify the definitions
% further.
%
% Yikes, did you 
