Creating object-oriented designs from legacy FORTRAN code

作者: B.L. Achee , Doris L Carver

DOI: 10.1016/S0164-1212(96)00171-9

关键词: Software systemProgram slicingObject-orientationGlobal variableCohesion (computer science)Imperative programmingProgram analysisComputer scienceSubroutineProgramming languageSoftware engineeringLegacy systemObject-oriented programmingProgram transformationFortran

摘要: The majority of scientific and engineering software systems currently in use are on average 10 to 15 years old. They have undergone extensive maintenance and, therefore, suffer from such problems as inaccurate or missing documentation, poorly structured code, low modular cohesion. Moreover, the mere age has prohibited their realization recent innovations object orientation. This paper addresses these concerns context reverse engineering. It discusses development a method identify objects legacy systems, specifically those coded imperative language, FORTRAN-77. Algorithms that greedy approach extraction presented. Viewing subroutine unit functionality, attributes candidate extracted two areas: parameters global variables. Because FORTRAN-77 uses COMMON block mechanism for realizing variables, additional algorithms presented handle resulting concerns. Using modification program slicing concept introduced by Weiser 1984, methods defined each set attributes. combination forms objects. Throughout paper, an example is used illustrate methodology.

参考文章(19)
Chap-Liong Ong, Class and object extraction from imperative code University of Minnesota. ,(1994)
Dennis G. Kafura, Robert S. Schulman, Wei Li, Sallie M. Henry, Measuring Object-Oriented Design. Journal of Object-oriented Programming. ,vol. 8, pp. 48- 55 ,(1995)
Scott R. Tilley, Hausi A. Müller, Kenny Wong, Understanding Software Systems Using Reverse Engineering Technology. COODBSE. pp. 240- 252 ,(1994)
Gerald C. Gannod, Betty H. C. Cheng, A Two-Phase Approach to Reverse Engineering Using Formal Methods formal methods. pp. 335- 348 ,(1993) , 10.1007/BFB0039718
S.-S. Liu, N. Wilde, Identifying objects in a conventional procedural language: an example of data design recovery international conference on software maintenance. pp. 266- 271 ,(1990) , 10.1109/ICSM.1990.131371
E.J. Chikofsky, J.H. Cross, Reverse engineering and design recovery: a taxonomy IEEE Software. ,vol. 7, pp. 13- 17 ,(1990) , 10.1109/52.43044
Malcolm Munro, Helen M. Edwards, RECAST: reverse engineering from COBOL to SSADM specification international conference on software engineering. pp. 499- 508 ,(1993) , 10.5555/257572.257681
Richard G. Waters, Elliot Chikofsky, Reverse engineering: progress along many dimensions Communications of The ACM. ,vol. 37, pp. 22- 25 ,(1994) , 10.1145/175290.175291
Ivar Jacobson, Fredrik Lindström, Reengineering of old systems to an object-oriented architecture Conference proceedings on Object-oriented programming systems, languages, and applications - OOPSLA '91. ,vol. 26, pp. 340- 350 ,(1991) , 10.1145/117954.117980
K. Lano, P. T. Breuer, H. Haughton, Reverse engineering COBOL via formal methods The REDO compendium. ,vol. 5, pp. 225- 248 ,(1993) , 10.1002/SMR.4360050103