1. A method of updating computer software on a computer comprising: downloading software update information through a network to the computer; determining if a software update is available from the software update information; downloading a criticality check program through the network to the computer; executing the criticality check program on the computer; evaluating the criticality of the software update from an output of the criticality check program and the software update information; accessing stored user preference information; and determining if the software update should be automatically downloaded and installed from the user preference information and the evaluated criticality of the software update.