Incremental migration strategies: data flow analysis for wrapping

Incremental migration strategies entail the decomposition of large legacy systems in components that can be independently and selectively replaced; this reduces the costs and risks of a migration program. The legacy components are encapsulated into object wrappers and used (through the wrapper interface) in their original form until new components take up their functions with an acceptable level of reliability. The decomposition of legacy programs in components to be encapsulated in different wrappers involves reengineering activities for creating a new program for each component. Data flow analysis methods are needed for identifying the formal parameters in the interfaces of such programs. We present the approach defined within the project ERCOLE, a research project aiming at migrating legacy systems towards object-oriented platforms.

[1]  David Callahan,et al.  The program summary graph and flow-sensitive interprocedual data flow analysis , 1988, PLDI '88.

[2]  Barbara G. Ryder,et al.  Pointer-induced aliasing: a problem classification , 1991, POPL '91.

[3]  Hausi A. Müller,et al.  Wrapping coarse-grained objects using standard infrastructure technology , 1997, 1997 Proceedings International Conference on Software Maintenance.

[4]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[5]  Giuseppe Visaggio,et al.  Software salvaging and the call dominance tree , 1995, J. Syst. Softw..

[6]  István Forgács Double iterative framework for flow-sensitive interprocedural data flow analysis , 1994, TSEM.

[7]  Aniello Cimitile,et al.  Devising coexistence strategies for objects with legacy systems , 1999 .

[8]  Aniello Cimitile,et al.  Identifying objects in legacy systems , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[9]  Michael Stonebraker,et al.  Migrating Legacy Systems: Gateways, Interfaces, and the Incremental Approach , 1995 .

[10]  Harry M. Sneed The rationale for software wrapping , 1997, 1997 Proceedings International Conference on Software Maintenance.

[11]  Mary Lou Soffa,et al.  Selecting and using data for integration testing , 1991, IEEE Software.

[12]  Anna Rita Fasolino,et al.  Recovering the architectural design for software comprehension , 1994, Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94.

[13]  Aniello Cimitile,et al.  Identifying objects in legacy systems using design metrics , 1999, J. Syst. Softw..

[14]  Barbara G. Ryder,et al.  Interprocedural Def-Use Associations for C Systems with Single Level Pointers , 1994, IEEE Trans. Software Eng..

[15]  Ian M. Graham,et al.  Migrating to object technology , 1994 .

[16]  Phil Pfeiffer,et al.  Dependence analysis for pointer variables , 1989, PLDI '89.

[17]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[18]  Malcolm Munro,et al.  Analysing large COBOL programs: the extraction of reusable modules , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[19]  Aniello Cimitile,et al.  Decomposing legacy programs: a first step towards migrating to client-server platforms , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[20]  Giuseppe A. Di Lucca,et al.  Migrating legacy systems towards object-oriented platforms , 1997, 1997 Proceedings International Conference on Software Maintenance.

[21]  Lawrence Markosian,et al.  Using an enabling technology to reengineer legacy systems , 1994, CACM.

[22]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[23]  Gerardo Canfora,et al.  Towards reengineering in reuse reengineering processes , 1995, Proceedings of International Conference on Software Maintenance.