When a component is to be loaded or executed, the version of the component
to be loaded may be compared with available versions of the component. If
an upgraded version of the component is available, the upgraded version
of the component may be enabled to dynamically and deterministically
update itself. The component may be an object in an object model. The
upgraded version of the component may update itself by calling an update
method. The component may be upgraded with minimum user intervention,
dynamically as the object is loaded.