A Formal Study on Backward Compatible Dynamic Software Updates
Jun Shen, Rida A. Bazzi

TL;DR
This paper provides a formal framework for backward compatible dynamic software updates, ensuring that updated programs interact correctly with unchanged environments, and introduces classes of such updates based on a novel program equivalence framework.
Contribution
It introduces a formal definition of backward compatibility for dynamic updates and classifies update types using a new program equivalence framework applicable to non-terminating executions.
Findings
Backward compatible updates constitute about 32% of real-world program changes.
Proposes a typed extension of W language for formal analysis.
Defines classes of updates based on a generalized program equivalence.
Abstract
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Engineering Research · Advanced Software Engineering Methodologies
