% $Id: intro.tex,v 1.9 2005/11/02 13:44:16 kitty Exp $
\section{Introduction}
\label{intro}
\PARstart{H}{istorically} software development methodologies have focused
on improving the individual tools like
% Kitty, I do not understand what you mean by ``functional pieces like
% programming languages'' - andy
% Fixed. - kitty.
programming languages, much more than tools that assist system composition
and system integration.  Component-based middleware like Enterprise Java
Beans, Microsoft .NET and the CORBA Component Model (CCM) have helped
improve the re-usability of software through the abstraction of components.
However, as systems are being built more and more using
commercial-off-the-shelf (COTS) technologies, a wide gap has been created
in the availability and level of sophistication of tools that help
% Kitty, I am trying to understand this sentence. Do you mean to say
% that current tools only provide IDEs which only deal with the micro
% problem while what is necessary is much more beyond that? - andy
% Fixed. - kitty
with software development like compilers, debuggers, linkers and virtual
machines, as opposed to tools that allow developers to compose, analyze and
test a complete system, or system of systems.  As a result, the task of
system integration
% Kitty, but system integration is an orthogonal dimension from system
% development. If the former is more crucial these days then we need
% to first say that more and more systems are nowadays put together
% from COTS and hence the major focus of systems development is
% actually systems integration. We should strengthen this argument in
% the opening lines of this para - andy
% Fixed. - kitty.
continues to be accomplished using {\em ad hoc} methods without the
support of automated tools.

Model-Driven Development (MDD) is an emerging paradigm which solves a
number of problems associated with the composition and integration of
large-scale systems while also leveraging the advances in software
development, such as component-based middleware.  The focus of MDD is to
elevate software development to a higher level of abstraction than
% Kitty, at this time then (after we make the case above) I suppose a
% reader will be aware that system development is synonymous with
% systems integration - andy
% Yes. - kitty.
that provided by third generation programming languages.  The MDD approach
relies on the use of models to represent the system elements of the domain
and their relationships.  In MDD, models are used in most system
development activities, \ie, models serve as input and output at all stages
of system development until the final system is itself generated.

% Kitty, I rephrased things a bit here - andy
This paper describes one variant of MDD called Model-Integrated Computing
(MIC)~\cite{Janos:97}, which focuses on using Domain-Specific Modeling
Languages (DSMLs) to represent system elements and their relationships, and
transformations from these languages to platform-specific artifacts.  We
have successfully applied the concept of MIC to develop a number of DSML
tool-suites.  In this paper we will focus on two such tool suites: (1)
\textbf{Platform-Independent Component Modeling Language (PICML)}, which
assists developers in the development, configuration and deployment of
systems built using component middleware technology, such as CCM; (2)
% Kitty, people will find it strange to see the name ``platform
% independent'' and yet see that it only applied to CCM. I am
% rephrasing this a bit - Andy
\textbf{Embedded Control Systems Language (ECSL)}, which supports
development of distributed embedded automotive applications.

Both these tool-suites are built using the Generic Modeling Environment
(GME)~\cite{GME:01}, an open-source {\em meta-programmable} domain-specific
design environment, which allows development of both DSMLs and the models
that conform to these DSMLs, within the same graphical environment.

Another popular variant of MDD is the Object Management Group's
Model-Driven Architecture (MDA)~\cite{Frankel:03}, which relies on
representing systems using the Unified Modeling Language (UML), a general
purpose modeling language, and transforming these models into artifacts
that run on a variety of platforms like EJB, CCM and .NET.
% Kitty, it might be helpful to write a sentence or two showing
% synergies and differences between MIC and MDA here, and then we move
% on. I moved something to this effect from dsml.tex to here - Andy
% OK. - kitty
Unlike MDA, which focuses on the use of a general-purpose modeling language
like UML (along with specific profiles), MIC focuses on developing modeling
languages that are tailored to a particular domain of interest.

The remainder of the paper is organized as follows: \S~\ref{dsml} describes
the concept of DSML and the key elements defined in it; \S~\ref{picml}
describes PICML and shows how PICML addresses the challenges involved in
developing component-based applications; \S~\ref{ecsl} describes ECSL and
shows how ECSL resolves the challenges in developing embedded automotive
applications; \S~\ref{related} compares our work with other MDD frameworks
and tools; and finally \S~\ref{conclusion} presents concluding remarks.

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