The usual way of installing a new version of a software system is to s
hut down the running program and then install the new version. This ne
cessitates a sometimes unacceptable delay during which service is deni
ed to the users of the software. An on-line software replacement syste
m replaces parts of the software while it is in execution, thus elimin
ating the shutdown. While a number of implementations of on-line versi
on change systems have been described in the literature, little invest
igation has been done on its theoretical aspects. In this paper, we de
scribe 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 conditio
ns for ensuring validity for a procedural language.