Dynamic update of Java applications—balancing change flexibility vs programming transparency
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
Hi-index | 0.00 |
Online software maintenance (OSM) is performed while an application is running. It requires transforming the runtime state of the application to go along with updates of its software. The goal is to perform maintenance of missioncritical systems while they continue to run. This research presents dynamically evolvable C++ classes as a way to enable OSM. The associated implementation mechanism is called the OSM framework. We provide a high-level view of the OSM framework and then describe different types of object-oriented design transformations that are supported. The accompanying state transformations are described to evolve the live objects along with the software. We have implemented a prototype of the OSM framework; it works with the g++ and the Microsoft C++ compilers. Performance results are presented to assess the memory and processing overheads of the OSM framework. The proposed approach advances the state of the art in two ways: (a) it extends the notion of dynamic evolvability by including fission and fusion and other object-oriented design transformations, and (b) it provides a novel OSM framework that takes advantage of C++ templates.