1. A computing device implemented method of selecting software components for installation on a client computing device, the method comprising: obtaining, from the client computing device, a request to upgrade a first software component capable of being processed by the client computing device; obtaining configuration data regarding a software configuration of the client computing device, including information regarding at least one additional software component that is capable of a post-upgrade execution of said first software component, wherein the at least one additional software component has been determined to be missing from the client computing device; identifying a at least one second software component for installation on the client computing device based at least in part upon said request and said configuration data, said second software components including, but not limited to, an upgrade for the first component and said at least one additional software component determined to be missing from the client computing device; and transmitting said at least one second software component to the client computing device.