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.
- PARLANSE Reference Manual, Semantic Designs, Inc. 1998.Google Scholar
- Baxter, I. D., Pidgeon, C., and Mehlich, M., DMS: Program Transformations for Practical Scalable Software Evolution. Proceedings of the 26th International Conference on Software Engineering, 2004. Google ScholarDigital Library
- Semantic Designs, Inc. web site, www.semanticdesigns.com.Google Scholar
- Sharp, D. C., Reducing Avionics Software Cost Through Component Based Product Line Development, Proceedings of the 1998 Software Technology.Google Scholar
- Gidding, V., Beckwith, B., Real-time CORBA Tutorial, OMG's Workshop on Distributed Object Computing For Real-Time and Embedded Systems, www.omg.org/news/meetings/workshops/rt_embedded2003.html, 2003.Google Scholar
Index Terms
- Invited application paper: re-engineering C++ components via automatic program transformation
Recommendations
Case study: Re-engineering C++ component models via automatic program transformation
Automated program transformation holds promise for a variety of software life cycle endeavors, particularly where the size of legacy systems makes manual code analysis, re-engineering, and evolution difficult and expensive. But constructing highly ...
Reengineering C++ Component Models via Automatic Program Transformation
WCRE '05: Proceedings of the 12th Working Conference on Reverse EngineeringAutomated 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 difficult and expensive. But constructing highly scalable ...
Program transformations for re-engineering C++ components [OOPSLA/GPCE]
OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applicationsComponent-based software engineering enables applications to be assembled from component parts that adhere to a component-style specific interface specification and protocol. Components available for one style are not available for another. Component ...
Comments