Patent ID: 8856775

Claim:
A method for unstacking software components, the method comprising: discovering a stacked plurality of software components and one or more dependencies between the plurality of software components in a computer system; designing a plurality of unstacking options for unstacking said stacked plurality of software components; performing a quantitative analysis to compare said plurality of unstacking options, wherein said quantitative analysis comprises a return on investment analysis based on an evaluation of a plurality of costs associated with each of said plurality of unstacking options, wherein said plurality of costs comprise (i) a cost for hosting one or more resulting images, (ii) a cost for one or more cloud images, (iii) a cost of one or more software licenses, (iv) a cost of software management, and (v) a cost to produce a designed new image; selecting one of said unstacking options to unstack said stacked plurality of software components based on said quantitative analysis performed on said plurality of unstacking options; and unstacking said stacked plurality of software components via said selected unstacking option, wherein said unstacking comprises (i) separating said stacked plurality of software components from one operating system image in the computer system and (ii) positioning multiple subsets of one or more of the plurality of software components on different physical and/or virtual machines.