CURRENT RESEARCH
Model Transformation Approaches
For a
list of the most recent publications see Publications
For a
list of the most recent presentations see Presentations
For a list
of potential Masters and DIS research projects see Projects
I am interested in the specification, execution and
testing of model transformations. In a model driven development (MDD) environment, developers
create and evolve applications by specifying models and by transforming
abstract models to more concrete models. Software applications often consist of
many functional and extra-functional features such as distribution, transaction
and security. Specifying a single monolithic transformation for a system model
describing multiple features can be a tedious and error-prone task. Moreover,
extra-functional features are typically spread across and tangled with other
features in a design. Specifying transformations for these crosscutting
features is difficult because the elements to be transformed are distributed
across a model.
The aspect-oriented model-driven
development framework (AOMDF) is intended to support the separation of
crosscutting extra-functional features from other design features to ease the
modeling and transformation of complex designs. Extra-functional features are
described by aspect models and other design features are described in a primary
model. The AOMDF currently supports modeling of crosscutting features as
aspects, and the composition of aspect and primary models at the same level of
abstraction to produce a model that integrates the views described by aspect
models and a primary model.
My current research extends the AOMDF
with a graphical model transformation language that support the transformation
of aspect and primary models across different abstraction levels. The language
provides a graphical notation that is closely related to the notation used to
represent the target model of the transformation. A transformation is described
by a transformation schema that consists of transformation directives. The
transformation can be carried out by mechanisms that process the directives found
in the transformation schema. An algorithm that specifies how transformation
schemas are processed during transformation is provided. The technique has been used to transform
platform-independent aspect models describing transaction and distribution features
into platform-specific aspect models, specifically aspect models describing
CORBA and Jini realizations of the features.
When the intent is to transform
models into code, a model-to-model transformation of aspect and primary models
must be accompanied by the transformation of models into code. My current
research includes a model-to-code technique for transforming aspect models into
AspectJ aspects. The technique includes rules for transforming models into
AspectJ code and provides a metamodel and an associated algorithm for
performing the transformation. This technique has so far been applied to the
transformation of CORBA and Jini transaction and distribution aspect models
into AspectJ code.
My
other research interests include:
·
Aspect-oriented Design and Analysis: I am
interested in the verification of desirable and undesirable properties of
aspect-oriented composed models. Important questions in this area include: How
can properties in a composed model be guaranteed? What kinds of emergent properties can be
expected when two aspects are composed or when aspects are composed with
primary models? How can emergent properties be predicted and detected? What
software features cannot be isolated as aspects?
·
Distributed Systems. I an
interested in the transparent development of distributed applications.
Unfortunately, the development and evolution of distributed systems are
generally coupled to continuously changing middleware technologies. This
coupling is undesirable because changes in the middleware necessitates changes
in the application, resulting in unnecessary constraints on the portability,
interoperability, reusability, and evolvability of distributed systems. It is
imperative that mechanisms be found to make the development and evolution of distributed
systems a middleware transparent software development (MTSD) process. MTSD is
the development of software without consideration for a specific middleware.
·
Component-based software engineering (CBSE): In CBSE
software systems are developed and deployed by assembling software components.
I am interested in using aspects to adapt software components.