The C-SAW and GenAWeave tools support evolution of object-oriented legacy software through a two-level approach using aspects. The principle strategy of these tools is to generate low-level transformation rules from higher-level domain languages. The generated transformation rules, along with the initial version of the application source code, serve as input to the Design Maintenance System (DMS) from Semantic Designs. The generated rules drive the transformation process in order to produce a modified version of the source containing new concerns that have been woven across the application code base. The demonstration will show the ability to make rapid adaptations to a large cross-section of an application through simple specification changes at a high-level of abstraction.
As case studies, the demonstration will highlight the transformation of two legacy commercial applications: a large mission-computing avionics framework written in C++, and a client-server enterprise management system implemented in Object Pascal. In the avionics application, transformation rules are generated from domain-specific models created in the Generic Modeling Environment (from Vanderbilt University). Using C-SAW, it will be shown that small changes in a representative model can regulate concurrency and logging policies across many C++ classes. The Object Pascal portion of the demonstration will illustrate the use of DMS as the underlying engine for an aspect weaver. A unique feature of the demonstration is the ability to weave aspects into various legacy languages (not just Java) at the source level using GenAWeave.