Evidence driven object identification in procedural code

Software evolution is an integrated part of software maintenance. It may take the form of porting a legacy system to a new hardware platform operating system, translating the system to a new language or rearchitecting the system to take advantage of new programming paradigms. This paper presents techniques for the identification and recognition of object-oriented structures in legacy systems that have been implemented using a procedural language. The paper examines methods for the selection of object classes and the recovery of the possible associations between the recovered classes.

[1]  Harry M. Sneed Encapsulating legacy software for use in client/server systems , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[2]  JacobsonIvar,et al.  Reengineering of old systems to an object-oriented architecture , 1991 .

[3]  Richard C. Holt,et al.  Software botryology. Automatic clustering of software systems , 1998, Proceedings Ninth International Workshop on Database and Expert Systems Applications (Cat. No.98EX130).

[4]  Norman Wilde,et al.  An object finder for program structure understanding in software maintenance , 1994, J. Softw. Maintenance Res. Pract..

[5]  Hausi A. Müller,et al.  Programmable Reverse Engineering , 1994, Int. J. Softw. Eng. Knowl. Eng..

[6]  Victor R. Basili,et al.  Analyzing Error-Prone System Structure , 1991, IEEE Trans. Software Eng..

[7]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[8]  Harry M. Sneed Object-oriented COBOL recycling , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[9]  K. Lano,et al.  Objects revisited , 1991, Proceedings. Conference on Software Maintenance 1991.

[10]  Theodore Johnson,et al.  A new approach to finding objects in programs , 1994, J. Softw. Maintenance Res. Pract..

[11]  D. R. Harris,et al.  Recovering abstract data types and object instances from a conventional procedural language , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

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

[13]  Harald C. Gall,et al.  Finding objects in procedural programs: an alternative approach , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[14]  Richard C. Holt Structural manipulations of software architecture using Tarski relational algebra , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[15]  Gordon Kotik,et al.  Reengineering procedural into object-oriented systems , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.