Extracting Functionally Equivalent Object-Oriented Designs from Legacy Imperative Code

Abstract

This research defines a methodology for automatically extracting functionally equivalent object-oriented designs from legacy imperative programs. The Parameter-Based Object Identification (PBOI) methodology is based on fundamental ideas that relate programs written in imperative languages such as C or COBOL to objects and classes written in object-oriented languages such as Ada 95 or C ++. Transformations have been developed that formalize the PBOI methodology and a formal proof is provided showing the extracted object-oriented design is functionally equivalent to the legacy imperative system. To focus the task of re-engineering, generic models of imperative programming languages and object-oriented programming languages have been developed. The formal transformations convert imperative subprograms represented in the Generic Imperative Model (GIM) into classes and objects represented in the Generic Object-Oriented Design Model (GOM). A taxonomy of imperative subprograms has also been developed which classifies all imperative subprograms into one of six categories. A proof-of-concept prototype has been developed and a 3000-line FORTRAN-77 system has been converted to an object-oriented design as a feasibility demonstration.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 1997
Accession Number
ADA329377

Entities

People

  • Ricky E. Sward

Organizations

  • Air Force Institute of Technology

Tags

Communities of Interest

  • C4I
  • Weapons Technologies

DTIC Thesaurus Topics

  • Artificial Intelligence
  • C Programming Language
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Engineering
  • Grammars
  • High Level Languages
  • Language
  • Models
  • Object Oriented Programming
  • Object-Oriented Programming Language
  • Procedural Programming Language
  • Programming Languages
  • Reverse Engineering
  • Software Development

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Database Systems and Applications

Technology Areas

  • AI & ML