Re-engineering legacy Cobol programs

Abstract : This paper proposes a semi-automatic two-step process to re-engineer legacy Cobol programs into OO programs including automatic identification of instance variables and methods from Cobol code followed by semi-automatic optimization of the OO design produced in the first step. We describe several issues related to automatic feature identification and report our experiences using two different automatic approaches on sample industrial code. Then we describe four ways to improve an OO design including moving methods from one class to another, merging methods, splitting methods, and merging classes. This is done by analyzing class interaction diagrams, call graphs, and code and presenting potential optimization points to programmers.

[1]  Wei-Tek Tsai,et al.  Data-centered program understanding , 1994, Proceedings 1994 International Conference on Software Maintenance.

[2]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

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

[4]  Alan M. Davis Fifteen principles of software engineering , 1994, IEEE Software.

[5]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[6]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[7]  Randy Shepherd,et al.  Object-Oriented Programming , 1994, Lecture Notes in Computer Science.

[8]  Bjarne Stroustrup What Is Object-Oriented Programming? , 1988, IEEE Softw..

[9]  Wei-Tek Tsai,et al.  Samea: Object-Oriented Software Maintenance Environment for Assembly Programs , 1992, Int. J. Softw. Eng. Knowl. Eng..

[10]  Oscar Nierstrasz,et al.  A Survey of Object-Oriented Concepts , 1989, Object-Oriented Concepts, Databases, and Applications.

[11]  Wei-Tek Tsai,et al.  Automatic variable classification for COBOL programs , 1994, Proceedings Eighteenth Annual International Computer Software and Applications Conference (COMPSAC 94).

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

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

[14]  Brian Henderson-Sellers,et al.  The object-oriented systems life cycle , 1990, CACM.

[15]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[16]  John D. McGregor,et al.  Understanding object-oriented: a unifying paradigm , 1990, CACM.