| Invited application paper: re-engineering C++ components via automatic program transformation |
| Full text |
Pdf
(200 KB)
|
Source
|
ACM/SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation
archive
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
table of contents
Verona, Italy
Pages: 51 - 55
Year of Publication: 2004
ISBN:1-58113-835-0
|
|
Authors
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 0, Downloads (12 Months): 24, Citation Count: 0
|
|
|
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
PARLANSE Reference Manual, Semantic Designs, Inc. 1998.
|
| |
2
|
|
| |
3
|
Semantic Designs, Inc. web site, www.semanticdesigns.com.
|
| |
4
|
Sharp, D. C., Reducing Avionics Software Cost Through Component Based Product Line Development, Proceedings of the 1998 Software Technology.
|
| |
5
|
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.
|
INDEX TERMS
Primary Classification:
D.
Software
D.1
PROGRAMMING TECHNIQUES
D.1.2
Automatic Programming
Additional Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.13
Reusable Software
Subjects:
Domain engineering
D.2.2
Design Tools and Techniques
Subjects:
Computer-aided software engineering (CASE)
D.2.7
Distribution, Maintenance, and Enhancement
Subjects:
Restructuring, reverse engineering, and reengineering
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Parsing;
Code generation;
Translator writing systems and compiler generators
General Terms:
Algorithms,
Design,
Economics,
Languages,
Management
Keywords:
C++,
abstract syntax trees,
compilers,
component architectures,
legacy systems,
migration,
patterns,
re-engineering,
rewrite rules,
software analysis,
software transformation
|