A Formal Study on Backward Compatible Dynamic Software Updates
This work addresses the challenge of safely updating software without disrupting existing interactions, which is incremental as it builds on prior equivalence results.
The paper tackles the problem of ensuring backward compatibility in dynamic software updates for programs interacting with unchanged environments, proposing a general definition and identifying classes of such updates that apply to 32% of studied program changes.
We study the dynamic software update problem for programs interacting with an environment that is not necessarily updated. We argue that such updates should be backward compatible. We propose a general definition of backward compatibility and cases of backward compatible program update. Based on our detailed study of real world program evolution, we propose classes of backward compatible update for interactive programs, which are included at an average of 32% of all studied program changes. The definitions of update classes are parameterized by our novel framework of program equivalence, which generalizes existing results on program equivalence to non-terminating executions. Our study of backward compatible updates is based on a typed extension of W language.