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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Oct 23, 1998
Accession Number
ADA364363

Entities

People

  • Arun Lakhotia

Organizations

  • University of Louisiana at Lafayette

Tags

Communities of Interest

  • Human Systems

DTIC Thesaurus Topics

  • Algorithms
  • Classification
  • Cohesion
  • Computations
  • Computer Science
  • Computers
  • Data Sets
  • Debugging
  • Military Research
  • Models
  • Pattern Recognition
  • Precision
  • Recovery
  • Recursive Functions
  • Reverse Engineering
  • Scientists
  • Universities

Fields of Study

  • Computer science
  • Engineering

Readers

  • Applied Combinatorial Optimization and Logic Circuit Design.
  • Computational Linguistics
  • Software Engineering.