Patent attributes
Described is managing the changing of software implementations such as applications deployed to enterprise client users or machines. Precedence relationships between deployed applications are specified. To determine which applications to install for a given client, the precedence is applied to the subset of applications assigned or published to the client. At logon or machine reboot, an upgrade process evaluates the deployed applications and any upgrade relationships, setting applications for removal or installation. A user may also install an application that has been designated as optional. Also described is an application lifecycle model for replacing applications. For example, administrators can phase in upgrades as a pilot to a small group of users, roll out upgrades to a larger group, and then provide the application to all users. Upgrades may be mandatory or optional, and replaced programs may be removed and then replaced, or overlaid during installation.