Technical Program
  Invited Speakers
  Technical Papers
  Practitioner Reports
Educators' Symposium
Doctoral Symposium
Student Research Comp.
Turing Lecture
Social Events
Week at a Glance
Final Program (1.5M .pdf)

Find in Program


view, help

"Program Transformations for Re-Engineering C++ Components [OOPSLA/GPCE]"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps

 : All Demonstrations : Wednesday : Wednesday Demonstrations

Program Transformations for Re-Engineering C++ Components [OOPSLA/GPCE]

Courtyard, Demo room 3
Wednesday, 15:30, 45 minutes


This event is also being given Thursday at 11:30.

Ira Baxter, Semantic Designs
Larry Akers, Semantic Designs
Michael Mehlich, Semantic Designs

Demonstration number: 14

Component-based software engineering enables applications to be assembled from component parts, provided they adhere to a component-style specific interface specification and protocol. Obviously, components available for one style are not available for another. Component styles evolve, too, which can obsolete components using a legacy style. This creates a demand for migrating components from one style to another, which can require complex changes to the component source code. For a large component library, doing this manually is likely prohibitive. An alternative is to apply automated program transformations to carry out the changes.

Using source-to-source transformations on real code requires a scalable, robust program transformation technology. Such technologies are difficult to justify for single applications. DMS is a commercial program transformation system which has been used to transform many programming languages, including C++, C#, Java and ObjectPascal. It is parameterized by language and desired task, enabling its infrastructure costs to be amortized across many different software analysis or change applications.

This demonstration shows a concrete example of DMS program transformations being used to migrate legacy C++ components from a Boeing distributed avionics software system, using a Boeing proprietary component format, to a CORBA component style. The conversion requires nontrivial understanding and manipulation of the C++ source code. It will explain the component migration problem to be solved, show some of the transformations, and actually convert a component.