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.