1. A method for installing software on a computing device comprising: receiving, at a service provider, a first software installation request to install a first software functionality; accessing a software installation map comprising: a plurality of software elements representing a plurality of software files, a subset of the plurality of software elements associated with the first software functionality; a plurality of dependency pointers identifying functional dependencies between the plurality of software files; and a first confidence factor being a function of a historical record of previous installations of the plurality of software files, the first confidence factor indicating at least a number of a plurality of successful prior installations involving the plurality of software files and the plurality of dependency pointers; one or more installation criteria represent at least one of the following types of requirements for installing the first software functionality: operating speed of the software functionality, stability of the software functionality, version of the software functionality, and compatibility of the software functionality with other software functionality; determining at least one installation route for installing the first software functionality, the at least one installation route identifying the subset of the plurality of software elements; and providing the installation route to a computing device.