Patent ID: 7975256

Claim:
A method for optimizing a software program, the method comprising: a computer executing a software tool that causes the computer to perform: prior to compilation and execution of an optimized software program: decompiling a plurality of vendor files, the decompiling including extracting class data from a machine-executable first object originating from a first software vendor and extracting class data from a machine-executable second object originating from a second software vendor; storing the extracted class data extracted from the first and second objects in a code database in association with an identification of the first and second vendors, respectively; analyzing a plurality of similar first programs to determine an attribute set of a standard implementation; and in the code database, labeling the second program as a standard implementation or a non-standard implementation based upon how closely the attributes of the second program match the determined attribute set of the standard implementation; detecting from the extracted class data in the code database a common method of a common class of the first object and the second object; and in response to detecting the common method, analyzing the common method to determine, for each of the first and second vendors, statistical values for a plurality of design metrics of the common method and storing the statistical values for the plurality of design metrics in the code database; thereafter, compiling the optimized software program, the compiling including selecting, based upon the statistical values in the code database, one of the first object and the second object most closely matching a design specification for incorporation into the optimized software program.