%  $Id: approach.tex,v 1.2 2005/01/14 06:07:24 gokhale Exp $

\section{Tool-based Approach to Product-line Configuration and
Customization}
\label{sec:approach}

Section~\ref{sec:var-model} describes a three dimensional partitioning of
the middleware C\&C space. In this section we describe an approach
that DRE system developers can use to select the right set of C\&C
options for their applications.

Our prior work~\cite{Schmidt:04x} on quality assurance of
middleware-based DRE systems using {\em main-effects screening} has
revealed that there are only a subset of the C\&C options among the
very large set of options the middleware provides that have maximum
impact on the resultant QoS. All other options have negligible impact
on the QoS. Thus, our approach to C\&C option selection hinges upon
identifying such dominant C\&C options. We call these dominant C\&C
options as the C\&C {\em dominators}. 

DRE system developers, however, have no prior knowledge of identifying
these dominators. Therefore, our approach requires middleware
developers to document a set of dominators that the developers can
choose as a starting point to select the C\&C option set for their
applications. Figure~\ref{fig:var-approach} shows three dominators
addressing a specific concern, such as reactive versus proactive
demultiplexing, synchronous versus asynchronous messaging and
messaging versus shared memory transports. 
\begin{figure}[htb]
\center{\includegraphics[width=3.2in]{../figures/config-process.eps}}
\vspace{-0.3in}
\bfcaption{Tool-based Approach to C\&C Variability Management} 
\label{fig:var-approach}
\vspace{-0.1in}
\end{figure}

The following iterative process, which we are incorporating into a
tool, is used to select the C\&C option set for a DRE system.
\begin{enumerate}
\item Start with one of the dominators shown in
      Figure~\ref{fig:var-approach} in the C\&C option set. 
\item Use the {\em main-effects} screening process~\cite{Schmidt:04x}
      to iteratively identify the next level of C\&C dominator to be
      included in the C\&C option set.
\item Stop until no more dominators are found {\em i.e.}, addition of
      any more option has no significant impact on resultant QoS. This
      is shown by the cubes at the bottom of the figure, which
      represent a per product line architecture C\&C option set.
\end{enumerate}

Our hypothesis is that:
\begin{itemize}
\item Irrespective of which C\&C dominator we start with, we will
      always end up with the same final set of C\&C options
\item It is possible to document recurring sets of dominant C\&C
      options as {\em patterns} that can be reused across product line
      architectures with similar QoS requirements.
\end{itemize}



