How I want my software to be updated

I'm stuck in Windows XP land for the time being, so some of this rant is taken care of elsewhere. I hope.

1. Don't tell me about the update unless it is absolutely necessary for me to stop what I'm doing for the update to proceed.

2. Automatically update, unless a core component of the system is going to be updated. For Windows, this should mean one of a handful of files. Unfortunely, DLLs do not seem to behave that well when in use.

3. Back up the files and configurations being edited.

4. Unit test the validity of the update.

5. Don't ask me to reboot, unless core system files have been updated.