1. A computer readable storage medium comprising instructions, where, if executed by a processor, causes a server to: receive a current software topology detailing at least one hardware characteristic and at least one software characteristic of user equipment at a deployment site, wherein the at least one software characteristic includes a patch level; receive a selection of a non-composite software application; determine a software deployment topology detailing at least one characteristic required to deploy the application as a new software installation, wherein the current software topology and the software deployment topology are to be defined in extensible markup language (XML) files; compare the current software topology to the software deployment topology; identify a mismatch between the current software topology and the software deployment topology before deployment of the application is attempted at the deployment site, wherein the mismatch is to identify a problem of the current software topology that is currently preventing the deployment of the application, and wherein the mismatch is to include at least one of a hardware mismatch, an operating system mismatch, a patch level mismatch, an application level mismatch, an application configuration mismatch and a memory mismatch; and transmit an action plan to a user via a graphical user interface based on the mismatch, wherein the action plan resolves the mismatch between the current software topology and the software deployment topology by providing a correction of the problem of the current software topology to allow the deployment of the application.