Identifying Objects in Legacy Systems for Reuse and Reengineering
Abstract
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.
Document Details
- Document Type
- Technical Report
- Publication Date
- Oct 23, 1998
- Accession Number
- ADA364363
Entities
People
- Arun Lakhotia
Organizations
- University of Louisiana at Lafayette