Identification and extraction of objects from legacy code

This paper presents an effort to utilize the benefits of recent innovations of software engineering in legacy code. Because most systems currently in use are, on the average, over 10 years old and suffering from extensive maintenance, and because it is impractical to simply discard a working system, these concerns are addressed in the context of reverse engineering. A methodology is presented which identifies candidate objects in imperative code, specifically, FORTRAN-77. Candidate objects are identified from several aspects of the system including subprogram invocations, common block definitions and array definitions. To assist the object identification algorithms, a representation of the original imperative code is introduced which uses the concepts of data flow analysis to represent variable usage information.<<ETX>>

[1]  Betty H. C. Cheng,et al.  A Two-Phase Approach to Reverse Engineering Using Formal Methods , 1993, Formal Methods in Programming and Their Applications.

[2]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[3]  Wilma M. Osborne,et al.  Fitting Pieces to the Maintenance Puzzle - Guest Editors' Introduction , 1990, IEEE Softw..

[4]  Aniello Cimitile,et al.  A reverse engineering method for identifying reusable abstract data types , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[5]  P. E. Livadas,et al.  Program dependence analysis , 1992, Proceedings Conference on Software Maintenance 1992.

[6]  N. Wilde,et al.  Identifying objects in a conventional procedural language: an example of data design recovery , 1990, Proceedings. Conference on Software Maintenance 1990.

[7]  Chap-Liong Ong Class and object extraction from imperative code , 1994 .

[8]  Aniello Cimitile,et al.  Experiments in identifying reusable abstract data types in program code , 1993, [1993] IEEE Second Workshop on Program Comprehension.

[9]  Bhanu Prasad Pokkunuri Object Oriented Programming , 1989, SIGP.

[10]  J. A. Zimmer Restructuring for style , 1990, Softw. Pract. Exp..

[11]  Richard C. Waters,et al.  Reverse engineering: progress along many dimensions , 1994, CACM.