1. A computer implemented method comprising: extracting first metadata pertaining from at least one database, wherein the first metadata describe a first set of constraints that apply to installation of a first software program on a data processing system; extracting second metadata from the at least one database, wherein the second metadata describe a second set of constraints that apply to installation of a second software program on the data processing system; generating a third set of constraints from the first metadata and the second metadata, wherein the third set of constraints comprise an intersection of the first set of constraints and the second set of constraints; and determining whether installation of both the first program and the second program on the data processing system would violate any constraint contained in the third set of constraints; transforming the first metadata and the second metadata into a constraint language selected from a group of languages consisting of: unified modeling language (UML), object constraint language (OCL), and JAVA; wherein the intersection defines a minimum constraint for installation of both the first software program and the second software program on the data processing system.