1. A method for configuring a software system for interaction with a hardware system, comprising the steps of: executing the software system on a host processor interconnected with the hardware system; accessing a database to obtain a description of a set of functional components present within the hardware system; creating a software representation of the capabilities of each functional component by using the description of the set of functional components; interrogating the software representation to determine a set of operational capabilities of the hardware system; and operating the software system in a manner that is responsive to the set of operational capabilities of the hardware system.