How Can We Help Software Rearchitecting Efforts? Study of an Industrial Case

Legacy software systems are valuable assets for organisations and are sometimes their main source of incomes. From time to time, renewing legacy software system architecture becomes necessary in order to offer them a new future. Migrating the architecture of a legacy software system is a difficult task. It involves understanding and aggregating a large set of data (the entire source code, dependencies, etc.), it may have a profound impact on the system's behaviour, and because it occurs very rarely in the life of a system, it is hard to gain experience in this domain. Based on the study of an industrial architecture migration case, we discuss how this essentially manual effort could be helped with automated tools and a better defined process. We identified several issues raised during the task, characterized their impact, and proposed possible solutions.

[1]  Zhongjie Wang,et al.  A Survey of Business Component Identification Methods and Related Techniques , 2008 .

[2]  Salah Sadou,et al.  Enactment of Components Extracted from an Object-Oriented Application , 2014, ECSA.

[3]  Olivier Barais,et al.  Software Architecture Evolution , 2008, Software Evolution.

[4]  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).

[5]  Jurriaan Hage,et al.  Legacy to SOA Evolution , 2013, Migrating Legacy Applications.

[6]  Rick Kazman,et al.  Software architectural transformation , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[7]  Jurriaan Hage,et al.  A structured legacy to SOA migration process and its evaluation in practice , 2013, 2013 IEEE 7th International Symposium on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems.

[8]  Gerardo Canfora,et al.  New Frontiers of Reverse Engineering , 2007, Future of Software Engineering (FOSE '07).

[9]  Salah Sadou,et al.  Restructuring Object-Oriented Applications into Component-Oriented Applications by Using Consistency with Execution Traces , 2010, CBSE.

[10]  Rainer Koschke,et al.  Atomic architectural component recovery for program understanding and evolution , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[11]  P. D. Johnson Mining legacy systems for business components: an architecture for an integrated toolkit , 2002, Proceedings 26th Annual International Computer Software and Applications.

[12]  Jurriaan Hage,et al.  A method engineering based legacy to SOA migration method , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[13]  Stéphane Ducasse,et al.  Moose: an Extensible Language-Independent Environment for Reengineering Object-Oriented Systems , 2000 .

[14]  Yijun Yu,et al.  Reverse engineering goal models from legacy code , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[15]  Robert W. Schwanke,et al.  An intelligent tool for re-engineering software modularity , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[16]  Asil A. Almonaies,et al.  Legacy System Evolution towards Service-Oriented Architecture , 2010 .

[17]  Rainer Koschke An incremental semi-automatic method for component recovery , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).