|
Selected publications by date
Selected publications by category
|
|   |
A Technique for Dynamic Updating of Java Software
Proceedings of the IEEE International Conference on Software Maintenance (ICSM 2002)
October 2002
A. Orso, A. Rao, and M.J. Harrold
Abstract
During maintenance, systems are updated to correct faults,
improve functionality, and adapt the software to changes in
its execution environment. The typical software-update
process consists of stopping the system to be updated,
performing the update of the code, and restarting the
system. For systems such as banking and telecommunication
software, however, the cost of downtime can be prohibitive.
The situation is even worse for systems such as air-traffic
controllers and life-support software, for which a shut-down
is in general not an option. In those cases, the use of some
form of on-the-fly program modification is required. In this
paper, we present a new technique for dynamic updating of
Java software. Our technique is based on the use of proxy
classes and requires no support from the runtime system. The
technique allows for updating a running Java program by
substituting, adding, and deleting classes. We also present
DUSC (Dynamic Updating through Swapping of Classes), a tool
that we developed and that implements our technique.
Finally, we describe an empirical study that we performed to
validate the technique on a real Java subject. The results
of the study show that our technique can be effectively
applied to Java software with only little overhead in both
execution time and program size.
|