Legacy Transformations for Extracting Service Components

This chapter presents an overview of the work on migration of legacy systems towards Service-Oriented Architectures that is taking place within the SENSORIA project. In this context, a general methodology for software reengineering was developed and instantiated in two dimensions to allow service components to be extracted from legacy applications. The main goal of this work is to provide a systematic way of addressing such reengineering projects with a high degree of automation while being largely independent of the programming language. The approach is based on a combination of techniques such as source code analysis, graph transformation, and code transformation. The focus in this text is on the description of the methodology, its dimensions for SOA, a prototype implementation and preliminary results and conclusions.

[1]  Jean-Francois Girard,et al.  An intermediate representation for integrating reverse engineering analyses , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[2]  Thomas Erl,et al.  Service-Oriented Architecture: Concepts, Technology, and Design , 2005 .

[3]  Reiko Heckel,et al.  Architecture Migration Driven by Code Categorization , 2007, ECSA.

[4]  Andrian Marcus,et al.  An information retrieval approach to concept location in source code , 2004, 11th Working Conference on Reverse Engineering.

[5]  T. Haase Model-Driven Service Development for A-posteriori Application Integration , 2007 .

[6]  Arie van Deursen,et al.  Identifying aspects using fan-in analysis , 2004, 11th Working Conference on Reverse Engineering.

[7]  Igor Ivkovic,et al.  A framework for software architecture refactoring using model transformations and semantic annotations , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[8]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[9]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[10]  Serge Demeyer,et al.  Software Evolution , 2010 .

[11]  Nenad Medvidovic,et al.  Improving System Understanding via Interactive, Tailorable, Source Code Analysis , 2005, FASE.

[12]  Chang Jinling,et al.  Measuring Website Usability of Chinese Enterprise with a Heuristic Procedure , 2007 .

[13]  Tom Mens,et al.  Formalising Behaviour Preserving Program Transformations , 2002, ICGT.

[14]  Harry M. Sneed,et al.  Integrating legacy software into a service oriented architecture , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[15]  Rick Kazman,et al.  Requirements for integrating software architecture and reengineering models: CORUM II , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[16]  Reiko Heckel,et al.  Architectural Transformations: From Legacy to Three-Tier and Services , 2008, Software Evolution.

[17]  Yann-Gaël Guéhéneuc,et al.  Feature identification: a novel approach and a case study , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[18]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[19]  Gerardo Canfora,et al.  Migrating interactive legacy systems to Web services , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[20]  Rainer Koschke,et al.  An Intermediate Representation for Reverse Engineering Analyses , 1998 .

[21]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[22]  Bernhard Westfechtel,et al.  Graph-based tools for re-engineering , 2002, J. Softw. Maintenance Res. Pract..

[23]  Richard C. Holt,et al.  Wins and losses of algebraic transformations of software architectures , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).