DMS®: Program Transformations for Practical Scalable Software Evolution

While a number of research systems have demonstratedthe potential value of program transformations, very few ofthese systems have made it into practice. The core technologyfor such systems is well understood; what remains isintegration and more importantly, the problem of handlingthe scale of the applications to be processed.This paper describes DMS, a practical, commercialprogram analysis and transformation system, and sketchesa variety of tasks to which it has been applied, from redocumentingto large-scale system migration. Its successderives partly from a vision of design maintenance and theconstruction of infrastructure that appears necessary tosupport that vision. DMS handles program scale by carefulspace management, computational scale via parallelismand knowledge acquisition scale via domains.

[1]  Masaru Tomita,et al.  Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems , 1985 .

[2]  Christopher W. Pidgeon,et al.  TMM: Software Maintenance by Transformation , 1986, IEEE Software.

[3]  Ira D. Baxter,et al.  Transformational maintenance by reuse of design histories , 1991 .

[4]  Don S. Batory,et al.  Evolving object-oriented designs with refactorings , 1999, 14th IEEE International Conference on Automated Software Engineering.

[5]  Christopher W. Pidgeon,et al.  Software change through design maintenance , 1997, 1997 Proceedings International Conference on Software Maintenance.

[6]  Ira D. Baxter,et al.  Design maintenance systems , 1991, CACM.

[7]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[8]  Robert Balzer,et al.  On the Transformational Implementation approach to programming , 1976, ICSE '76.

[9]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[10]  David R. Barstow,et al.  Proceedings of the 25th International Conference on Software Engineering , 1978, ICSE.

[11]  J. M. Neighbors,et al.  Draco: a method for engineering reusable software systems , 1989 .

[12]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[13]  Don S. Batory,et al.  Evolving Object-Oriented Designs with Refactorings , 2004, Automated Software Engineering.

[14]  Ira D. Baxter,et al.  Preprocessor conditional removal by simple partial evaluation , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[15]  Robert Balzer,et al.  A 15 Year Perspective on Automatic Programming , 1985, IEEE Transactions on Software Engineering.