% $Id: conclusion.tex,v 1.13 2005/12/07 05:07:04 kitty Exp $

\section{Concluding Remarks}
\label{sec:conclusion}

% Kitty, Jeff let us please add a ``lessons learned'' paragraph. We
% should also tell that many other things like using AOM for other
% DSMLS (GPCE 03 paper), showing scalability for different DSMLS
% (MoDELS paper), theory of AOM (CACM paper) etc have been done. We
% cite all of these.  In the lessons learned we need to tell what are
% some of the shortcomings of this approach we have used.
%
% GPCE 03 citation is \cite{Schmidt:03e}
% CACM is \cite{Gray:01}
% Models is \cite{Gray-MoDELS05a}

Although MDD approaches to building distributed systems have inherent
advantages over a purely programmatic approach, additional tools are needed
to assist in modularizing crosscutting concerns that are not effectively
captured by modeling languages like PICML.  To address this problem, this
paper described the aspect-oriented model weaving capabilities of the
Constraint-Specification Aspect Weaver (C-SAW).  Using the C-SAW
concepts~--- {\em strategies} and {\em modeling aspects}~--- many of the
problems associated with scattered pieces of deployment related artifacts
and model scalability can be effectively addressed.  Weaving at the
modeling level is a form of transformation that enables a developer to
evolve and maintain consistency across numerous views that are available in
a modeling language.  The key contribution is an ability to make changes
across a model in many locations in an automated manner.

In the specific context of distributed component-based systems, the primary
lessons learned concern the productivity benefits that can be achieved from
an automated approach to evolving domain-specific models in the presence of
crosscutting concerns.  A manual approach to the specific challenges
presented in Section~\ref{sec:mot:challenges} is tedious and error-prone.
When the number of components increases, the number of steps required to
make such modifications increase accordingly.  Because of the crosscutting
nature of model properties and constraints, the manual modification of
models hampers productivity because of all the mouse clicking and typing
involved in each change.  An aspect model weaver like C-SAW offers needed
support to evolve crosscutting concerns that appear in modeling interface
and artifact definitions.  Other concerns (e.g., component interactions,
component packaging, and component mapping) also require the model engineer
to explore various design alternatives in a way that is not practical
through manual modification. The lessons learned in this context add to the
growing number of application areas to which we have applied C-SAW,
including mission computing avionics~\cite{Schmidt:03e} and hardware
configuration of physics-based applications~\cite{Gray-MoDELS05a}.

There are several limitations to C-SAW that are being addressed as future
work.  One limitation, as shown in Figure~\ref{fig:c-saw}, is that C-SAW
only works within a single metamodel.  That is, model transformations
cannot occur between models that are defined by different metamodels.  This
is not a problem for the types of crosscutting deployment concerns
mentioned in this paper, but this limitation does prohibit more advanced
transformations to be performed in other domains.  We are working toward a
future version of C-SAW that allows the specification of model
transformations across multiple metamodels.  A second limitation of C-SAW
is the lack of support to help ensure the correctness of a modeling aspect
and strategy.  Currently, there is no capability provided to the model
engineer to help assist in determining if an error exists in a C-SAW
transformation.  To address this issue, we are currently developing a
testing and debugging capability within C-SAW.  This would allow test cases
to be constructed to determine if the ECL is written correctly to perform a
desired transformation.  If an error in the ECL exists, a debugger for
the ECL would allow a model engineer to step through each line of ECL and
examine the affect that occurs within the model.

In summary, this paper has demonstrated the application of aspect modeling
to address the deployment concerns of distributed component-based systems
modeled using PICML.  The combination of MDD tools like PICML, and
aspect-oriented model weavers like C-SAW, are crucial to realizing the goal
of automated design and development of component-based middleware systems.


%%% Local Variables:
%%% mode: latex
%%% TeX-master: "IJSEKE05"
%%% End:
