Dynamic Software Updating with Gosh! Current Status and the Road Ahead

Allan Raundahl Gregersen, Michael Rasmussen, Bo Nørregaard Jørgensen

Publikation: Konferencebidrag uden forlag/tidsskriftPaperForskningpeer review

357 Downloads (Pure)


Any non-trivial software system has to be upgraded regularly to incorporate bug fixes and security patches or simply to keep up with the inevitable evolution in end-user requirements. Software upgrading is challenging, especially when it comes to online upgrading of running systems. In this paper, we present the
current status of Gosh!, a dynamic-software-updating system for Java, which provides comprehensive support for changing class definitions of live objects, including adding, removing and moving fields, methods, classes and interfaces anywhere in the inheritance hierarchy. Prior to the acquisition by zeroturnaround.com, Gosh! was known as Javeleon. In this paper we demonstrate the capabilities of Gosh! by performing a dynamic updating experiment on five consecutive revisions of the classical arcade game Breakout. Based on the result of this experiment we show that dynamic updating of class definitions for live objects may under some circumstances result in different run-time behavior than would be observed after a cold restart of the upgraded application. Finally, we conclude by discussing the implication of this finding for future research directions within dynamic software updating.
Antal sider7
StatusUdgivet - 2013


  • Dynamic Software Updating
  • Unanticipated Run-time Evolution
  • Run-time Phenomena