1. A computer implemented method comprising: extracting first metadata 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; determining whether installation of both the first program and the second program on the data processing system violates any constraint contained in the third set of constraints; generating a user interface notification in response to determining that the installation violates any constraint in the third set of constraints; and 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.