Integrating legacy systems with MDE

Integrating several legacy software systems together is commonly performed with multiple applications of the Adapter Design Pattern in OO languages such as Java. The integration is based on specifying bi-directional translations between pairs of APIs from different systems. Yet, manual development of wrappers to implement these translations is tedious, expensive and error-prone. In this paper, we explore how models, aspects and generative techniques can be used in conjunction to alleviate the implementation of multiple wrappers. Briefly the steps are, (1) the automatic reverse engineering of relevant concepts in APIs to high-level models; (2) the manual definition of mapping relationships between concepts in different models of APIs using an ad-hoc DSL; (3) the automatic generation of wrappers from these mapping specifications using AOP. This approach is weighted against manual development of wrappers using an industrial case study. Criteria are the relative code length and the increase of automation.

[1]  Gabor Karsai,et al.  Model-integrated computing and integration of globally distributed manufacturing enterprises: issues and challenges , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[2]  Patrick Valduriez,et al.  Semi-automatic model integration using matching transformations and weaving models , 2007, SAC '07.

[3]  Olivier Barais,et al.  Improving maintenance in AOP through an interaction specification framework , 2008, 2008 IEEE International Conference on Software Maintenance.

[4]  David R. Kaeli,et al.  Program Comprehension Using Aspects , 2004 .

[5]  Shan Barkataki,et al.  Reengineering a Legacy System Using Design Patterns and Ada-95 Object-Oriented Features , 1998, SIGAda.

[6]  Tian Zhao,et al.  Method Proxy-Based AOP in Scala , 2009, J. Object Technol..

[7]  Stuart Kent,et al.  Visualizing model mappings in UML , 2003, SoftVis '03.

[8]  Ankit Shah,et al.  XAspects: an extensible system for domain-specific aspect languages , 2003, OOPSLA '03.

[9]  Jean-Marc Jézéquel,et al.  Weaving executability into object-oriented meta-languages , 2005, MoDELS'05.

[10]  Shan Shan Huang,et al.  Domain-specific languages and program generation with meta-AspectJ , 2008, TSEM.

[11]  Robert B. France,et al.  A Generic Approach for Automatic Model Composition , 2008, MoDELS.

[12]  Stephen A. Stelting,et al.  Applied Java Patterns , 2002 .

[13]  Bedir Tekinerdogan,et al.  Solving the modeling problems of object-oriented languages by composing multiple aspects using composition filters , 1998 .

[14]  Eli Tilevich,et al.  Annotation refactoring: inferring upgrade transformations for legacy applications , 2008, OOPSLA.

[15]  Gary T. Leavens,et al.  MultiJava: modular open classes and symmetric multiple dispatch for Java , 2000, OOPSLA '00.

[16]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[17]  Frank Tip,et al.  Refactoring support for class library migration , 2005, OOPSLA '05.

[18]  Jing Zhang,et al.  Supporting software evolution through model-driven program transformation , 2004, OOPSLA '04.