A Technique for Dynamic Updating of Java Software

  • Authors:
  • Affiliations:
  • Venue:
  • ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

During maintenance, systems are updated to correctfaults, improve functionality, and adapt the software tochanges in its execution environment. The typical software updateprocess consists of stopping the system to be updated,performing the update of the code, and restartingthe system. For systems such as banking and telecommunicationsoftware, however, the cost of downtime can be prohibitive.The situation is even worse for systems such asair-traffic controllers and life-support software, for whicha shut-down is in general not an option. In those cases,the use of some form of on-the-fly program modification isrequired. In this paper, we present a new technique for dynamicupdating of Java software. Our technique is basedon the use of proxy classes and requires no support fromthe runtime system. The technique allows for updating arunning Java program by substituting, adding, and deletingclasses. We also present DUSC (Dynamic Updating throughSwapping of Classes), a tool that we developed and that implementsour technique. Finally, we describe an empiricalstudy that we performed to validate the technique on a realJava subject. The results of the study show that our techniquecan be effectively applied to Java software with onlylittle overhead in both execution time and program size.