Identifying Objects in Legacy Systems for Reuse and Reengineering
Final rept. Aug 94-Aug 98
UNIVERSITY OF SOUTHWESTERN LOUISIANA LAFAYETTE DEPT OF COMPUTER SCIENCE
Pagination or Media Count:
This project investigated the problem of migrating legacy software systems into object oriented systems. We have successfully developed a technique for automatically refactoring legacy programs to make them object oriented, without changing their external behavior. The technique consists of three parts. First, all non-recursive functions of a program are inlined to create one big function. This function is then broken into smaller set of functions using certain rules of cohesion. The new set of functions are partitioned using cluster analysis such that each set of function represents a set of methods in a class. Our approach offers significant improvement over previous approaches. Since the program is factored into a new set of functions, our approach identifies objects even in poorly written programs, where other approaches fail. We are now experimenting with automatically identifying poorly written functions so that we can perform selective inlining. Our results provide an important milestone in automatic approaches for overhauling legacy software systems.
- Computer Programming and Software