Invited application paper: re-engineering C++ components via automatic program transformation

  • Authors:
  • Robert L. Akers;Ira D. Baxter;Michael Mehlich

  • Affiliations:
  • Semantic Designs Inc., Austin, TX;Semantic Designs Inc., Austin, TX;Semantic Designs Inc., Austin, TX

  • Venue:
  • Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Automated program transformation holds promise for a variety of software life cycle endeavors, particularly where the size of legacy systems makes code analysis, re-engineering, and evolution very difficult and expensive. But constructing transformation tools that handle the full generality of modern languages and that scale to very large applications is itself a painstaking and expensive process. This cost can be managed by developing a common transformation system infrastructure that is re-used by an array of derived tools that each address specific tasks, thus leveraging the infrastructure cost over the various tools.This talk describes DMS, a practical, commercial program analysis and transformation system, and discusses how its infrastructure was employed to construct the Boeing Migration Tool (BMT), a custom component modernization application being applied to a large C++ industrial avionics system. The BMT automatically transforms components developed under a 1990's era component style to a more modern CORBA-like component framework, preserving functionality. We describe the DMS infrastructure and the BMT application itself, illustrating some of the kinds of syntheses and transformations required and some of the issues involved with transforming industrial C++ code. We also discuss the development experience, including the strategies for approaching the scale of the migration, the style of interaction that evolved between the tool-building company and its industrial customer, and how the project adapted to changing requirements.