Patent ID: 8365164

Claim:
A method of mapping a software installation, comprising: (a) providing a software installed on a computer with an operating system and at least one storage device, the installation including a plurality of software components and at least one entry in a system record on the storage device; (b) providing a plurality of potential interaction points between said installation and said computer; (c) executing at least one informer on said computer to obtain information about said potential interaction points of said installation with said operating system; and (d) determining a plurality of relationships between said components based on said interaction points on which information was obtained, wherein said at least one informer includes at least 3 informers selected from a group consisting of: (i) a file system informer which finds files that are at least one of affected by and used by the software; (ii) a registry informer which finds at least one of registry entries and registry values that are at least one of affected by and used by the software; (iii) a com object informer which finds and reconstructs objects that are of type com and which are at least one of affected by and used by the application; (iv) a CIM (Common Information Model) informer which retrieves CIM information; (v) a WMI (Windows Management Instrumentation) informer which retrieves WMS (Windows Management Services) information; (vi) an uninstall informer which retrieves uninstall information from locations where such data is stored; (vii) a system environment informer, which reports a system environment; (viii) a product informer, which identifies one or more of the software, system cache belonged to the software, main directories, vendor, version and language; (ix) a feature informer, which identifies which features of the software were installed; (x) an component informer, which identifies which components of the software were installed; (xi) a plug-in/add-on informer which identifies software packages with which the software could act as a plug-in or add-on; (xii) an install list informer, which identifies which software is installed on the computer; (xiii) a settings informer, which identifies system settings of the software; and (xiv) a calling dependency informer, which identifies which components call which other components of said installed software.