This Article 
 Bibliographic References 
 Add to: 
A Formal Framework for On-line Software Version Change
February 1996 (vol. 22 no. 2)
pp. 120-131

Abstract—The usual way of installing a new version of a software system is to shut down the running program and then install the new version. This necessitates a sometimes unacceptable delay during which service is denied to the users of the software. An on-line software replacement system replaces parts of the software while it is in execution, thus eliminating the shutdown. While a number of implementations of on-line version change systems have been described in the literature, little investigation has been done on its theoretical aspects. In this paper, we describe a formal framework for studying on-line software version change. We give a general definition of validity of an on-line change, show that it is in general undecidable and then develop sufficient conditions for ensuring validity for a procedural language.

[1] R.S. Fabry, "How to design systems in which modules can be changed on the fly," Proc. Second Int'l Conf. Software Engineering, 1976.
[2] H. Goullon, R. Isle, and K. Lohr, "Dynamic restructuring in an experimental operating system," IEEE Trans. Software Engineering, vol. 4, no. 4, July 1978.
[3] I. Lee, "DYMOS: A dynamic modification system," PhD thesis, Univ. of Wisconsin, 1983.
[4] M.E. Segal and O. Frieder, "Dynamic program updating: a software maintenance technique for minimizing software downtime," Software Maintenance: Research and Practice, vol. 1, no. 1, pp. 59-79, Sept. 1989.
[5] O. Frieder and M.E. Segal, "On dynamically updating a computer program: from concept to prototype," J. System Software, vol. 14, no. 2, pp. 111-128, Sept. 1991.
[6] D Gupta and P. Jalote, "On-line software version change using state transfer between processes," Software-Practice and Experience, vol. 23, no. 9, pp. 949-964, Sept. 1993.
[7] M.E. Segal and O. Frieder, “On-the-Fly Program Modification: Systems for Dynamic Updating,” IEEE Software, vol. 10, no. 2, pp. 53-65, Mar. 1993.
[8] J. Magee, J. Kramer, and M. Sloman, “Constructing Distributed Systems in Conic,” IEEE Trans. Software Engineering, Vol. 15, No. 6, June 1989, pp. 663–675.
[9] D.E. Perry, "The Inscape Environment," Int'l Conf. Software Eng. 1989.
[10] J. Purtilo, "The Polylith Software Bus," ACM Trans. Programming Languages and Systems, Vol. 16, No. 1, Jan. 1994, pp. 151-174.
[11] C. Hofmeister, E. White, and J. Purtilo, "Surgeon: a package for dynamically reconfigurable distributed applications," Proc. IEEE Int'l Conf. Configurable Distributed Systems, Mar. 1992.
[12] J.M. Purtilo and C.R. Hofmeister,“Dynamic reconfiguration of distributed programs,” Proc. 11th Int’l Conf. Distributed Computing Systems, pp. 560-571, May 1991.
[13] J. Kramer and J. Magee, “Dynamic Configuration for Distributed Systems,” IEEE Trans. Software Eng., vol. 11, no. 4, pp. 424–436, Apr. 1985.
[14] J. Kramer and J. Magee,“The evolving philosophers problem,” IEEE Trans. Software Engineering, vol. 16, no. 11, pp. 1,293-1,306, Nov. 1990.
[15] M.R. Barbacci, D.L. Doubleday, and C.B. Weinstock, "Application-level programming," IEEE Int'l Conf. Distributed Computing Systems, pp. 458-465, 1990.
[16] A.V. Aho, R. Sethi, and J.D. Ullman, Compilers, Principles, Techniques and Tools.New York: Addison-Wesley, 1985.
[17] D. Gupta, "On-line software version change," PhD thesis, Dept. of Computer Science and Engineering, Indian Institute of Tech nology, Kanpur, June 1995.

Index Terms:
On-line software version change, validity of change, process, state, reachable state, data flow analysis, functional enhancement.
Deepak Gupta, Pankaj Jalote, Gautam Barua, "A Formal Framework for On-line Software Version Change," IEEE Transactions on Software Engineering, vol. 22, no. 2, pp. 120-131, Feb. 1996, doi:10.1109/32.485222
Usage of this product signifies your acceptance of the Terms of Use.