1. A method for performing software discovery by an installer controller comprising: detecting, by the installer controller executing at a client computer, an execution of a software installer program; pausing, by the installer controller, the execution of the software installer program; comparing a first signature from a software package being modified by the software installer program to a second signature in a software catalog to determine whether the software package being modified is known in the software catalog, wherein the software catalog is managed by a software asset management (SAM) server and wherein the software catalog is stored on at least one of: the SAM server, and the client computer; resuming, by the installer controller, the execution of the software installer program, based on the first signature matching the second signature; and prompting an end-user to input details associated with the software package being modified, based on the first signature not matching the second signature, the inputted details including: a software package name, a version, a vendor, a source of the software package, and a business purpose.