Methods and apparatus, including computer program products, for matching
software requirements against target system landscape descriptions and
for applying rating metrics to intermediate results during the
matchmaking process. Data are received as inputs describing the
requirements and dependencies of a particular software application and
the resources available in the target system that may be able to meet
these requirements. These data are searched for combinations of system
resources that will satisfy the requirements of the application as well
as optimization metrics and other requirements supplied by the user. Once
a match is found, it is given a rating and ranked against any other
matches.